withdraw from race
This commit is contained in:
@@ -647,7 +647,7 @@ def virtualevent_disqualify_view(request,id=0,recordid=0):
|
||||
},
|
||||
{
|
||||
'url':reverse(virtualevent_disqualify_view,
|
||||
kwargs={'raceid':raceid,
|
||||
kwargs={'id':id,
|
||||
'recordid':recordid}),
|
||||
'name': 'Disqualify Entry'
|
||||
},
|
||||
@@ -688,6 +688,149 @@ def virtualevent_disqualify_view(request,id=0,recordid=0):
|
||||
'record':record,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def virtualevent_withdrawresult_view(request,id=0,recordid=0):
|
||||
|
||||
r = getrower(request.user)
|
||||
race = get_object_or_404(VirtualRace,pk=id)
|
||||
|
||||
|
||||
if race.sessiontype == 'race':
|
||||
recordobj = VirtualRaceResult
|
||||
else:
|
||||
recordobj = IndoorVirtualRaceResult
|
||||
|
||||
# datum moet voor race evaluation date zijn (ook in template controleren)
|
||||
|
||||
try:
|
||||
record = recordobj.objects.get(id=recordid)
|
||||
except recordobj.DoesNotExist:
|
||||
messages.error(request,"We couldn't find the record")
|
||||
|
||||
if r.id != record.userid:
|
||||
raise PermissionDenied("You are not the owner of this result")
|
||||
|
||||
if timezone.now() > race.evaluation_closure+datetime.timedelta(hours=1):
|
||||
messages.error(request,"The evaluation is already closed and the results are official")
|
||||
url = reverse('virtualevent_view',kwargs={'id':raceid})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = DisqualificationForm(request.POST)
|
||||
if form.is_valid():
|
||||
message = form.cleaned_data['message']
|
||||
reason = form.cleaned_data['reason']
|
||||
disqualifier = disqualifiers[reason]
|
||||
|
||||
r = Rower.objects.get(id=record.userid)
|
||||
name = record.username
|
||||
|
||||
job = myqueue(queue,handle_send_withdraw_email,
|
||||
r.user.email, name,
|
||||
disqualifier,message,race.name)
|
||||
|
||||
messages.info(request,"We have invalidated the result for: "+str(record))
|
||||
|
||||
record.coursecompleted = False
|
||||
record.save()
|
||||
|
||||
url = reverse('virtualevent_view',kwargs={'id':id})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
else:
|
||||
form = DisqualificationForm(request.POST)
|
||||
|
||||
workout = Workout.objects.get(id=record.workoutid)
|
||||
|
||||
g = GraphImage.objects.filter(workout=workout).order_by("-creationdatetime")
|
||||
for i in g:
|
||||
try:
|
||||
width,height = Image.open(i.filename).size
|
||||
i.width = width
|
||||
i.height = height
|
||||
i.save()
|
||||
except:
|
||||
pass
|
||||
|
||||
script, div = interactive_chart(record.workoutid)
|
||||
|
||||
f1 = workout.csvfilename
|
||||
rowdata = rdata(f1)
|
||||
hascoordinates = 1
|
||||
if rowdata != 0:
|
||||
try:
|
||||
latitude = rowdata.df[' latitude']
|
||||
if not latitude.std():
|
||||
hascoordinates = 0
|
||||
except (KeyError, AttributeError):
|
||||
hascoordinates = 0
|
||||
else:
|
||||
hascoordinates = 0
|
||||
|
||||
if hascoordinates:
|
||||
mapscript, mapdiv = leaflet_chart(rowdata.df[' latitude'],
|
||||
rowdata.df[' longitude'],
|
||||
workout.name)
|
||||
else:
|
||||
mapscript = ""
|
||||
mapdiv = ""
|
||||
|
||||
breadcrumbs = [
|
||||
{
|
||||
'url':reverse('virtualevents_view'),
|
||||
'name': 'Challenges'
|
||||
},
|
||||
{
|
||||
'url':reverse('virtualevent_view',
|
||||
kwargs={'id':race.id}),
|
||||
'name': race.name
|
||||
},
|
||||
{
|
||||
'url':reverse(virtualevent_disqualify_view,
|
||||
kwargs={'id':id,
|
||||
'recordid':recordid}),
|
||||
'name': 'Disqualify Entry'
|
||||
},
|
||||
]
|
||||
|
||||
buttons = []
|
||||
|
||||
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']
|
||||
|
||||
return render(request,"withdraw_view.html",
|
||||
{'workout':workout,
|
||||
'active':'nav-racing',
|
||||
'graphs':g,
|
||||
'buttons':buttons,
|
||||
'interactiveplot':script,
|
||||
'the_div':div,
|
||||
'mapscript':mapscript,
|
||||
'mapdiv':mapdiv,
|
||||
'form':form,
|
||||
'race':race,
|
||||
'record':record,
|
||||
})
|
||||
|
||||
|
||||
def virtualevent_view(request,id=0):
|
||||
|
||||
results = []
|
||||
|
||||
Reference in New Issue
Block a user