diff --git a/rowers/dataprep.py b/rowers/dataprep.py index e738b735..1fc6236d 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1605,8 +1605,9 @@ def getsmallrowdata_db(columns, ids=[], doclean=True, workstrokesonly=True): data[c] = cdata2 - except KeyError: + except (KeyError, AttributeError): data[c] = 0 + # convert newtons diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 7f1b9af3..cbe08d1e 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2182,7 +2182,14 @@ def interactive_cum_flex_chart2(theworkouts,promember=0, try: datadf['x1'] = datadf.ix[:,xparam] except KeyError: - datadf['x1'] = datadf['distance'] + try: + datadf['x1'] = datadf['distance'] + except KeyError: + try: + datadf['x1'] = datadf['time'] + except KeyError: + return ['','

No non-zero data in selection

','',''] + try: datadf['y1'] = datadf.ix[:,yparam1] except KeyError: @@ -2198,7 +2205,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0, else: datadf['y2'] = datadf['y1'] - + if xparam=='distance': xaxmax = datadf['x1'].max() xaxmin = datadf['x1'].min() 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 }}