defined PowerZonesForm
This commit is contained in:
@@ -424,6 +424,93 @@ class RowerPowerForm(ModelForm):
|
|||||||
model = Rower
|
model = Rower
|
||||||
fields = ['ftp']
|
fields = ['ftp']
|
||||||
|
|
||||||
|
# Form to set rower's Power zones, including test routines
|
||||||
|
# to enable consistency
|
||||||
|
class RowerPowerZonesForm(ModelForm):
|
||||||
|
ut2name = forms.CharField(initial='UT2')
|
||||||
|
ut1name = forms.CharField(initial='UT1')
|
||||||
|
atname = forms.CharField(initial='AT')
|
||||||
|
trname = forms.CharField(initial='TR')
|
||||||
|
anname = forms.CharField(initial='AN')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Rower
|
||||||
|
fields = ['pw_ut2','pw_ut1','pw_at','pw_tr','pw_an']
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
try:
|
||||||
|
pw_ut2 = self.cleaned_data['pw_ut2']
|
||||||
|
except:
|
||||||
|
pw_ut2 = int(self.data['pw_ut2'])
|
||||||
|
try:
|
||||||
|
pw_ut1 = self.cleaned_data['pw_ut1']
|
||||||
|
except:
|
||||||
|
pw_ut1 = int(self.data['pw_ut1'])
|
||||||
|
try:
|
||||||
|
pw_at = self.cleaned_data['pw_at']
|
||||||
|
except:
|
||||||
|
pw_at = int(self.data['pw_at'])
|
||||||
|
try:
|
||||||
|
pw_tr = self.cleaned_data['pw_tr']
|
||||||
|
except:
|
||||||
|
pw_tr = int(self.data['pw_tr'])
|
||||||
|
try:
|
||||||
|
pw_an = self.cleaned_data['pw_an']
|
||||||
|
except:
|
||||||
|
pw_an = int(self.data['pw_an'])
|
||||||
|
|
||||||
|
try:
|
||||||
|
ut2name = self.cleaned_data['ut2name']
|
||||||
|
except:
|
||||||
|
ut2name = 'UT2'
|
||||||
|
self.cleaned_data['ut2name'] = 'UT2'
|
||||||
|
try:
|
||||||
|
ut1name = self.cleaned_data['ut1name']
|
||||||
|
except:
|
||||||
|
ut1name = 'UT1'
|
||||||
|
self.cleaned_data['ut1name'] = 'UT1'
|
||||||
|
try:
|
||||||
|
atname = self.cleaned_data['atname']
|
||||||
|
except:
|
||||||
|
atname = 'AT'
|
||||||
|
self.cleaned_data['atname'] = 'AT'
|
||||||
|
try:
|
||||||
|
trname = self.cleaned_data['trname']
|
||||||
|
except:
|
||||||
|
trname = 'TR'
|
||||||
|
self.cleaned_data['ut1name'] = 'TR'
|
||||||
|
try:
|
||||||
|
anname = self.cleaned_data['anname']
|
||||||
|
except:
|
||||||
|
anname = 'AN'
|
||||||
|
self.cleaned_data['ut1name'] = 'AN'
|
||||||
|
|
||||||
|
|
||||||
|
if pw_ut1 <= pw_ut2:
|
||||||
|
e = "{ut1name} should be higher than {ut2name}".format(
|
||||||
|
ut1name = ut1name,
|
||||||
|
ut2name= ut2name,
|
||||||
|
)
|
||||||
|
raise forms.ValidationError(e)
|
||||||
|
if pw_at <= pw_ut1:
|
||||||
|
e = "{atname} should be higher than {ut1name}".format(
|
||||||
|
atname = atname,
|
||||||
|
ut1name= ut1name,
|
||||||
|
)
|
||||||
|
raise forms.ValidationError(e)
|
||||||
|
if pw_tr <= pw_at:
|
||||||
|
e = "{trname} should be higher than {atname}".format(
|
||||||
|
atname = atname,
|
||||||
|
trname= trname,
|
||||||
|
)
|
||||||
|
raise forms.ValidationError(e)
|
||||||
|
if pw_an <= pw_tr:
|
||||||
|
e = "{anname} should be higher than {trname}".format(
|
||||||
|
anname = anname,
|
||||||
|
trname= trname,
|
||||||
|
)
|
||||||
|
raise forms.ValidationError(e)
|
||||||
|
|
||||||
# Form to set rower's Heart Rate zones, including test routines
|
# Form to set rower's Heart Rate zones, including test routines
|
||||||
# to enable consistency
|
# to enable consistency
|
||||||
class RowerForm(ModelForm):
|
class RowerForm(ModelForm):
|
||||||
|
|||||||
@@ -24,29 +24,35 @@
|
|||||||
<div class="grid_6 omega">
|
<div class="grid_6 omega">
|
||||||
<p>
|
<p>
|
||||||
<h2>Power Bands</h2>
|
<h2>Power Bands</h2>
|
||||||
<table width="70%" class="listtable">
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
<thead>
|
{% if powerzonesform.errors %}
|
||||||
<tr>
|
<p style="color: red;">
|
||||||
<th>Band</th>
|
Please correct the error{{ form.errors|pluralize }} below.
|
||||||
<th>Value</th>
|
</p>
|
||||||
</tr>
|
{% endif %}
|
||||||
</thead>
|
<table>
|
||||||
<tbody>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>UT2 Power</td><td>{{ rower.pw_ut2 }} Watt</td>
|
<th>ID</th><th>Zone Name</th><th>Lower Boundary</th>
|
||||||
</tr><tr>
|
</tr>
|
||||||
<td>UT1 Power</td><td>{{ rower.pw_ut1 }} Watt</td>
|
</thead>
|
||||||
</tr><tr>
|
<tbody>
|
||||||
<td>AT Power</td><td>{{ rower.pw_at }} Watt</td>
|
<tr>
|
||||||
</tr><tr>
|
<td>1</td><td>{{ powerzonesform.ut2name }}</td>
|
||||||
<td>TR Power</td><td>{{ rower.pw_tr }} Watt</td>
|
<td></td>
|
||||||
</tr><tr>
|
</tr>
|
||||||
<td>AN Power</td><td>{{ rower.pw_an }} Watt</td>
|
</tbody>
|
||||||
</tr>
|
</table>
|
||||||
</table>
|
{% csrf_token %}
|
||||||
</p>
|
<div class="grid_2 prefix_2 suffix_2">
|
||||||
|
<input class="button green" type="submit" value="Save">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<p>
|
<p>
|
||||||
<h2>Functional Threshold Power</h2>
|
<h2>Functional Threshold Power</h2>
|
||||||
|
<p>Use this form to quickly change your zones based on the power of a
|
||||||
|
recent
|
||||||
|
full out 60 minutes effort. It will update all zones defined above.</p>
|
||||||
<form enctype="multipart/form-data" action="" method="post">
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
<table>
|
<table>
|
||||||
{{ powerform.as_table }}
|
{{ powerform.as_table }}
|
||||||
|
|||||||
@@ -24,7 +24,10 @@ from rowers.forms import EmailForm, RegistrationForm, RegistrationFormTermsOfSer
|
|||||||
from rowers.forms import PredictedPieceForm,DateRangeForm,DeltaDaysForm
|
from rowers.forms import PredictedPieceForm,DateRangeForm,DeltaDaysForm
|
||||||
from rowers.forms import SummaryStringForm,IntervalUpdateForm,StrokeDataForm
|
from rowers.forms import SummaryStringForm,IntervalUpdateForm,StrokeDataForm
|
||||||
from rowers.models import Workout, User, Rower, WorkoutForm,FavoriteChart
|
from rowers.models import Workout, User, Rower, WorkoutForm,FavoriteChart
|
||||||
from rowers.models import RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm
|
from rowers.models import (
|
||||||
|
RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm,
|
||||||
|
RowerPowerZonesForm
|
||||||
|
)
|
||||||
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
|
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
|
||||||
from django.forms.formsets import formset_factory
|
from django.forms.formsets import formset_factory
|
||||||
import StringIO
|
import StringIO
|
||||||
@@ -4554,11 +4557,13 @@ def rower_edit_view(request,message=""):
|
|||||||
|
|
||||||
form = RowerForm(instance=r)
|
form = RowerForm(instance=r)
|
||||||
powerform = RowerPowerForm(instance=r)
|
powerform = RowerPowerForm(instance=r)
|
||||||
|
powerzonesform = RowerPowerZonesForm(instance=r)
|
||||||
grants = AccessToken.objects.filter(user=request.user)
|
grants = AccessToken.objects.filter(user=request.user)
|
||||||
return render(request, 'rower_form.html',
|
return render(request, 'rower_form.html',
|
||||||
{
|
{
|
||||||
'form':form,
|
'form':form,
|
||||||
'powerform':powerform,
|
'powerform':powerform,
|
||||||
|
'powerzonesform':powerzonesform,
|
||||||
'grants':grants,
|
'grants':grants,
|
||||||
'rower':r,
|
'rower':r,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user