From 9b8d2229a240b10726babe0d6719ebf74f05d43c Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Feb 2018 17:35:14 +0100 Subject: [PATCH] minor improvements plannedsession views --- rowers/models.py | 3 +- rowers/plannedsessions.py | 37 +++++++++++++++------- rowers/templates/plannedsessions.html | 4 ++- rowers/templates/plannedsessionscoach.html | 4 +-- rowers/templates/plannedsessionview.html | 8 +++-- rowers/urls.py | 5 ++- rowers/utils.py | 25 +++++++++++---- rowers/views.py | 2 +- 8 files changed, 62 insertions(+), 26 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 60dbce2e..91aec132 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -825,7 +825,8 @@ class PlannedSession(models.Model): manager = models.ForeignKey(User) - name = models.CharField(max_length=150,blank=True) + name = models.CharField(max_length=150,blank=True, + verbose_name='Name') comment = models.TextField(max_length=500,blank=True, ) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 6168cb56..5b840167 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -79,13 +79,16 @@ def get_session_metrics(ps): distance = [] firstname = [] lastname = [] + completedate = [] + status = [] for r in rowers: rscorev = 0 trimpv = 0 durationv = 0 distancev = 0 - + completedatev = '' + statusv = 0 ws = Workout.objects.filter(user=r,plannedsession=ps) if len(ws) != 0: @@ -94,8 +97,9 @@ def get_session_metrics(ps): durationv += timefield_to_seconds_duration(w.duration) trimpv += dataprep.workout_trimp(w) rscorev += dataprep.workout_rscore(w) - - + + ratio,statusv = is_session_complete_ws(ws,ps) + completedatev = ws[0].date.strftime('%Y-%b-%d') durationv /= 60. trimp.append(int(trimpv)) @@ -104,6 +108,8 @@ def get_session_metrics(ps): rscore.append(int(rscorev)) firstname.append(r.user.first_name) lastname.append(r.user.last_name) + status.append(statusv) + completedate.append(completedatev) thedict = { 'first_name':firstname, @@ -111,19 +117,14 @@ def get_session_metrics(ps): 'duration':duration, 'distance':distance, 'rscore':rscore, - 'trimp':trimp + 'trimp':trimp, + 'completedate':completedate, + 'status':status, } return thedict -def is_session_complete(r,ps): - status = 'not done' - - if r not in ps.rower.all(): - return 0,'not assigned' - - ws = Workout.objects.filter(user=r,plannedsession=ps) - +def is_session_complete_ws(ws,ps): if len(ws)==0: today = date.today() if today > ps.enddate: @@ -195,6 +196,18 @@ def is_session_complete(r,ps): else: return ratio,status + +def is_session_complete(r,ps): + status = 'not done' + + if r not in ps.rower.all(): + return 0,'not assigned' + + ws = Workout.objects.filter(user=r,plannedsession=ps) + + return is_session_complete_ws(ws,ps) + + def rank_results(ps): return 1 diff --git a/rowers/templates/plannedsessions.html b/rowers/templates/plannedsessions.html index ed5fda38..f1252d32 100644 --- a/rowers/templates/plannedsessions.html +++ b/rowers/templates/plannedsessions.html @@ -63,6 +63,7 @@ On or Before Name Type + Mode Edit Planned Actual @@ -96,7 +97,8 @@ href="/rowers/sessions/{{ ps.id }}">Unnamed Session {% endif %} - {{ ps.sessiontype }} + {{ ps.get_sessiontype_display }} + {{ ps.get_sessionmode_display }} {% if ps.manager == request.user %} {% if thedict|lookup:'results'|lookup:r.id == 'completed' %}   + href="{% url 'plannedsession_view' id=key rowerid=r.id %}">  {% elif thedict|lookup:'results'|lookup:r.id == 'partial' %}   + href="{% url 'plannedsession_view' id=key rowerid=r.id %}">  {% elif thedict|lookup:'results'|lookup:r.id == 'not done' %}   diff --git a/rowers/templates/plannedsessionview.html b/rowers/templates/plannedsessionview.html index b15bbde9..77f93eef 100644 --- a/rowers/templates/plannedsessionview.html +++ b/rowers/templates/plannedsessionview.html @@ -64,13 +64,13 @@
-

Result

+

{{ rower.user.first_name }} {{ rower.user.last_name }}

Status: {{ status }}

Percentage complete: {{ ratio }}