user admin race submission works
This commit is contained in:
180
rowers/views.py
180
rowers/views.py
@@ -16128,6 +16128,186 @@ def virtualevent_view(request,id=0):
|
||||
'active':'nav-racing',
|
||||
})
|
||||
|
||||
def virtualevent_ranking_view(request,id=0):
|
||||
|
||||
results = []
|
||||
|
||||
if not request.user.is_anonymous():
|
||||
r = getrower(request.user)
|
||||
else:
|
||||
r = None
|
||||
|
||||
|
||||
try:
|
||||
race = VirtualRace.objects.get(id=id)
|
||||
except VirtualRace.DoesNotExist:
|
||||
raise Http404("Virtual Race does not exist")
|
||||
|
||||
if race.sessiontype == 'race':
|
||||
script,div = course_map(race.course)
|
||||
resultobj = VirtualRaceResult
|
||||
else:
|
||||
script = ''
|
||||
div = ''
|
||||
resultobj = IndoorVirtualRaceResult
|
||||
|
||||
records = resultobj.objects.filter(race=race)
|
||||
|
||||
|
||||
buttons = []
|
||||
|
||||
# to-do - add DNS
|
||||
dns = []
|
||||
if timezone.now() > race.evaluation_closure:
|
||||
dns = resultobj.objects.filter(
|
||||
race=race,
|
||||
workoutid__isnull=True,
|
||||
)
|
||||
|
||||
|
||||
if not request.user.is_anonymous():
|
||||
if race_can_register(r,race):
|
||||
buttons += ['registerbutton']
|
||||
|
||||
if race_can_adddiscipline(r,race):
|
||||
buttons += ['adddisciplinebutton']
|
||||
|
||||
if race_can_submit(r,race):
|
||||
buttons += ['submitbutton']
|
||||
|
||||
if race_can_resubmit(r,race):
|
||||
buttons += ['resubmitbutton']
|
||||
|
||||
if race_can_withdraw(r,race):
|
||||
buttons += ['withdrawbutton']
|
||||
|
||||
if race_can_edit(r,race):
|
||||
buttons += ['editbutton']
|
||||
|
||||
if request.method == 'POST':
|
||||
form = RaceResultFilterForm(request.POST,records=records)
|
||||
if form.is_valid():
|
||||
cd = form.cleaned_data
|
||||
try:
|
||||
sex = cd['sex']
|
||||
except KeyError:
|
||||
sex = ['female','male','mixed']
|
||||
|
||||
try:
|
||||
boattype = cd['boattype']
|
||||
except KeyError:
|
||||
boattype = mytypes.waterboattype
|
||||
|
||||
try:
|
||||
boatclass = cd['boatclass']
|
||||
except KeyError:
|
||||
if race.sessiontype == 'race':
|
||||
boatclass = [t for t in mytypes.otwtypes]
|
||||
else:
|
||||
boatclass = [t for t in mytypes.otetypes]
|
||||
|
||||
age_min = cd['age_min']
|
||||
age_max = cd['age_max']
|
||||
|
||||
try:
|
||||
weightcategory = cd['weightcategory']
|
||||
except KeyError:
|
||||
weightcategory = ['hwt','lwt']
|
||||
|
||||
try:
|
||||
adaptiveclass = cd['adaptiveclass']
|
||||
except KeyError:
|
||||
adaptiveclass = ['None','PR1','PR2','PR3','FES']
|
||||
|
||||
if race.sessiontype == 'race':
|
||||
results = resultobj.objects.filter(
|
||||
race=race,
|
||||
workoutid__isnull=False,
|
||||
boatclass__in=boatclass,
|
||||
boattype__in=boattype,
|
||||
sex__in=sex,
|
||||
weightcategory__in=weightcategory,
|
||||
adaptiveclass__in=adaptiveclass,
|
||||
age__gte=age_min,
|
||||
age__lte=age_max
|
||||
).order_by("duration")
|
||||
else:
|
||||
results = resultobj.objects.filter(
|
||||
race=race,
|
||||
workoutid__isnull=False,
|
||||
boatclass__in=boatclass,
|
||||
sex__in=sex,
|
||||
weightcategory__in=weightcategory,
|
||||
adaptiveclass__in=adaptiveclass,
|
||||
age__gte=age_min,
|
||||
age__lte=age_max
|
||||
).order_by("duration","-distance")
|
||||
|
||||
|
||||
# to-do - add DNS
|
||||
dns = []
|
||||
if timezone.now() > race.evaluation_closure:
|
||||
dns = resultobj.objects.filter(
|
||||
race=race,
|
||||
workoutid__isnull=True,
|
||||
boatclass__in=boatclass,
|
||||
sex__in=sex,
|
||||
weightcategory__in=weightcategory,
|
||||
adaptiveclass__in=adaptiveclass,
|
||||
age__gte=age_min,
|
||||
age__lte=age_max
|
||||
)
|
||||
else:
|
||||
results = resultobj.objects.filter(
|
||||
race=race,
|
||||
workoutid__isnull=False,
|
||||
coursecompleted=True,
|
||||
).order_by("duration","-distance")
|
||||
|
||||
if results:
|
||||
form = RaceResultFilterForm(records=records)
|
||||
else:
|
||||
form = None
|
||||
|
||||
|
||||
|
||||
breadcrumbs = [
|
||||
{
|
||||
'url':reverse(virtualevents_view),
|
||||
'name': 'Racing'
|
||||
},
|
||||
{
|
||||
'url':reverse(virtualevent_view,
|
||||
kwargs={'id':race.id}
|
||||
),
|
||||
'name': race.name
|
||||
}
|
||||
]
|
||||
|
||||
racelogos = race.logos.all()
|
||||
|
||||
if racelogos:
|
||||
racelogo = racelogos[0]
|
||||
else:
|
||||
racelogo = None
|
||||
|
||||
return render(request,'virtualeventranking.html',
|
||||
{
|
||||
'coursescript':script,
|
||||
'coursediv':div,
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'race':race,
|
||||
'rower':r,
|
||||
'results':results,
|
||||
'buttons':buttons,
|
||||
'dns':dns,
|
||||
'records':records,
|
||||
'racelogo':racelogo,
|
||||
'form':form,
|
||||
'active':'nav-racing',
|
||||
})
|
||||
|
||||
|
||||
@login_required()
|
||||
def virtualevent_withdraw_view(request,id=0,recordid=None):
|
||||
r = getrower(request.user)
|
||||
|
||||
Reference in New Issue
Block a user