disqualification now with review and form
This commit is contained in:
112
rowers/views.py
112
rowers/views.py
@@ -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):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user