date form for fitness metric
This commit is contained in:
@@ -352,6 +352,31 @@ class DateRangeForm(forms.Form):
|
|||||||
class Meta:
|
class Meta:
|
||||||
fields = ['startdate','enddate']
|
fields = ['startdate','enddate']
|
||||||
|
|
||||||
|
class FitnessMetricForm(forms.Form):
|
||||||
|
startdate = forms.DateField(
|
||||||
|
initial=timezone.now()-datetime.timedelta(days=365),
|
||||||
|
# widget=SelectDateWidget(years=range(1990,2050)),
|
||||||
|
widget=AdminDateWidget(),
|
||||||
|
label='Start Date')
|
||||||
|
enddate = forms.DateField(
|
||||||
|
initial=timezone.now(),
|
||||||
|
widget=AdminDateWidget(),
|
||||||
|
label='End Date')
|
||||||
|
|
||||||
|
modechoices = (
|
||||||
|
('rower','indoor rower'),
|
||||||
|
('water','on the water')
|
||||||
|
)
|
||||||
|
|
||||||
|
mode = forms.ChoiceField(required=True,
|
||||||
|
choices=modechoices,
|
||||||
|
initial='rower',
|
||||||
|
label='Workout Mode'
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
fields = ['startdate','enddate','mode']
|
||||||
|
|
||||||
class SessionDateShiftForm(forms.Form):
|
class SessionDateShiftForm(forms.Form):
|
||||||
shiftstartdate = forms.DateField(
|
shiftstartdate = forms.DateField(
|
||||||
initial=timezone.now(),
|
initial=timezone.now(),
|
||||||
|
|||||||
@@ -746,7 +746,7 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower'):
|
|||||||
plot.xaxis.major_label_orientation = pi/4
|
plot.xaxis.major_label_orientation = pi/4
|
||||||
|
|
||||||
plot.y_range = Range1d(0,1.5*max(power4min))
|
plot.y_range = Range1d(0,1.5*max(power4min))
|
||||||
plot.title.text = 'Fitness of '+user.first_name
|
plot.title.text = 'Power levels from workouts '+user.first_name
|
||||||
|
|
||||||
hover = plot.select(dict(type=HoverTool))
|
hover = plot.select(dict(type=HoverTool))
|
||||||
|
|
||||||
|
|||||||
@@ -77,11 +77,22 @@
|
|||||||
|
|
||||||
|
|
||||||
<div id="title" class="grid_12 alpha">
|
<div id="title" class="grid_12 alpha">
|
||||||
|
<div class="grid_6 suffix_6 alpha">
|
||||||
|
<form enctype="multipart/form-data" method="post">
|
||||||
|
<table>
|
||||||
|
{{ form.as_table }}
|
||||||
|
</table>
|
||||||
|
{% csrf_token %}
|
||||||
|
<div class="grid_2 prefix_4 alpha">
|
||||||
|
<input name='daterange' class="button green" type="submit" value="Submit">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
<div class="grid_10 alpha">
|
<div class="grid_10 alpha">
|
||||||
{% if therower.user %}
|
{% if therower.user %}
|
||||||
<h3>{{ therower.user.first_name }} Fitness Progress</h3>
|
<h3>{{ therower.user.first_name }} Power Estimates</h3>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h3>{{ user.first_name }} Fitness progress</h3>
|
<h3>{{ user.first_name }} Power Estimates</h3>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ from django.core.mail import send_mail, BadHeaderError
|
|||||||
from rowers.forms import (
|
from rowers.forms import (
|
||||||
SummaryStringForm,IntervalUpdateForm,StrokeDataForm,
|
SummaryStringForm,IntervalUpdateForm,StrokeDataForm,
|
||||||
StatsOptionsForm,PredictedPieceForm,DateRangeForm,DeltaDaysForm,
|
StatsOptionsForm,PredictedPieceForm,DateRangeForm,DeltaDaysForm,
|
||||||
|
FitnessMetricForm,
|
||||||
EmailForm, RegistrationForm, RegistrationFormTermsOfService,
|
EmailForm, RegistrationForm, RegistrationFormTermsOfService,
|
||||||
RegistrationFormUniqueEmail,RegistrationFormSex,
|
RegistrationFormUniqueEmail,RegistrationFormSex,
|
||||||
CNsummaryForm,UpdateWindForm,
|
CNsummaryForm,UpdateWindForm,
|
||||||
@@ -3063,14 +3064,29 @@ def cum_flex(request,theuser=0,
|
|||||||
|
|
||||||
|
|
||||||
@user_passes_test(hasplannedsessions,login_url="/",redirect_field_name=None)
|
@user_passes_test(hasplannedsessions,login_url="/",redirect_field_name=None)
|
||||||
def fitnessmetric_view(request,id=0,mode='rower'):
|
def fitnessmetric_view(request,id=0,mode='rower',
|
||||||
|
startdate=timezone.now()-timezone.timedelta(days=365),
|
||||||
|
enddate=timezone.now()):
|
||||||
if id==0:
|
if id==0:
|
||||||
id = request.user.id
|
id = request.user.id
|
||||||
|
|
||||||
theuser = User.objects.get(id=id)
|
theuser = User.objects.get(id=id)
|
||||||
therower = Rower.objects.get(user=theuser)
|
therower = Rower.objects.get(user=theuser)
|
||||||
|
|
||||||
fitnessmetrics = PowerTimeFitnessMetric.objects.filter(user=theuser)
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = FitnessMetricForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
startdate = form.cleaned_data['startdate']
|
||||||
|
enddate = form.cleaned_data['enddate']
|
||||||
|
mode = form.cleaned_data['mode']
|
||||||
|
else:
|
||||||
|
form = FitnessMetricForm()
|
||||||
|
|
||||||
|
fitnessmetrics = PowerTimeFitnessMetric.objects.filter(
|
||||||
|
user=theuser,
|
||||||
|
date__gte=startdate,
|
||||||
|
date__lte=enddate)
|
||||||
|
|
||||||
script,thediv = fitnessmetric_chart(
|
script,thediv = fitnessmetric_chart(
|
||||||
fitnessmetrics,theuser,
|
fitnessmetrics,theuser,
|
||||||
@@ -3083,6 +3099,7 @@ def fitnessmetric_view(request,id=0,mode='rower'):
|
|||||||
'chartscript':script,
|
'chartscript':script,
|
||||||
'the_div':thediv,
|
'the_div':thediv,
|
||||||
'mode':mode,
|
'mode':mode,
|
||||||
|
'form':form,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user