work per stroke slider on flex chart
This commit is contained in:
@@ -433,7 +433,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower',
|
||||
privacy = 'visible'
|
||||
|
||||
# check for duplicate start times
|
||||
ws = Workout.objects.filter(starttime=workoutstarttime,
|
||||
ws = Workout.objects.filter(startdatetime=workoutstartdatetime,
|
||||
user=r)
|
||||
if (len(ws) != 0):
|
||||
message = "Warning: This workout probably already exists in the database"
|
||||
|
||||
@@ -904,13 +904,13 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
|
||||
yparamname2 = axlabels[yparam2]
|
||||
|
||||
|
||||
datadf = datadf[datadf[yparam1] > 0]
|
||||
#datadf = datadf[datadf[yparam1] > 0]
|
||||
|
||||
|
||||
datadf = datadf[datadf[xparam] > 0]
|
||||
#datadf = datadf[datadf[xparam] > 0]
|
||||
|
||||
if yparam2 != 'None':
|
||||
datadf = datadf[datadf[yparam2] > 0]
|
||||
#if yparam2 != 'None':
|
||||
# datadf = datadf[datadf[yparam2] > 0]
|
||||
|
||||
# check if dataframe not empty
|
||||
if datadf.empty:
|
||||
@@ -1104,9 +1104,9 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
|
||||
x1means.location = xm
|
||||
y1means.location = ym1
|
||||
y2means.location = ym2
|
||||
y1label.text = yname1+': '+ym1.toFixed(2)
|
||||
y2label.text = yname2+': '+ym2.toFixed(2)
|
||||
xlabel.text = xname+': '+xm.toFixed(2)
|
||||
y1label.text = yname1+': '+(ym1).toFixed(2)
|
||||
y2label.text = yname2+': '+(ym2).toFixed(2)
|
||||
xlabel.text = xname+': '+(xm).toFixed(2)
|
||||
|
||||
source2.trigger('change');
|
||||
""")
|
||||
@@ -1162,7 +1162,7 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
#rowdata,row = dataprep.getrowdata_db(id=id)
|
||||
columns = [xparam,yparam1,yparam2,
|
||||
'ftime','distance','fpace',
|
||||
'power','hr','spm',
|
||||
'power','hr','spm','driveenergy',
|
||||
'time','pace','workoutstate']
|
||||
|
||||
rowdata = dataprep.getsmallrowdata_db(columns,ids=[id],doclean=True)
|
||||
@@ -1405,6 +1405,7 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
var y1 = data['y1']
|
||||
var y2 = data['y2']
|
||||
var spm1 = data['spm']
|
||||
var driveenergy1 = data['driveenergy']
|
||||
var time1 = data['time']
|
||||
var pace1 = data['pace']
|
||||
var hr1 = data['hr']
|
||||
@@ -1419,6 +1420,8 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
var maxspm = maxspm.value
|
||||
var mindist = mindist.value
|
||||
var maxdist = maxdist.value
|
||||
var minwork = minwork.value
|
||||
var maxwork = maxwork.value
|
||||
var xm = 0
|
||||
var ym1 = 0
|
||||
var ym2 = 0
|
||||
@@ -1443,21 +1446,22 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
for (i=0; i<x1.length; i++) {
|
||||
if (spm1[i]>=minspm && spm1[i]<=maxspm) {
|
||||
if (distance1[i]>=mindist && distance1[i]<=maxdist) {
|
||||
data2['x1'].push(x1[i])
|
||||
data2['y1'].push(y1[i])
|
||||
data2['y2'].push(y2[i])
|
||||
data2['spm'].push(spm1[i])
|
||||
data2['time'].push(time1[i])
|
||||
data2['fpace'].push(fpace1[i])
|
||||
data2['pace'].push(pace1[i])
|
||||
data2['hr'].push(hr1[i])
|
||||
data2['distance'].push(distance1[i])
|
||||
data2['power'].push(power1[i])
|
||||
|
||||
xm += x1[i]
|
||||
ym1 += y1[i]
|
||||
ym2 += y2[i]
|
||||
if (driveenergy1[i]>=minwork && driveenergy1[i]<=maxwork) {
|
||||
data2['x1'].push(x1[i])
|
||||
data2['y1'].push(y1[i])
|
||||
data2['y2'].push(y2[i])
|
||||
data2['spm'].push(spm1[i])
|
||||
data2['time'].push(time1[i])
|
||||
data2['fpace'].push(fpace1[i])
|
||||
data2['pace'].push(pace1[i])
|
||||
data2['hr'].push(hr1[i])
|
||||
data2['distance'].push(distance1[i])
|
||||
data2['power'].push(power1[i])
|
||||
|
||||
xm += x1[i]
|
||||
ym1 += y1[i]
|
||||
ym2 += y2[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1488,6 +1492,15 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
title="Max SPM",callback=callback)
|
||||
callback.args["maxspm"] = slider_spm_max
|
||||
|
||||
slider_work_min = Slider(start=0.0, end=1000,value=0.0, step=10,
|
||||
title="Min Work per Stroke",callback=callback)
|
||||
callback.args["minwork"] = slider_work_min
|
||||
|
||||
|
||||
slider_work_max = Slider(start=0.0, end=1000,value=1000.0, step=10,
|
||||
title="Max Work per Stroke",callback=callback)
|
||||
callback.args["maxwork"] = slider_work_max
|
||||
|
||||
distmax = 100+100*int(rowdata['distance'].max()/100.)
|
||||
|
||||
slider_dist_min = Slider(start=0,end=distmax,value=0,step=1,
|
||||
@@ -1500,9 +1513,11 @@ def interactive_flex_chart2(id=0,promember=0,
|
||||
callback.args["maxdist"] = slider_dist_max
|
||||
|
||||
layout = layoutrow([layoutcolumn([slider_spm_min,
|
||||
slider_spm_max,
|
||||
slider_dist_min,
|
||||
slider_dist_max,
|
||||
slider_spm_max,
|
||||
slider_dist_min,
|
||||
slider_dist_max,
|
||||
slider_work_min,
|
||||
slider_work_max,
|
||||
],
|
||||
),
|
||||
plot])
|
||||
|
||||
Reference in New Issue
Block a user