From 4795e035794af0d43b2d3c90eaafcb9014236db1 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Nov 2018 21:51:25 +0100 Subject: [PATCH] new session verdicts and colors --- rowers/plannedsessions.py | 43 ++++++++++++++++++++------- rowers/templates/plannedsessions.html | 29 +++--------------- rowers/views.py | 5 ++++ static/css/rowsandall2.css | 15 ++++++++++ 4 files changed, 57 insertions(+), 35 deletions(-) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 9704b281..3a536405 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -219,14 +219,24 @@ def get_session_metrics(ps): return thedict +cratiocolors = { + 'started': "lightgreen", + 'almost complete': "mediumgreen", + 'completed': "green", + 'a bit too much': "purple", + 'way too much': "violet", + 'missed': "black", + 'not done': "white", +} + def is_session_complete_ws(ws,ps): ws = ws.order_by("date") if len(ws)==0: today = date.today() if today > ps.enddate: - status = 'missed' + verdict = 'missed' ratio = 0 - return ratio,status,None + return ratio,verdict,None else: return 0,'not done',None @@ -238,11 +248,23 @@ def is_session_complete_ws(ws,ps): cratiomin = 1 cratiomax = 1 + + cratios = { + 'started':0, + 'almost complete':0.6, + 'completed':0.8, + 'a bit too much':1.2, + 'way too much': 1.5 + } + + if ps.criterium == 'none': if ps.sessiontype == 'session': cratiomin = 0.8 cratiomax = 1.2 else: + cratios['completed'] = 0.9167 + cratios['a bit too much'] = 1.0833 cratiomin = 0.9167 cratiomax = 1.0833 @@ -271,7 +293,7 @@ def is_session_complete_ws(ws,ps): ratio = score/float(value) - status = 'partial' + verdict = 'started' if ps.sessiontype in ['session','cycletarget']: if ps.criterium == 'exact': @@ -290,11 +312,12 @@ def is_session_complete_ws(ws,ps): return ratio,'partial',completiondate else: - if ratio>cratiomin and ratiovalue: + verdict = key + + completiondate = ws.reverse()[0].date + return ratio,verdict,completiondate elif ps.sessiontype == 'test': if ratio==1.0: return ratio,'completed',completiondate @@ -361,11 +384,11 @@ def is_session_complete_ws(ws,ps): else: if not completiondate: completiondate = ws.reverse()[0].date - return ratio,status,completiondate + return ratio,verdict,completiondate def is_session_complete(r,ps): - status = 'not done' + verdict = 'not done' if r not in ps.rower.all(): diff --git a/rowers/templates/plannedsessions.html b/rowers/templates/plannedsessions.html index 8500b376..6f4eeb41 100644 --- a/rowers/templates/plannedsessions.html +++ b/rowers/templates/plannedsessions.html @@ -46,35 +46,14 @@ {% for ps in plannedsessions %} - {% if completeness|lookup:ps.id == 'not done' %} {% if ps.sessiontype != 'race' %} -   {% else %} -   - {% endif %} - {% elif completeness|lookup:ps.id == 'completed' %} - {% if ps.sessiontype != 'race' %} -   - {% else %} -   - {% endif %} - {% elif completeness|lookup:ps.id == 'partial' %} - {% if ps.sessiontype != 'race' %} -   - {% else %} -   - {% endif %} - {% else %} - {% if ps.sessiontype != 'race' %} -   - {% else %} -   - {% endif %} +   {% endif %} {{ ps.startdate|date:"Y-m-d" }} diff --git a/rowers/views.py b/rowers/views.py index 20c05383..2414e64a 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -14818,6 +14818,8 @@ def plannedsessions_coach_view(request, } ) +from rowers.plannedsessions import cratiocolors + @login_required() def plannedsessions_view(request, userid=0,startdatestring='',enddatestring=''): @@ -14857,6 +14859,7 @@ def plannedsessions_view(request, completeness = {} actualvalue = {} completiondate = {} + sessioncolor = {} if not sps and request.user.rower.rowerplan == 'basic': messages.error(request, @@ -14866,6 +14869,7 @@ def plannedsessions_view(request, ratio,status,cdate = is_session_complete(r,ps) actualvalue[ps.id] = int(ps.sessionvalue*ratio) completeness[ps.id] = status + sessioncolor[ps.id] = cratiocolors[status] ws = Workout.objects.filter(user=r,plannedsession=ps) completiondate[ps.id] = cdate @@ -14901,6 +14905,7 @@ def plannedsessions_view(request, 'rower':r, 'timeperiod':timeperiod, 'completeness':completeness, + 'sessioncolor':sessioncolor, 'actualvalue':actualvalue, 'completiondate':completiondate, 'unmatchedworkouts':unmatchedworkouts, diff --git a/static/css/rowsandall2.css b/static/css/rowsandall2.css index b8bd8ecf..87d98fdf 100644 --- a/static/css/rowsandall2.css +++ b/static/css/rowsandall2.css @@ -799,6 +799,21 @@ th.rotate > div > span { color: #999; } +.lightgreen { + background: #e2f0da; +} + +.mediumgreen { + background: #aad090; +} + +.purple { + background: #8c1ec1; +} + +.violet { + background: #c20d60; +} /* blue */