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
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 ratio<cratiomax:
return ratio,'completed',completiondate
else:
completiondate = ws.reverse()[0].date
return ratio,'partial',completiondate
for key,value in cratios.iteritems():
if ratio>value:
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():

View File

@@ -46,35 +46,14 @@
{% for ps in plannedsessions %}
<tr>
<td>
{% if completeness|lookup:ps.id == 'not done' %}
{% 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 }}">
&nbsp;</a>
{% else %}
<a class="white dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'completed' %}
{% 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 %}
<a
class="{{ sessioncolor|lookup:ps.id }} dot"
href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
</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()
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,