Private
Public Access
1
0

date form for fitness metric

This commit is contained in:
Sander Roosendaal
2018-04-09 13:42:25 +02:00
parent b3eed722d6
commit 4ad1787a1d
4 changed files with 58 additions and 5 deletions

View File

@@ -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(),

View File

@@ -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))

View File

@@ -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">

View File

@@ -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,
}) })