Private
Public Access
1
0

results filter on virtual race results

This commit is contained in:
Sander Roosendaal
2018-06-01 20:55:34 +02:00
parent 0a259d51e1
commit f83d4f5f1c
3 changed files with 98 additions and 10 deletions

View File

@@ -702,7 +702,43 @@ class WorkoutSessionSelectForm(forms.Form):
initial=workoutdata['initial'],
widget = forms.CheckboxSelectMultiple,
)
class RaceResultFilterForm(forms.Form):
sexchoices = (
('female','Female'),
('male','Male'),
('mixed','Mixed'),
)
weightcategories = (
('hwt','heavy-weight'),
('lwt','light-weight'),
)
sex = forms.MultipleChoiceField(
choices=sexchoices,
initial=['male','female','mixed'],
label='Gender',
widget=forms.CheckboxSelectMultiple())
boattype = forms.MultipleChoiceField(
choices=boattypes,
label='Boat Type',
initial=['1x','2x','2-','4x','4-','8+'],
widget=forms.CheckboxSelectMultiple())
age_min = forms.IntegerField(label='Min Age',initial=16)
age_max = forms.IntegerField(label='Max Age',initial=100)
weightcategory = forms.MultipleChoiceField(
choices=weightcategories,
label='Weight Category',
initial=['hwt','lwt'],
widget=forms.CheckboxSelectMultiple())
class WorkoutRaceSelectForm(forms.Form):
# evaluate_after = forms.TimeField(
# input_formats=['%H:%M:%S.%f',

View File

@@ -230,10 +230,24 @@
</div>
</div>
<div class="grid_4 omega">
<p>
<h2>Course</h2>
{{ coursediv|safe }}
{{ coursescript|safe }}
</p>
<p>
<h2>Filter Results</h2>
<form id="result_filter_form", method="post">
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<input class="button green" type="submit" value="Submit">
</p>
</div>
</div>

View File

@@ -36,6 +36,7 @@ from rowers.forms import (
LandingPageForm,PlannedSessionSelectForm,WorkoutSessionSelectForm,
PlannedSessionTeamForm,PlannedSessionTeamMemberForm,
VirtualRaceSelectForm,WorkoutRaceSelectForm,CourseSelectForm,
RaceResultFilterForm,
)
from django.core.urlresolvers import reverse
from django.core.exceptions import PermissionDenied
@@ -13439,6 +13440,7 @@ def virtualevent_view(request,id=0):
else:
r = None
try:
race = VirtualRace.objects.get(id=id)
except VirtualRace.DoesNotExist:
@@ -13467,17 +13469,52 @@ def virtualevent_view(request,id=0):
if race_can_edit(r,race):
buttons += ['editbutton']
results = VirtualRaceResult.objects.filter(
race=race,
workoutid__isnull=False,
).order_by("duration")
if request.method == 'POST':
form = RaceResultFilterForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
sex = cd['sex']
boattype = cd['boattype']
age_min = cd['age_min']
age_max = cd['age_max']
weightcategory = cd['weightcategory']
# to-do - add DNS
dns = []
if timezone.now() > race.evaluation_closure:
dns = VirtualRaceResult.objects.filter(
results = VirtualRaceResult.objects.filter(
race=race,
workoutid__isnull=False,
boattype__in=boattype,
sex__in=sex,
weightcategory__in=weightcategory,
age__gte=age_min,
age__lte=age_max
).order_by("duration")
# to-do - add DNS
dns = []
if timezone.now() > race.evaluation_closure:
dns = VirtualRaceResult.objects.filter(
race=race,
workoutid__isnull=True,
boattype__in=boattype,
sex__in=sex,
weightcategory__in=weightcategory,
age__gte=age_min,
age__lte=age_max
)
else:
form = RaceResultFilterForm()
results = VirtualRaceResult.objects.filter(
race=race,
workoutid__isnull=True,
workoutid__isnull=False,
).order_by("duration")
# to-do - add DNS
dns = []
if timezone.now() > race.evaluation_closure:
dns = VirtualRaceResult.objects.filter(
race=race,
workoutid__isnull=True,
)
@@ -13497,6 +13534,7 @@ def virtualevent_view(request,id=0):
'buttons':buttons,
'dns':dns,
'records':records,
'form':form,
})
@login_required()