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

View File

@@ -13420,7 +13420,9 @@ def plannedsession_view(request,id=0,rowerid=0,
'type': w.workouttype, 'type': w.workouttype,
} }
if ps.sessiontype == 'coursetest': if ps.sessiontype == 'coursetest':
vs = CourseTestResult.objects.filter(plannedsession=ps) vs = CourseTestResult.objects.filter(plannedsession=ps,
workoutid=w.id)
if vs: if vs:
for record in vs: for record in vs:
if record.workoutid == w.id: if record.workoutid == w.id:
@@ -13435,19 +13437,23 @@ def plannedsession_view(request,id=0,rowerid=0,
) )
wdict['distance'] = int(round(coursemeters)) wdict['distance'] = int(round(coursemeters))
else: else:
( record = CourseTestResult(
coursetimeseconds, userid=w.user.id,
coursemeters, workoutid=w.id,
coursecompleted plannedsession=ps,
) = courses.get_time_course([w],ps.course) duration=dt.time(0,0),
intsecs = int(coursetimeseconds) coursecompleted=False,
microsecs = int(1.e6*(coursetimeseconds-intsecs)) )
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( wdict['time'] = record.duration
seconds=intsecs, wdict['distance'] = ps.course.distance
microseconds=microsecs
)
wdict['distance'] = int(round(coursemeters))
ranking.append(wdict) ranking.append(wdict)
@@ -13456,6 +13462,14 @@ def plannedsession_view(request,id=0,rowerid=0,
# if coursetest, need to reorder the ranking # 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', return render(request,'plannedsessionview.html',
{ {