Private
Public Access
1
0

disqualification now with review and form

This commit is contained in:
Sander Roosendaal
2018-11-28 15:37:41 +01:00
parent a75b59519e
commit 774028497b
10 changed files with 385 additions and 32 deletions

View File

@@ -49,7 +49,8 @@ from rowers.forms import (
VirtualRaceSelectForm,WorkoutRaceSelectForm,CourseSelectForm,
RaceResultFilterForm,PowerIntervalUpdateForm,FlexAxesForm,
FlexOptionsForm,DataFrameColumnsForm,OteWorkoutTypeForm,
MetricsForm,
MetricsForm,DisqualificationForm,disqualificationreasons,
disqualifiers
)
from django.core.urlresolvers import reverse, reverse_lazy
@@ -156,6 +157,7 @@ from rowers.tasks import handle_makeplot,handle_otwsetpower,handle_sendemailtcx,
from rowers.tasks import (
handle_sendemail_unrecognized,handle_sendemailnewcomment,
handle_sendemailsummary,
handle_send_disqualification_email,
handle_sendemailfile,
handle_sendemailkml,
handle_sendemailnewresponse, handle_updatedps,
@@ -15837,9 +15839,6 @@ def virtualevent_disqualify_view(request,raceid=0,recordid=0):
r = getrower(request.user)
# datum moet voor race evaluation date zijn (ook in template controleren)
try:
race = VirtualRace.objects.get(id=raceid)
except VirtualRace.DoesNotExist:
@@ -15853,24 +15852,111 @@ def virtualevent_disqualify_view(request,raceid=0,recordid=0):
else:
recordobj = IndoorVirtualRaceResult
if timezone.now() > race.evaluation_closure:
try:
record = recordobj.objects.get(id=recordid)
# 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 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]
u = User.objects.get(id=record.userid)
name = record.username
job = myqueue(queue,handle_send_disqualification_email,
u.email, name,
disqualifier,message,race.name)
messages.info(request,"We have invalidated the result for: "+str(record))
record.coursecompleted = False
record.save()
print record.coursecompleted
except recordobj.DoesNotExist:
messages.error(request,"We couldn't find the record")
url = reverse(virtualevent_view,kwargs={'id':raceid})
return HttpResponseRedirect(url)
else:
messages.error(request,"The evaluation is already closed and the results are official")
form = DisqualificationForm(request.POST)
url = reverse(virtualevent_view,kwargs={'id':raceid})
workout = Workout.objects.get(id=record.workoutid)
return HttpResponseRedirect(url)
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': 'Racing'
},
{
'url':reverse(virtualevent_view,
kwargs={'id':race.id}),
'name': race.name
},
{
'url':reverse(virtualevent_disqualify_view,
kwargs={'raceid':raceid,
'recordid':recordid}),
'name': 'Disqualify Entry'
},
]
return render(request,"disqualification_view.html",
{'workout':workout,
'active':'nav-racing',
'graphs':g,
'interactiveplot':script,
'the_div':div,
'mapscript':mapscript,
'mapdiv':mapdiv,
'form':form,
'race':race,
'record':record,
})
def virtualevent_view(request,id=0):