From a75b59519e3b45667648f67a59cb13210985eb43 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 28 Nov 2018 12:34:39 +0100 Subject: [PATCH] first version of disqualification --- rowers/templates/virtualevent.html | 10 ++++++++ rowers/urls.py | 2 ++ rowers/views.py | 41 ++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/rowers/templates/virtualevent.html b/rowers/templates/virtualevent.html index 338d1805..07dae4e3 100644 --- a/rowers/templates/virtualevent.html +++ b/rowers/templates/virtualevent.html @@ -160,6 +160,7 @@ Time Distance Details +   @@ -182,6 +183,15 @@ Details + + {% if race.manager == request.user %} + + Disqualify + + {% else %} +   + {% endif %} + {% endfor %} {% for result in dns %} diff --git a/rowers/urls.py b/rowers/urls.py index eeea79e5..8fcd905a 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -154,6 +154,8 @@ urlpatterns = [ url(r'^virtualevent/(?P\d+)/withdraw$',views.virtualevent_withdraw_view), url(r'^virtualevent/(?P\d+)/submit$', views.virtualevent_submit_result_view), + url(r'^virtualevent/(?P\d+)/disqualify/(?P\d+)/', + views.virtualevent_disqualify_view), url(r'^list-workouts/$',views.workouts_view), url(r'^list-courses/$',views.courses_view), url(r'^courses/upload$',views.course_upload_view), diff --git a/rowers/views.py b/rowers/views.py index 3ddb7653..2b048024 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -15832,6 +15832,46 @@ def virtualevents_view(request): } ) +@login_required() +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: + raise Http404("Virtual Race does not exist") + + if r.user != race.manager: + raise PermissionDenied("Access denied") + + if race.sessiontype == 'race': + recordobj = VirtualRaceResult + else: + recordobj = IndoorVirtualRaceResult + + if timezone.now() > race.evaluation_closure: + try: + record = recordobj.objects.get(id=recordid) + + + 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") + else: + messages.error(request,"The evaluation is already closed and the results are official") + + url = reverse(virtualevent_view,kwargs={'id':raceid}) + + return HttpResponseRedirect(url) + def virtualevent_view(request,id=0): results = [] @@ -15948,6 +15988,7 @@ def virtualevent_view(request,id=0): results = resultobj.objects.filter( race=race, workoutid__isnull=False, + coursecompleted=True, ).order_by("duration","-distance") if results: