adding drive energy
This commit is contained in:
@@ -2332,8 +2332,16 @@ def workout_normv(w,pp=4.0):
|
||||
v4mean = wavg(df,'v4','deltat')
|
||||
normv = v4mean**(1./pp)
|
||||
|
||||
if np.isnan(normv):
|
||||
return 500./120.
|
||||
|
||||
return normv
|
||||
df['w4'] = df['driveenergy']**(pp)
|
||||
w4mean = wavg(df,'w4','deltat')
|
||||
normw = w4mean**(1./pp)
|
||||
|
||||
|
||||
if np.isnan(normv):
|
||||
normv = 500./120.
|
||||
|
||||
if np.isnan(normw):
|
||||
normw = 0
|
||||
|
||||
return normv,normw
|
||||
|
||||
|
||||
@@ -485,11 +485,13 @@ class MyTimeField(forms.TimeField):
|
||||
class PowerIntervalUpdateForm(forms.Form):
|
||||
selectorchoices = (
|
||||
('power','Power'),
|
||||
('pace','Pace')
|
||||
('pace','Pace'),
|
||||
('work','Work per Stroke'),
|
||||
)
|
||||
|
||||
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)')
|
||||
selector = forms.ChoiceField(choices=selectorchoices,
|
||||
required=True,
|
||||
initial='power',
|
||||
|
||||
@@ -11293,7 +11293,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
|
||||
tss,normp = dataprep.workout_rscore(row)
|
||||
|
||||
normv = dataprep.workout_normv(row,pp=8.0)
|
||||
normv,normw = dataprep.workout_normv(row,pp=8.0)
|
||||
|
||||
try:
|
||||
avpace = datetime.timedelta(seconds=int(500./normv))
|
||||
@@ -11304,6 +11304,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
'power': int(normp),
|
||||
'pace': avpace,
|
||||
'selector': 'power',
|
||||
'work': int(normw)
|
||||
}
|
||||
|
||||
powerorpace = 'power'
|
||||
@@ -11337,15 +11338,21 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
powerorpace = request.POST['powerorpace']
|
||||
value_pace = request.POST['value_pace']
|
||||
value_power = request.POST['value_power']
|
||||
value_work = request.POST['value_work']
|
||||
if powerorpace == 'power':
|
||||
power = int(value_power)
|
||||
pace_secs = 120.0
|
||||
else:
|
||||
work = 400.
|
||||
elif powerorpace == 'pace':
|
||||
power = 0
|
||||
try:
|
||||
pace_secs = float(value_pace)
|
||||
except ValueError:
|
||||
pace_secs = float(value_pace.replace(',','.'))
|
||||
elif powerorpace == 'work':
|
||||
power = 0
|
||||
work = int(value_work)
|
||||
pace_secs = 120.0
|
||||
|
||||
if powerorpace == 'power' and power is not None:
|
||||
try:
|
||||
@@ -11362,6 +11369,13 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
debug=False,smoothwindow=15.)
|
||||
except:
|
||||
messages.error(request,'Error updating pace')
|
||||
elif powerorpace == 'work':
|
||||
try:
|
||||
rowdata.updateinterval_metric(
|
||||
' WorkPerStroke (joules)',work,mode='larger',
|
||||
debug=False,smoothwindow=15.)
|
||||
except:
|
||||
messages.error(request,'Error updating Work per Stroke')
|
||||
|
||||
intervalstats = rowdata.allstats()
|
||||
itime,idist,itype = rowdata.intervalstats_values()
|
||||
@@ -11386,7 +11400,8 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
formvalues = {
|
||||
'powerorpace': powerorpace,
|
||||
'value_power': power,
|
||||
'value_pace': pace_secs
|
||||
'value_pace': pace_secs,
|
||||
'value_work':work,
|
||||
}
|
||||
|
||||
|
||||
@@ -11429,6 +11444,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
powerorpace = cd['selector']
|
||||
power = cd['power']
|
||||
pace = cd['pace']
|
||||
work = cd['work']
|
||||
try:
|
||||
pace_secs = pace.seconds+pace.microseconds/1.0e6
|
||||
except AttributeError:
|
||||
@@ -11447,6 +11463,14 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
debug=False,smoothwindow=15)
|
||||
except:
|
||||
messages.error(request,'Error updating pace')
|
||||
elif powerorpace == 'work':
|
||||
try:
|
||||
rowdata.updateinterval_metric(
|
||||
'driveenergy',work,mode='larger',
|
||||
debug=False,smoothwindow=15.)
|
||||
except:
|
||||
messages.error(request,'Error updating Work per Stroke')
|
||||
|
||||
|
||||
intervalstats = rowdata.allstats()
|
||||
itime,idist,itype = rowdata.intervalstats_values()
|
||||
@@ -11455,7 +11479,8 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
formvalues = {
|
||||
'powerorpace': powerorpace,
|
||||
'value_power': power,
|
||||
'value_pace': pace_secs
|
||||
'value_pace': pace_secs,
|
||||
'value_work': work,
|
||||
}
|
||||
powerupdateform = PowerIntervalUpdateForm(initial=cd)
|
||||
form = SummaryStringForm()
|
||||
|
||||
Reference in New Issue
Block a user