diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 1f9c708d..e1495525 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -70,7 +70,52 @@ def timefield_to_seconds_duration(t): duration += t.microsecond/1.e6 return duration - + +def get_session_metrics(ps): + rowers = ps.rower.all() + rscore = [] + trimp = [] + duration = [] + distance = [] + firstname = [] + lastname = [] + + for r in rowers: + rscorev = 0 + trimpv = 0 + durationv = 0 + distancev = 0 + + + ws = Workout.objects.filter(user=r,plannedsession=ps) + if len(ws) != 0: + for w in ws: + distancev += w.distance + durationv += timefield_to_seconds_duration(w.duration) + trimpv += dataprep.workout_trimp(w) + rscorev += dataprep.workout_rscore(w) + + + durationv /= 60. + + trimp.append(int(trimpv)) + duration.append(int(durationv)) + distance.append(int(distancev)) + rscore.append(int(rscorev)) + firstname.append(r.user.first_name) + lastname.append(r.user.last_name) + + thedict = { + 'first_name':firstname, + 'last_name':lastname, + 'duration':duration, + 'distance':distance, + 'rscore':rscore, + 'trimp':trimp + } + + return thedict + def is_session_complete(r,ps): status = 'not done' diff --git a/rowers/templates/plannedsessionview.html b/rowers/templates/plannedsessionview.html index be61c544..c01326e3 100644 --- a/rowers/templates/plannedsessionview.html +++ b/rowers/templates/plannedsessionview.html @@ -9,6 +9,7 @@ {% include "planningbuttons.html" %} +

Session {{ psdict.name.1 }}

@@ -22,9 +23,6 @@ {% endfor %} {% endfor %}
-

Result

-

Status: {{ status }}

-

Percentage complete: {{ ratio }}

- - +
+
+
+

Result

+

Status: {{ status }}

+

Percentage complete: {{ ratio }}

+
+ +
{% endblock %} diff --git a/rowers/views.py b/rowers/views.py index 8dfe64dc..2c9fee76 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -12162,6 +12162,7 @@ def plannedsession_view(request,id=0,rowerid=0): m = getrower(request.user) + if not rowerid: r = m else: @@ -12176,6 +12177,8 @@ def plannedsession_view(request,id=0,rowerid=0): if ps.manager != request.user and r not in ps.rower.all(): raise PermissionDenied("You do not have access to this session") + resultsdict = get_session_metrics(ps) + resultsdict = pd.DataFrame(resultsdict).transpose().to_dict() psdict = my_dict_from_instance(ps,PlannedSession) @@ -12196,7 +12199,8 @@ def plannedsession_view(request,id=0,rowerid=0): 'manager':m, 'rower':r, 'ratio':ratio, - 'status':status + 'status':status, + 'results':resultsdict, } )