date form for fitness metric
This commit is contained in:
@@ -352,6 +352,31 @@ class DateRangeForm(forms.Form):
|
||||
class Meta:
|
||||
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):
|
||||
shiftstartdate = forms.DateField(
|
||||
initial=timezone.now(),
|
||||
|
||||
@@ -746,7 +746,7 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower'):
|
||||
plot.xaxis.major_label_orientation = pi/4
|
||||
|
||||
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))
|
||||
|
||||
|
||||
@@ -77,11 +77,22 @@
|
||||
|
||||
|
||||
<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">
|
||||
{% if therower.user %}
|
||||
<h3>{{ therower.user.first_name }} Fitness Progress</h3>
|
||||
<h3>{{ therower.user.first_name }} Power Estimates</h3>
|
||||
{% else %}
|
||||
<h3>{{ user.first_name }} Fitness progress</h3>
|
||||
<h3>{{ user.first_name }} Power Estimates</h3>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_2 omega">
|
||||
|
||||
@@ -46,6 +46,7 @@ from django.core.mail import send_mail, BadHeaderError
|
||||
from rowers.forms import (
|
||||
SummaryStringForm,IntervalUpdateForm,StrokeDataForm,
|
||||
StatsOptionsForm,PredictedPieceForm,DateRangeForm,DeltaDaysForm,
|
||||
FitnessMetricForm,
|
||||
EmailForm, RegistrationForm, RegistrationFormTermsOfService,
|
||||
RegistrationFormUniqueEmail,RegistrationFormSex,
|
||||
CNsummaryForm,UpdateWindForm,
|
||||
@@ -3063,14 +3064,29 @@ def cum_flex(request,theuser=0,
|
||||
|
||||
|
||||
@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:
|
||||
id = request.user.id
|
||||
|
||||
theuser = User.objects.get(id=id)
|
||||
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(
|
||||
fitnessmetrics,theuser,
|
||||
@@ -3083,6 +3099,7 @@ def fitnessmetric_view(request,id=0,mode='rower'):
|
||||
'chartscript':script,
|
||||
'the_div':thediv,
|
||||
'mode':mode,
|
||||
'form':form,
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user