initial implementation of Power Zones form
This commit is contained in:
153
rowers/views.py
153
rowers/views.py
@@ -440,9 +440,17 @@ def add_workout_from_strokedata(user,importid,data,strokedata,
|
||||
|
||||
|
||||
# make workout
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,
|
||||
powerzones=r.powerzones,
|
||||
)
|
||||
row = rdata(csvfilename,rower=rr)
|
||||
|
||||
averagehr = row.df[' HRCur (bpm)'].mean()
|
||||
@@ -679,9 +687,15 @@ def add_workout_from_stdata(user,importid,data):
|
||||
compression='gzip')
|
||||
|
||||
# make workout
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,powerzones=powerzones)
|
||||
row = rdata(csvfilename,rower=rr)
|
||||
|
||||
averagehr = row.df[' HRCur (bpm)'].mean()
|
||||
@@ -3837,9 +3851,15 @@ def workout_upload_view(request,message=""):
|
||||
|
||||
# make Workout object and put in database
|
||||
r = Rower.objects.get(user=request.user)
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,powerzones=powerzones)
|
||||
row = rdata(f2,rower=rr)
|
||||
if row == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
@@ -4176,9 +4196,15 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
|
||||
f1 = row.csvfilename
|
||||
u = request.user
|
||||
r = Rower.objects.get(user=u)
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,powerzones=powerzones)
|
||||
rowdata = rdata(f1,rower=rr)
|
||||
if rowdata == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
@@ -4225,9 +4251,15 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
||||
f1 = row.csvfilename
|
||||
u = request.user
|
||||
r = Rower.objects.get(user=u)
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,powerzones=powerzones)
|
||||
rowdata = rdata(f1,rower=rr)
|
||||
if rowdata == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
@@ -4465,6 +4497,7 @@ def rower_favoritecharts_view(request):
|
||||
# Add email address to form so user can change his email address
|
||||
@login_required()
|
||||
def rower_edit_view(request,message=""):
|
||||
r = Rower.objects.get(user=request.user)
|
||||
if request.method == 'POST' and "ut2" in request.POST:
|
||||
form = RowerForm(request.POST)
|
||||
if form.is_valid():
|
||||
@@ -4489,17 +4522,30 @@ def rower_edit_view(request,message=""):
|
||||
r.rest = max(min(rest,250),10)
|
||||
r.weightcategory = weightcategory
|
||||
r.save()
|
||||
message = "User data changed"
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
response = HttpResponseRedirect(url)
|
||||
successmessage = "Your Heart Rate data were changed"
|
||||
form = RowerForm(instance=r)
|
||||
powerform = RowerPowerForm(instance=r)
|
||||
powerzonesform = RowerPowerZonesForm(instance=r)
|
||||
return render(request, 'rower_form.html',
|
||||
{'form':form,
|
||||
'powerzonesform':powerzonesform,
|
||||
'powerform':powerform,
|
||||
'rower':r,
|
||||
'successmessage':successmessage,
|
||||
})
|
||||
except Rower.DoesNotExist:
|
||||
message = "Funny. This user doesn't exist."
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
message = HttpResponse("invalid form")
|
||||
#form = RowerForm(instance=r)
|
||||
powerform = RowerPowerForm(instance=r)
|
||||
powerzonesform = RowerPowerZonesForm(instance=r)
|
||||
return render(request, 'rower_form.html',
|
||||
{'form':form,
|
||||
'powerzonesform':powerzonesform,
|
||||
'powerform':powerform,
|
||||
'rower':r,
|
||||
})
|
||||
# url = reverse(rower_edit_view,args=[str(message)])
|
||||
@@ -4508,15 +4554,18 @@ def rower_edit_view(request,message=""):
|
||||
|
||||
return response
|
||||
elif request.method == 'POST' and "ftp" in request.POST:
|
||||
form = RowerPowerForm(request.POST)
|
||||
if form.is_valid():
|
||||
cd = form.cleaned_data
|
||||
powerform = RowerPowerForm(request.POST)
|
||||
if powerform.is_valid():
|
||||
cd = powerform.cleaned_data
|
||||
ftp = cd['ftp']
|
||||
try:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
powerfrac = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
r.ftp = max(min(ftp,650),50)
|
||||
powerperc = [55,75,90,105,120]
|
||||
ut2,ut1,at,tr,an = (r.ftp*np.array(powerperc)/100.).astype(int)
|
||||
ut2,ut1,at,tr,an = (r.ftp*powerfrac/100.).astype(int)
|
||||
r.pw_ut2 = ut2
|
||||
r.pw_ut1 = ut1
|
||||
r.pw_at = at
|
||||
@@ -4528,10 +4577,13 @@ def rower_edit_view(request,message=""):
|
||||
response = HttpResponseRedirect(url)
|
||||
except Rower.DoesNotExist:
|
||||
message = "Funny. This user doesn't exist."
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
url = reverse(rower_edit_view,args=[str(message)])
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
message = HttpResponse("invalid form")
|
||||
form = RowerForm(instance=r)
|
||||
#powerform = RowerPowerForm(instance=r)
|
||||
powerzonesform = RowerPowerZonesForm(instance=r)
|
||||
return render(request, 'rower_form.html',
|
||||
{'form':form,
|
||||
'powerform':powerform,
|
||||
@@ -4540,20 +4592,62 @@ def rower_edit_view(request,message=""):
|
||||
|
||||
|
||||
return response
|
||||
elif request.method == 'POST' and "ut3name" in request.POST:
|
||||
powerzonesform = RowerPowerZonesForm(request.POST)
|
||||
if powerzonesform.is_valid():
|
||||
cd = powerzonesform.cleaned_data
|
||||
pw_ut2 = cd['pw_ut2']
|
||||
pw_ut1 = cd['pw_ut1']
|
||||
pw_at = cd['pw_at']
|
||||
pw_tr = cd['pw_tr']
|
||||
pw_an = cd['pw_an']
|
||||
ut3name = cd['ut3name']
|
||||
ut2name = cd['ut2name']
|
||||
ut1name = cd['ut1name']
|
||||
atname = cd['atname']
|
||||
trname = cd['trname']
|
||||
anname = cd['anname']
|
||||
powerzones = [ut3name,ut2name,ut1name,atname,trname,anname]
|
||||
try:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
r.pw_ut2 = pw_ut2
|
||||
r.pw_ut1 = pw_ut1
|
||||
r.pw_at = pw_at
|
||||
r.pw_tr = pw_tr
|
||||
r.pw_an = pw_an
|
||||
r.powerzones = powerzones
|
||||
r.save()
|
||||
successmessage = "Your Power Zone data were changed"
|
||||
form = RowerForm(instance=r)
|
||||
powerform = RowerPowerForm(instance=r)
|
||||
powerzonesform = RowerPowerZonesForm(instance=r)
|
||||
return render(request, 'rower_form.html',
|
||||
{'form':form,
|
||||
'powerzonesform':powerzonesform,
|
||||
'powerform':powerform,
|
||||
'rower':r,
|
||||
'successmessage':successmessage,
|
||||
})
|
||||
except Rower.DoesNotExist:
|
||||
message = "Funny. This user doesn't exist."
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
else:
|
||||
form = RowerForm(instance=r)
|
||||
powerform = RowerPowerForm(instance=r)
|
||||
#powerzonesform = RowerPowerZonesForm(instance=r)
|
||||
message = HttpResponse("invalid form")
|
||||
return render(request, 'rower_form.html',
|
||||
{'form':form,
|
||||
'powerform':powerform,
|
||||
'powerzonesform':powerzonesform,
|
||||
'rower':r,
|
||||
})
|
||||
|
||||
else:
|
||||
try:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
|
||||
# Temporary code
|
||||
powerperc = [55,75,90,105,120]
|
||||
ut2,ut1,at,tr,an = (r.ftp*np.array(powerperc)/100.).astype(int)
|
||||
r.pw_ut2 = ut2
|
||||
r.pw_ut1 = ut1
|
||||
r.pw_at = at
|
||||
r.pw_tr = tr
|
||||
r.pw_an = an
|
||||
r.save()
|
||||
# end temporary
|
||||
|
||||
form = RowerForm(instance=r)
|
||||
powerform = RowerPowerForm(instance=r)
|
||||
@@ -4742,10 +4836,15 @@ def strokedatajson(request,id):
|
||||
row.save()
|
||||
|
||||
r = Rower.objects.get(user=request.user)
|
||||
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
r.pw_tr,r.pw_an])/r.ftp
|
||||
|
||||
rr = rrower(hrmax=r.max,hrut2=r.ut2,
|
||||
hrut1=r.ut1,hrat=r.at,
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp)
|
||||
hrtr=r.tr,hran=r.an,ftp=r.ftp,
|
||||
powerperc=powerperc,powerzones=powerzones)
|
||||
rowdata = rdata(row.csvfilename,rower=rr).df
|
||||
|
||||
datadf = dataprep.dataprep(rowdata,id=row.id,bands=True,barchart=True,otwpower=True,empower=True)
|
||||
|
||||
Reference in New Issue
Block a user