Private
Public Access
1
0

improved planned sessions for course test

This commit is contained in:
Sander Roosendaal
2018-09-15 12:29:55 +02:00
parent f5f6842a7c
commit 09c10633ac
2 changed files with 34 additions and 74 deletions

View File

@@ -296,38 +296,10 @@ def is_session_complete_ws(ws,ps):
if record.coursecompleted:
ratio = record.distance/ps.sessionvalue
return ratio,'completed',completiondate
if ps.course:
(
coursetime,
coursemeters,
coursecompleted
) = get_time_course(ws,ps.course)
if coursecompleted:
return 1.0,'completed',completiondate
else:
return ratio,'partial',completiondate
else:
if ps.criterium == 'exact':
if ratio == 1.0:
return ratio,'completed',completiondate
else:
if not completiondate:
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate
elif ps.criterium == 'minimum':
if ratio >= 1.0:
return ratio,'completed',completiondate
else:
if not completiondate:
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate
else:
if ratio>cratiomin and ratio<cratiomax:
return ratio,'completed',completiondate
else:
ratio = record.distance/ps.sessionvalue
return ratio,'partial',completiondate
return (0,'partial',None)
elif ps.sessiontype == 'coursetest':
vs = CourseTestResult.objects.filter(plannedsession=ps)
wids = [w.id for w in ws]
@@ -336,6 +308,9 @@ def is_session_complete_ws(ws,ps):
if record.coursecompleted:
ratio = record.distance/ps.sessionvalue
return ratio,'completed',completiondate
else:
ratio = record.distance/ps.sessionvalue
return ratio,'partial',completiondate
# we're still here - no record, need to create one
if ws:
@@ -349,38 +324,9 @@ def is_session_complete_ws(ws,ps):
job = myqueue(queue,handle_check_race_course,ws[0].csvfilename,
ws[0].id,ps.course.id,record.id,
mode='coursetest')
if ps.course:
(
coursetime,
coursemeters,
coursecompleted
) = courses.get_time_course(ws,ps.course)
if coursecompleted:
return 1.0,'completed',completiondate
else:
return ratio,'partial',completiondate
else:
if ps.criterium == 'exact':
if ratio == 1.0:
return ratio,'completed',completiondate
else:
if not completiondate:
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate
elif ps.criterium == 'minimum':
if ratio >= 1.0:
return ratio,'completed',completiondate
else:
if not completiondate:
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate
else:
if ratio>cratiomin and ratio<cratiomax:
return ratio,'completed',completiondate
else:
return ratio,'partial',completiondate
return (0,'not done',None)
else:
if not completiondate:

View File

@@ -13420,7 +13420,9 @@ def plannedsession_view(request,id=0,rowerid=0,
'type': w.workouttype,
}
if ps.sessiontype == 'coursetest':
vs = CourseTestResult.objects.filter(plannedsession=ps)
vs = CourseTestResult.objects.filter(plannedsession=ps,
workoutid=w.id)
if vs:
for record in vs:
if record.workoutid == w.id:
@@ -13435,19 +13437,23 @@ def plannedsession_view(request,id=0,rowerid=0,
)
wdict['distance'] = int(round(coursemeters))
else:
(
coursetimeseconds,
coursemeters,
coursecompleted
) = courses.get_time_course([w],ps.course)
intsecs = int(coursetimeseconds)
microsecs = int(1.e6*(coursetimeseconds-intsecs))
record = CourseTestResult(
userid=w.user.id,
workoutid=w.id,
plannedsession=ps,
duration=dt.time(0,0),
coursecompleted=False,
)
record.save()
job = myqueue(queue,handle_check_race_course,
w.csvfilename,w.id,ps.course.id,
record.id,mode='coursetest')
intsecs = 0
microsecs = 0
wdict['time'] = datetime.timedelta(
seconds=intsecs,
microseconds=microsecs
)
wdict['distance'] = int(round(coursemeters))
wdict['time'] = record.duration
wdict['distance'] = ps.course.distance
ranking.append(wdict)
@@ -13456,6 +13462,14 @@ def plannedsession_view(request,id=0,rowerid=0,
# if coursetest, need to reorder the ranking
startdate,enddate = get_dates_timeperiod(timeperiod)
try:
trainingplan = TrainingPlan.objects.filter(
startdate__lte = startdate,
rower = r,
enddate__gte = enddate)[0]
except IndexError:
trainingplan = None
return render(request,'plannedsessionview.html',
{