Private
Public Access
1
0

new session verdicts and colors

This commit is contained in:
Sander Roosendaal
2018-11-12 21:51:25 +01:00
parent 94553a566b
commit 4795e03579
4 changed files with 57 additions and 35 deletions

View File

@@ -219,14 +219,24 @@ def get_session_metrics(ps):
return thedict 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): def is_session_complete_ws(ws,ps):
ws = ws.order_by("date") ws = ws.order_by("date")
if len(ws)==0: if len(ws)==0:
today = date.today() today = date.today()
if today > ps.enddate: if today > ps.enddate:
status = 'missed' verdict = 'missed'
ratio = 0 ratio = 0
return ratio,status,None return ratio,verdict,None
else: else:
return 0,'not done',None return 0,'not done',None
@@ -238,11 +248,23 @@ def is_session_complete_ws(ws,ps):
cratiomin = 1 cratiomin = 1
cratiomax = 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.criterium == 'none':
if ps.sessiontype == 'session': if ps.sessiontype == 'session':
cratiomin = 0.8 cratiomin = 0.8
cratiomax = 1.2 cratiomax = 1.2
else: else:
cratios['completed'] = 0.9167
cratios['a bit too much'] = 1.0833
cratiomin = 0.9167 cratiomin = 0.9167
cratiomax = 1.0833 cratiomax = 1.0833
@@ -271,7 +293,7 @@ def is_session_complete_ws(ws,ps):
ratio = score/float(value) ratio = score/float(value)
status = 'partial' verdict = 'started'
if ps.sessiontype in ['session','cycletarget']: if ps.sessiontype in ['session','cycletarget']:
if ps.criterium == 'exact': if ps.criterium == 'exact':
@@ -290,11 +312,12 @@ def is_session_complete_ws(ws,ps):
return ratio,'partial',completiondate return ratio,'partial',completiondate
else: else:
if ratio>cratiomin and ratio<cratiomax: for key,value in cratios.iteritems():
return ratio,'completed',completiondate if ratio>value:
else: verdict = key
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate completiondate = ws.reverse()[0].date
return ratio,verdict,completiondate
elif ps.sessiontype == 'test': elif ps.sessiontype == 'test':
if ratio==1.0: if ratio==1.0:
return ratio,'completed',completiondate return ratio,'completed',completiondate
@@ -361,11 +384,11 @@ def is_session_complete_ws(ws,ps):
else: else:
if not completiondate: if not completiondate:
completiondate = ws.reverse()[0].date completiondate = ws.reverse()[0].date
return ratio,status,completiondate return ratio,verdict,completiondate
def is_session_complete(r,ps): def is_session_complete(r,ps):
status = 'not done' verdict = 'not done'
if r not in ps.rower.all(): if r not in ps.rower.all():

View File

@@ -46,35 +46,14 @@
{% for ps in plannedsessions %} {% for ps in plannedsessions %}
<tr> <tr>
<td> <td>
{% if completeness|lookup:ps.id == 'not done' %}
{% if ps.sessiontype != 'race' %} {% if ps.sessiontype != 'race' %}
<a class="white dot" <a class="{{ sessioncolor|lookup:ps.id }} dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}"> href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">
&nbsp;</a> &nbsp;</a>
{% else %} {% else %}
<a class="white dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a> <a
{% endif %} class="{{ sessioncolor|lookup:ps.id }} dot"
{% elif completeness|lookup:ps.id == 'completed' %} href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% if ps.sessiontype != 'race' %}
<a class="green dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="green dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'partial' %}
{% if ps.sessiontype != 'race' %}
<a class="orange dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="orange dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% else %}
{% if ps.sessiontype != 'race' %}
<a class="red dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="red dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% endif %} {% endif %}
</td> </td>
<td> {{ ps.startdate|date:"Y-m-d" }} </td> <td> {{ ps.startdate|date:"Y-m-d" }} </td>

View File

@@ -14818,6 +14818,8 @@ def plannedsessions_coach_view(request,
} }
) )
from rowers.plannedsessions import cratiocolors
@login_required() @login_required()
def plannedsessions_view(request, def plannedsessions_view(request,
userid=0,startdatestring='',enddatestring=''): userid=0,startdatestring='',enddatestring=''):
@@ -14857,6 +14859,7 @@ def plannedsessions_view(request,
completeness = {} completeness = {}
actualvalue = {} actualvalue = {}
completiondate = {} completiondate = {}
sessioncolor = {}
if not sps and request.user.rower.rowerplan == 'basic': if not sps and request.user.rower.rowerplan == 'basic':
messages.error(request, messages.error(request,
@@ -14866,6 +14869,7 @@ def plannedsessions_view(request,
ratio,status,cdate = is_session_complete(r,ps) ratio,status,cdate = is_session_complete(r,ps)
actualvalue[ps.id] = int(ps.sessionvalue*ratio) actualvalue[ps.id] = int(ps.sessionvalue*ratio)
completeness[ps.id] = status completeness[ps.id] = status
sessioncolor[ps.id] = cratiocolors[status]
ws = Workout.objects.filter(user=r,plannedsession=ps) ws = Workout.objects.filter(user=r,plannedsession=ps)
completiondate[ps.id] = cdate completiondate[ps.id] = cdate
@@ -14901,6 +14905,7 @@ def plannedsessions_view(request,
'rower':r, 'rower':r,
'timeperiod':timeperiod, 'timeperiod':timeperiod,
'completeness':completeness, 'completeness':completeness,
'sessioncolor':sessioncolor,
'actualvalue':actualvalue, 'actualvalue':actualvalue,
'completiondate':completiondate, 'completiondate':completiondate,
'unmatchedworkouts':unmatchedworkouts, 'unmatchedworkouts':unmatchedworkouts,

View File

@@ -799,6 +799,21 @@ th.rotate > div > span {
color: #999; color: #999;
} }
.lightgreen {
background: #e2f0da;
}
.mediumgreen {
background: #aad090;
}
.purple {
background: #8c1ec1;
}
.violet {
background: #c20d60;
}
/* blue */ /* blue */