diff --git a/rowers/forms.py b/rowers/forms.py index 829bbd3a..9555f701 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -731,11 +731,13 @@ class PowerIntervalUpdateForm(forms.Form): ('power','Power'), ('pace','Pace'), ('work','Work per Stroke'), + ('spm','Stroke Rate') ) pace = forms.DurationField(required=False,label='Pace (/500m)') power = forms.IntegerField(required=False,label='Power (W)') work = forms.IntegerField(required=False,label='Work per Stroke (J)') + spm = forms.IntegerField(required=False,label='Stroke Rate') selector = forms.ChoiceField(choices=selectorchoices, required=True, initial='power', diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index ecdd672b..3ebd09e3 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -5614,6 +5614,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" normp = row.normp normv = row.normv normw = row.normw + normspm = rowdata.df[' Cadence (stokes/min)'].mean() if tss == -1: tss,normp = dataprep.workout_rscore(row) @@ -5635,7 +5636,8 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'power': int(normp), 'pace': avpace, 'selector': 'power', - 'work': int(normw) + 'work': int(normw), + 'spm': int(normspm), } powerorpace = 'power' @@ -5670,6 +5672,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" value_pace = request.POST['value_pace'] value_power = request.POST['value_power'] value_work = request.POST['value_work'] + value_spm = request.POST['value_spm'] if powerorpace == 'power': try: power = int(value_power) @@ -5688,6 +5691,11 @@ def workout_summary_edit_view(request,id,message="",successmessage="" work = int(value_work) except ValueError: work = int(normw) + elif powerorpace == 'spm': + try: + spm = int(value_spm) + except ValueError: + spm = int(normspm) if powerorpace == 'power' and power is not None: try: @@ -5711,6 +5719,14 @@ def workout_summary_edit_view(request,id,message="",successmessage="" debug=False,smoothwindow=15.) except: messages.error(request,'Error updating Work per Stroke') + elif powerorpace == 'spm': + try: + print('aap') + rowdata.updateinterval_metric( + ' Cadence (stokes/min)',spm,mode='larger', + debug=False,smoothwindow=2.) + except: + messages.error(request,'Error updating SPM') intervalstats = rowdata.allstats() itime,idist,itype = rowdata.intervalstats_values() @@ -5728,7 +5744,8 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'power': power, 'pace': datetime.timedelta(seconds=int(pace_secs)), 'work': work, - 'selector': powerorpace + 'selector': powerorpace, + 'spm': int(normspm) } form = SummaryStringForm() powerupdateform = PowerIntervalUpdateForm(initial=data) @@ -5773,7 +5790,8 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'power': int(normp), 'pace': avpace, 'selector': 'power', - 'work': int(normw) + 'work': int(normw), + 'spm': int(normspm), }) savebutton = 'savestringform' @@ -5786,6 +5804,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" power = cd['power'] pace = cd['pace'] work = cd['work'] + spm = cd['spm'] try: pace_secs = pace.seconds+pace.microseconds/1.0e6 except AttributeError: @@ -5811,6 +5830,13 @@ def workout_summary_edit_view(request,id,message="",successmessage="" debug=False,smoothwindow=15.) except: messages.error(request,'Error updating Work per Stroke') + elif powerorpace == 'spm': + try: + rowdata.updateinterval_metric(' Cadence (stokes/min)',spm,mode='larger', + debug=False,smoothwindow=2.) + except: + print('mies') + messages.error(request,'Error updating SPM') intervalstats = rowdata.allstats() @@ -5822,6 +5848,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'value_power': power, 'value_pace': pace_secs, 'value_work': work, + 'value_spm': spm, } powerupdateform = PowerIntervalUpdateForm(initial=cd) form = SummaryStringForm() @@ -5888,7 +5915,8 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'power': int(normp), 'pace': avpace, 'selector': 'power', - 'work': int(normw) + 'work': int(normw), + 'spm': int(normspm), })