Private
Public Access
1
0

crude version of results submit

This commit is contained in:
Sander Roosendaal
2018-04-19 14:36:54 +02:00
parent 6a9b61bef3
commit 20d83385ba
8 changed files with 299 additions and 32 deletions

View File

@@ -34,7 +34,7 @@ from rowers.forms import (
WorkFlowLeftPanelElement,WorkFlowMiddlePanelElement,
LandingPageForm,PlannedSessionSelectForm,WorkoutSessionSelectForm,
PlannedSessionTeamForm,PlannedSessionTeamMemberForm,
VirtualRaceSelectForm
VirtualRaceSelectForm,WorkoutRaceSelectForm,
)
from django.core.urlresolvers import reverse
from django.core.exceptions import PermissionDenied
@@ -13581,3 +13581,101 @@ def virtualevent_edit_view(request,id=0):
'race':race,
})
@login_required()
def virtualevent_submit_result_view(request,id=0):
r = getrower(request.user)
try:
race = VirtualRace.objects.get(id=id)
except VirtualRace.DoesNotExist:
raise Http404("Virtual Race does not exist")
start_time = race.start_time
start_date = race.startdate
startdatetime = datetime.datetime.combine(start_date, start_time)
startdatetime = pytz.timezone(race.timezone).localize(startdatetime)
end_time = race.end_time
end_date = race.enddate
enddatetime = datetime.datetime.combine(end_date, end_time)
enddatetime = pytz.timezone(race.timezone).localize(enddatetime)
can_submit = race_can_submit(r,race) or race_can_resubmit(r,race)
if not can_submit:
messages.error(request,'You cannot submit a result to this race')
url = reverse(virtualevent_view,
kwargs = {
'id':id
}
)
return HttpResponseRedirect(url)
ws = Workout.objects.filter(
user=r,
startdatetime__gte=startdatetime,
startdatetime__lte=enddatetime,
).order_by("date","startdatetime","id")
initialworkouts = [w.id for w in Workout.objects.filter(
user=r,plannedsession=race
)]
workoutdata = {}
workoutdata['initial'] = []
choices = []
for w in ws:
wtpl = (w.id, w.__unicode__())
choices.append(wtpl)
if w.id in initialworkouts:
workoutdata['initial'].append(w.id)
workoutdata['choices'] = tuple(choices)
if request.method == 'POST':
w_form = WorkoutRaceSelectForm(workoutdata,request.POST)
if w_form.is_valid():
selectedworkouts = [w_form.cleaned_data['workouts']]
else:
selectedworkouts = []
if len(selectedworkouts) == 0:
for w in ws:
remove_workout_plannedsession(w,race)
if selectedworkouts:
workouts = Workout.objects.filter(user=r,
id__in=selectedworkouts)
for w in ws:
if w.id not in selectedworkouts:
remove_workout_plannedsession(w,race)
delete_race_result(w,race)
result,comments,errors = add_workout_race(workouts,race,r)
for c in comments:
messages.info(request,c)
for er in errors:
messages.error(request,er)
# redirect to race page
else:
w_form = WorkoutRaceSelectForm(workoutdata=workoutdata)
return render(request,'race_submit.html',
{
'race':race,
'workouts':ws,
'rower':r,
'w_form':w_form,
})