From 5dd00dcc39f870045e0f5f47248517c38850c2ad Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 31 Dec 2021 13:06:47 +0100 Subject: [PATCH] adding dist --- rowers/forms.py | 3 ++- rowers/interactiveplots.py | 16 +++++++++++++++- rowers/views/analysisviews.py | 7 ++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index 27bc35bc..1ee14629 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -251,7 +251,8 @@ class HistorySelectForm(forms.Form): metricchoices = ( ("time","duration"), ("TRIMP","trimp"), - ("rScore","rscore") + ("rScore","rscore"), + ("distance","distance") ) yaxis = forms.ChoiceField(initial='time',choices=metricchoices,label="Measure by") diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 04d65b3d..809ebc2c 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -683,7 +683,7 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l rscores = [] trimps = [] links = [] - + distances = [] rowersinitials = {} seen = ['seen'] @@ -719,6 +719,7 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l du = w.duration.hour*60+w.duration.minute trimp = w.trimp rscore = w.rscore + distance = w.distance if rscore == 0: # pragma: no cover rscore = w.hrtss @@ -731,6 +732,7 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l durations.append(du) trimps.append(trimp) rscores.append(rscore) + distances.append(distance) links.append( "{siteurl}/rowers/workout/{code}/".format( siteurl = settings.SITE_URL, @@ -769,6 +771,7 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l durations.append(0) trimps.append(0) rscores.append(0) + distances.append(0) links.append('') types.append('rower') @@ -791,6 +794,7 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l 'rscore':rscores, 'type':types, 'rower':rowers, + 'distance':distances, 'link':links, } @@ -805,9 +809,15 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l elif yaxis == 'TRIMP': df.drop('duration',inplace=True,axis='columns') df.drop('rscore',inplace=True,axis='columns') + df.drop('distance',inplace=True, axis='columns') elif yaxis == 'rScore': # pragma: no cover df.drop('duration',inplace=True,axis='columns') df.drop('trimp',inplace=True,axis='columns' ) + df.drop('distance',inplace=True, axis='columns') + elif yaxis == 'distance': + df.drop('duration',inplace=True,axis='columns') + df.drop('trimp', inplace=True,axis='columns') + df.drop('rscore',inplace=True,axis='columns') df['color'] = df['type'].apply(lambda x:mapcolors(x)) @@ -848,9 +858,13 @@ def interactive_activitychart2(workouts,startdate,enddate,stack='type',toolbar_l p.yaxis.axis_label = 'Duration (h)' elif yaxis == 'TRIMP': p.yaxis.axis_label = 'TRIMP' + elif yaxis == 'distance': + p.yaxis.axis_label = 'Distance (m)' else: # pragma: no cover p.yaxis.axis_label = 'rScore' + + p.plot_width=550 diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 6b1b234a..4504fd6c 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -2336,6 +2336,7 @@ def history_view(request,userid=0): wminutes=wminutes, wseconds=wseconds, ) + ddict['distance'] = wmeters ddict['nrworkouts'] = a_workouts.count() listofdicts.append(ddict) @@ -2439,9 +2440,11 @@ def history_view_data(request,userid=0): yaxis = request.GET.get('yaxis','duration') - if yaxis.lower() not in ['duration','rscore','trimp']: # pragma: no cover + + if yaxis.lower() not in ['duration','rscore','trimp','distance']: # pragma: no cover yaxis = 'duration' + g_workouts = Workout.objects.filter( user=r, startdatetime__gte=activity_startdate, @@ -2535,9 +2538,11 @@ def history_view_data(request,userid=0): totalsdict['nrworkouts'] = g_workouts.count() + # activity chart activity_script, activity_div = interactive_activitychart2(g_workouts,startdate,enddate,yaxis=yaxis) + # interactive hr pie chart if typeselect == 'All': totalseconds = 3600*totalhours+60*totalminutes+totalseconds