Private
Public Access
1
0

adding race selector to workout upload

This commit is contained in:
Sander Roosendaal
2018-12-02 19:18:04 +01:00
parent a746052fbf
commit aa520bbf98
5 changed files with 199 additions and 7 deletions

View File

@@ -1,6 +1,9 @@
from django import forms
from django.contrib.admin.widgets import FilteredSelectMultiple
from rowers.models import Workout,Rower,Team,PlannedSession,GeoCourse
from rowers.models import (
Workout,Rower,Team,PlannedSession,GeoCourse,
VirtualRace,VirtualRaceResult,IndoorVirtualRaceResult
)
from rowers.rows import validate_file_extension,must_be_csv,validate_image_extension,validate_kml
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
@@ -16,6 +19,7 @@ from utils import landingpages
from metrics import axes
# login form
class LoginForm(forms.Form):
username = forms.CharField()
@@ -254,6 +258,10 @@ class UploadOptionsForm(forms.Form):
makeprivate = forms.BooleanField(initial=False,required=False,
label='Make Workout Private')
submitrace = forms.ModelChoiceField(queryset=VirtualRace.objects.all(),
label='Submit as Race Result',
required=False)
landingpage = forms.ChoiceField(choices=nextpages,
initial='workout_edit_view',
label='After Upload, go to')
@@ -261,6 +269,28 @@ class UploadOptionsForm(forms.Form):
class Meta:
fields = ['make_plot','plottype','upload_toc2','makeprivate']
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request',None)
super(UploadOptionsForm, self).__init__(*args, **kwargs)
r = Rower.objects.get(user=self.request.user)
races = VirtualRace.objects.filter(
registration_closure__gt=timezone.now(),
sessiontype='indoorrace')
registrations = IndoorVirtualRaceResult.objects.filter(
race__in = races,
userid = r.id)
raceids = [r.race.id for r in registrations]
races = VirtualRace.objects.filter(
id__in=raceids
)
if races:
self.fields['submitrace'].queryset = races
else:
del self.fields['submitrace']
# The form to indicate additional actions to be performed immediately
# after a successful upload. This version allows the Team manager to select
# a team member