new session verdicts and colors
This commit is contained in:
@@ -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():
|
||||||
|
|||||||
@@ -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 }}">
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="white dot" href="/rowers/virtualevent/{{ ps.id }}/submit"> </a>
|
<a
|
||||||
{% endif %}
|
class="{{ sessioncolor|lookup:ps.id }} dot"
|
||||||
{% elif completeness|lookup:ps.id == 'completed' %}
|
href="/rowers/virtualevent/{{ ps.id }}/submit"> </a>
|
||||||
{% if ps.sessiontype != 'race' %}
|
|
||||||
<a class="green dot"
|
|
||||||
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}"> </a>
|
|
||||||
{% else %}
|
|
||||||
<a class="green dot" href="/rowers/virtualevent/{{ ps.id }}/submit"> </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 }}"> </a>
|
|
||||||
{% else %}
|
|
||||||
<a class="orange dot" href="/rowers/virtualevent/{{ ps.id }}/submit"> </a>
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
{% if ps.sessiontype != 'race' %}
|
|
||||||
<a class="red dot"
|
|
||||||
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}"> </a>
|
|
||||||
{% else %}
|
|
||||||
<a class="red dot" href="/rowers/virtualevent/{{ ps.id }}/submit"> </a>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td> {{ ps.startdate|date:"Y-m-d" }} </td>
|
<td> {{ ps.startdate|date:"Y-m-d" }} </td>
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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 */
|
||||||
|
|||||||
Reference in New Issue
Block a user