crude version of results submit
This commit is contained in:
100
rowers/views.py
100
rowers/views.py
@@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user