From d20272d05118eaf1b2c5329b0823692293b9a549 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 31 May 2020 21:57:12 +0200 Subject: [PATCH 1/5] tasks.py --- rowers/plannedsessions.py | 2 +- rowers/tasks.py | 36 ++++++++++------------ rowers/templates/virtualeventregister.html | 2 -- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 3b81566f..a509c617 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -1552,7 +1552,7 @@ def add_workout_race(ws,race,r,splitsecond=0,recordid=0): job = myqueue(queue,handle_check_race_course,ws[0].csvfilename, ws[0].id,race.course.id,record.id,splitsecond=splitsecond, -# referencespeed=record.referencespeed,coursedistance=race.course.distance + referencespeed=record.referencespeed,coursedistance=race.course.distance ) diff --git a/rowers/tasks.py b/rowers/tasks.py index 93f77b4d..f2408632 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -353,15 +353,15 @@ def handle_check_race_course(self, else: splitsecond = 0 -# if 'referencespeed' in kwargs: -# referencespeed = kwargs['referencespeed'] -# else: -# referencespeed = 5.0 + if 'referencespeed' in kwargs: + referencespeed = kwargs['referencespeed'] + else: + referencespeed = 5.0 -# if 'coursedistance' in kwargs: -# coursedistance = kwargs['coursedistance'] -# else: -# coursedistance = 0 + if 'coursedistance' in kwargs: + coursedistance = kwargs['coursedistance'] + else: + coursedistance = 0 mode = 'race' if 'mode' in kwargs: @@ -489,30 +489,28 @@ def handle_check_race_course(self, else: coursecompleted = False -# points = 0 + points = 0 if coursecompleted: -# if coursedistance == 0: -# coursedistance = coursemeters -# velo = coursedistance/coursetimeseconds -# points = int(100*(2.-referencespeed/velo)) -# query = 'UPDATE rowers_virtualraceresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond}, points={points} WHERE id={recordid}'.format( - query = 'UPDATE rowers_virtualraceresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond} WHERE id={recordid}'.format( + if coursedistance == 0: + coursedistance = coursemeters + velo = coursedistance/coursetimeseconds + points = int(100*(2.-referencespeed/velo)) + query = 'UPDATE rowers_virtualraceresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond}, points={points} WHERE id={recordid}'.format( recordid=recordid, duration=totaltime_sec_to_string(coursetimeseconds), distance=int(coursemeters), -# points=points, + points=points, workoutid=workoutid, startsecond=startsecond, endsecond=endsecond, ) if mode == 'coursetest': -# query = 'UPDATE rowers_coursetestresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond}, points={points} WHERE id={recordid}'.format( - query = 'UPDATE rowers_coursetestresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond} WHERE id={recordid}'.format( + query = 'UPDATE rowers_coursetestresult SET coursecompleted = 1, duration = "{duration}", distance = {distance}, workoutid = {workoutid}, startsecond = {startsecond}, endsecond = {endsecond}, points={points} WHERE id={recordid}'.format( recordid=recordid, duration=totaltime_sec_to_string(coursetimeseconds), distance=int(coursemeters), -# points=points, + points=points, workoutid=workoutid, startsecond=startsecond, endsecond=endsecond, diff --git a/rowers/templates/virtualeventregister.html b/rowers/templates/virtualeventregister.html index ec01f4b3..6a925ac7 100644 --- a/rowers/templates/virtualeventregister.html +++ b/rowers/templates/virtualeventregister.html @@ -35,7 +35,6 @@ as a Male crew. Check the "Mixed gender" check box to register as a mixed gender crew (except for 1x where this check box does nothing).

- {% comment %} {% if race.coursestandards %}

This race uses standard times and limits the race groups to those where standard times exist. The "Group" form choice will overrule other selections you @@ -46,7 +45,6 @@ You can check the valid race groups and standard times here.

{% endif %} - {% endcomment %}
{{ form.as_table }} From 85f3dd4858b8c2e48589ed72154a5760fa339265 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 1 Jun 2020 08:02:27 +0200 Subject: [PATCH 2/5] tp bug fix --- rowers/tpstuff.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rowers/tpstuff.py b/rowers/tpstuff.py index 010e9f59..400db864 100644 --- a/rowers/tpstuff.py +++ b/rowers/tpstuff.py @@ -67,8 +67,13 @@ def get_token(code): 'Content-Type': 'application/x-www-form-urlencoded', } - response = requests.post("https://oauth.trainingpeaks.com/oauth/token", - data=post_data) + try: + response = requests.post( + "https://oauth.trainingpeaks.com/oauth/token", + data=post_data + ) + except: + return 0,0,0 try: From 0fe25f7cc59ff9f715b02dd75d331f3291d6a8d3 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 1 Jun 2020 08:30:18 +0200 Subject: [PATCH 3/5] racesviews --- rowers/tpstuff.py | 12 +- rowers/views/racesviews.py | 254 ++++++++++++++++++------------------- 2 files changed, 133 insertions(+), 133 deletions(-) diff --git a/rowers/tpstuff.py b/rowers/tpstuff.py index 400db864..fc74ac9e 100644 --- a/rowers/tpstuff.py +++ b/rowers/tpstuff.py @@ -67,13 +67,13 @@ def get_token(code): 'Content-Type': 'application/x-www-form-urlencoded', } - try: - response = requests.post( - "https://oauth.trainingpeaks.com/oauth/token", + try: + response = requests.post( + "https://oauth.trainingpeaks.com/oauth/token", data=post_data - ) - except: - return 0,0,0 + ) + except: + return 0,0,0 try: diff --git a/rowers/views/racesviews.py b/rowers/views/racesviews.py index 8d4a69cd..ed1c53db 100644 --- a/rowers/views/racesviews.py +++ b/rowers/views/racesviews.py @@ -1127,10 +1127,10 @@ def virtualevent_view(request,id=0): except KeyError: adaptiveclass = ['None','PR1','PR2','PR3','FES'] -# try: -# entrycategory = cd['entrycategory'] -# except KeyError: -# entrycategory = None + try: + entrycategory = cd['entrycategory'] + except KeyError: + entrycategory = None if race.sessiontype == 'race': results = resultobj.objects.filter( @@ -1156,8 +1156,8 @@ def virtualevent_view(request,id=0): age__lte=age_max, ).order_by("duration","-distance") -# if entrycategory is not None: -# results = results.filter(entrycategory__in=entrycategory) + if entrycategory is not None: + results = results.filter(entrycategory__in=entrycategory) # to-do - add DNS dns = [] @@ -1479,10 +1479,10 @@ def virtualevent_addboat_view(request,id=0): except VirtualRace.DoesNotExist: raise Http404("Virtual Challenge does not exist") -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") if not race_can_adddiscipline(r,race): @@ -1508,7 +1508,7 @@ def virtualevent_addboat_view(request,id=0): # we're still here if request.method == 'POST': # process form - form = VirtualRaceResultForm(request.POST) #,categories=categories) + form = VirtualRaceResultForm(request.POST,categories=categories) if form.is_valid(): cd = form.cleaned_data teamname = cd['teamname'] @@ -1530,7 +1530,7 @@ def virtualevent_addboat_view(request,id=0): if sex == 'not specified': sex = 'male' - if boattype in boattypes and boatclass in boatclasses: # and race.coursestandards is None: + if boattype in boattypes and boatclass in boatclasses and race.coursestandards is None: # check if different sexes therecords = records.filter( boattype=boattype, @@ -1551,47 +1551,47 @@ def virtualevent_addboat_view(request,id=0): return HttpResponseRedirect(url) -# coursestandard = None -# referencespeed = 5.0 + coursestandard = None + referencespeed = 5.0 -# if race.coursestandards is not None: -# coursestandard = cd['entrycategory'] -# thegroups = [record.entrycategory for record in records] -# if coursestandard in thegroups: -# messages.error(request,"You have already registered in that group") -# url = reverse('virtualevent_view', -# kwargs = { -# 'id': race.id -# } -# ) + if race.coursestandards is not None: + coursestandard = cd['entrycategory'] + thegroups = [record.entrycategory for record in records] + if coursestandard in thegroups: + messages.error(request,"You have already registered in that group") + url = reverse('virtualevent_view', + kwargs = { + 'id': race.id + } + ) -# return HttpResponseRedirect(url) + return HttpResponseRedirect(url) -# referencespeed = coursestandard.referencespeed -# boattype = coursestandard.boattype -# boatclass = coursestandard.boatclass -# weightcategory = coursestandard.weightclass -# adaptiveclass = coursestandard.adaptiveclass -# skillclass = coursestandard.skillclass + referencespeed = coursestandard.referencespeed + boattype = coursestandard.boattype + boatclass = coursestandard.boatclass + weightcategory = coursestandard.weightclass + adaptiveclass = coursestandard.adaptiveclass + skillclass = coursestandard.skillclass -# returnurl = reverse(virtualevent_register_view, -# kwargs={'id':race.id}) + returnurl = reverse(virtualevent_register_view, + kwargs={'id':race.id}) -# if age < coursestandard.agemin: -# messages.error(request,'You are younger than the minimum age for this group') -# return HttpResponseRedirect(returnurl) + if age < coursestandard.agemin: + messages.error(request,'You are younger than the minimum age for this group') + return HttpResponseRedirect(returnurl) -# if age > coursestandard.agemax: -# messages.error(request,'You are older than the maximum age for this group') -# return HttpResponseRedirect(returnurl) + if age > coursestandard.agemax: + messages.error(request,'You are older than the maximum age for this group') + return HttpResponseRedirect(returnurl) -# if sex == 'male' and coursestandard.sex != 'male': -# messages.error(request,'Men are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'male' and coursestandard.sex != 'male': + messages.error(request,'Men are not allowed to enter this category') + return HttpResponseRedirect(returnurl) -# if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: -# messages.error(request,'Mixed crews are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: + messages.error(request,'Mixed crews are not allowed to enter this category') + return HttpResponseRedirect(returnurl) record = VirtualRaceResult( @@ -1608,8 +1608,8 @@ def virtualevent_addboat_view(request,id=0): boattype=boattype, boatclass=boatclass, coursecompleted=False, -# referencespeed=referencespeed, -# entrycategory=coursestandard, + referencespeed=referencespeed, + entrycategory=coursestandard, sex=sex, age=age, ) @@ -1639,13 +1639,13 @@ def virtualevent_addboat_view(request,id=0): 'adaptiveclass': r.adaptiveclass, } -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") - form = VirtualRaceResultForm(initial=initial) #,categories=categories) + form = VirtualRaceResultForm(initial=initial,categories=categories) breadcrumbs = [ { @@ -1706,10 +1706,10 @@ def virtualevent_register_view(request,id=0): except VirtualRace.DoesNotExist: raise Http404("Virtual Challenge does not exist") -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") if not race_can_register(r,race): messages.error(request,"You cannot register for this race") @@ -1724,7 +1724,7 @@ def virtualevent_register_view(request,id=0): # we're still here if request.method == 'POST': # process form - form = VirtualRaceResultForm(request.POST) #,categories=categories) + form = VirtualRaceResultForm(request.POST,categories=categories) if form.is_valid(): cd = form.cleaned_data teamname = cd['teamname'] @@ -1747,36 +1747,36 @@ def virtualevent_register_view(request,id=0): sex = 'male' -# coursestandard = None -# referencespeed = 5.0 + coursestandard = None + referencespeed = 5.0 -# if race.coursestandards is not None: -# coursestandard = cd['entrycategory'] -# referencespeed = coursestandard.referencespeed -# boattype = coursestandard.boattype -# boatclass = coursestandard.boatclass -# weightcategory = coursestandard.weightclass -# adaptiveclass = coursestandard.adaptiveclass -# skillclass = coursestandard.skillclass + if race.coursestandards is not None: + coursestandard = cd['entrycategory'] + referencespeed = coursestandard.referencespeed + boattype = coursestandard.boattype + boatclass = coursestandard.boatclass + weightcategory = coursestandard.weightclass + adaptiveclass = coursestandard.adaptiveclass + skillclass = coursestandard.skillclass -# returnurl = reverse(virtualevent_register_view, -# kwargs={'id':race.id}) + returnurl = reverse(virtualevent_register_view, + kwargs={'id':race.id}) -# if age < coursestandard.agemin: -# messages.error(request,'You are younger than the minimum age for this group') -# return HttpResponseRedirect(returnurl) + if age < coursestandard.agemin: + messages.error(request,'You are younger than the minimum age for this group') + return HttpResponseRedirect(returnurl) -# if age > coursestandard.agemax: -# messages.error(request,'You are older than the maximum age for this group') -# return HttpResponseRedirect(returnurl) + if age > coursestandard.agemax: + messages.error(request,'You are older than the maximum age for this group') + return HttpResponseRedirect(returnurl) -# if sex == 'male' and coursestandard.sex != 'male': -# messages.error(request,'Men are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'male' and coursestandard.sex != 'male': + messages.error(request,'Men are not allowed to enter this category') + return HttpResponseRedirect(returnurl) -# if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: -# messages.error(request,'Mixed crews are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: + messages.error(request,'Mixed crews are not allowed to enter this category') + return HttpResponseRedirect(returnurl) @@ -1796,8 +1796,8 @@ def virtualevent_register_view(request,id=0): coursecompleted=False, sex=sex, age=age, -# entrycategory=coursestandard, -# referencespeed=referencespeed, + entrycategory=coursestandard, + referencespeed=referencespeed, ) record.save() @@ -1841,12 +1841,12 @@ def virtualevent_register_view(request,id=0): 'adaptiveclass': r.adaptiveclass, } -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") - form = VirtualRaceResultForm(initial=initial) #,categories=categories) + form = VirtualRaceResultForm(initial=initial,categories=categories) breadcrumbs = [ { @@ -1948,10 +1948,10 @@ def indoorvirtualevent_register_view(request,id=0): except VirtualRace.DoesNotExist: raise Http404("Virtual Challenge does not exist") -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") if not race_can_register(r,race): messages.error(request,"You cannot register for this race") @@ -1966,7 +1966,7 @@ def indoorvirtualevent_register_view(request,id=0): # we're still here if request.method == 'POST': # process form - form = IndoorVirtualRaceResultForm(request.POST) #,categories=categories) + form = IndoorVirtualRaceResultForm(request.POST,categories=categories) if form.is_valid(): cd = form.cleaned_data teamname = cd['teamname'] @@ -1984,35 +1984,35 @@ def indoorvirtualevent_register_view(request,id=0): if sex == 'not specified': sex = 'male' -# coursestandard = None -# referencespeed = 5.0 + coursestandard = None + referencespeed = 5.0 -# if race.coursestandards is not None: -# coursestandard = cd['entrycategory'] -# referencespeed = coursestandard.referencespeed -# boatclass = coursestandard.boatclass -# weightcategory = coursestandard.weightclass -# adaptiveclass = coursestandard.adaptiveclass -# skillclass = coursestandard.skillclass + if race.coursestandards is not None: + coursestandard = cd['entrycategory'] + referencespeed = coursestandard.referencespeed + boatclass = coursestandard.boatclass + weightcategory = coursestandard.weightclass + adaptiveclass = coursestandard.adaptiveclass + skillclass = coursestandard.skillclass -# returnurl = reverse(virtualevent_register_view, -# kwargs={'id':race.id}) + returnurl = reverse(virtualevent_register_view, + kwargs={'id':race.id}) -# if age < coursestandard.agemin: -# messages.error(request,'You are younger than the minimum age for this group') -# return HttpResponseRedirect(returnurl) + if age < coursestandard.agemin: + messages.error(request,'You are younger than the minimum age for this group') + return HttpResponseRedirect(returnurl) -# if age > coursestandard.agemax: -# messages.error(request,'You are older than the maximum age for this group') -# return HttpResponseRedirect(returnurl) + if age > coursestandard.agemax: + messages.error(request,'You are older than the maximum age for this group') + return HttpResponseRedirect(returnurl) -# if sex == 'male' and coursestandard.sex != 'male': -# messages.error(request,'Men are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'male' and coursestandard.sex != 'male': + messages.error(request,'Men are not allowed to enter this category') + return HttpResponseRedirect(returnurl) -# if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: -# messages.error(request,'Mixed crews are not allowed to enter this category') -# return HttpResponseRedirect(returnurl) + if sex == 'mixed' and coursestandard.sex not in ['mixed','male']: + messages.error(request,'Mixed crews are not allowed to enter this category') + return HttpResponseRedirect(returnurl) @@ -2031,8 +2031,8 @@ def indoorvirtualevent_register_view(request,id=0): coursecompleted=False, sex=sex, age=age, -# entrycategory=coursestandard, -# referencespeed=referencespeed + entrycategory=coursestandard, + referencespeed=referencespeed ) record.save() @@ -2076,12 +2076,12 @@ def indoorvirtualevent_register_view(request,id=0): 'adaptiveclass': r.adaptiveclass, } -# categories = None -# if race.coursestandards is not None: -# categories = CourseStandard.objects.filter( -# standardcollection=race.coursestandards).order_by("name") + categories = None + if race.coursestandards is not None: + categories = CourseStandard.objects.filter( + standardcollection=race.coursestandards).order_by("name") - form = IndoorVirtualRaceResultForm(initial=initial) #,categories=categories) + form = IndoorVirtualRaceResultForm(initial=initial,categories=categories) breadcrumbs = [ { @@ -2154,7 +2154,7 @@ def indoorvirtualevent_create_view(request): evaluation_closure = cd['evaluation_closure'] contact_phone = cd['contact_phone'] contact_email = cd['contact_email'] -# coursestandards = cd['coursestandards'] + coursestandards = cd['coursestandards'] # correct times @@ -2209,7 +2209,7 @@ def indoorvirtualevent_create_view(request): sessionvalue = sessionvalue, course=None, timezone=timezone_str, -# coursestandards=coursestandards, + coursestandards=coursestandards, evaluation_closure=evaluation_closure, registration_closure=registration_closure, contact_phone=contact_phone, @@ -2296,7 +2296,7 @@ def virtualevent_create_view(request): evaluation_closure = cd['evaluation_closure'] contact_phone = cd['contact_phone'] contact_email = cd['contact_email'] -# coursestandards = cd['coursestandards'] + coursestandards = cd['coursestandards'] # correct times @@ -2348,7 +2348,7 @@ def virtualevent_create_view(request): evaluation_closure=evaluation_closure, registration_closure=registration_closure, contact_phone=contact_phone, -# coursestandards=coursestandards, + coursestandards=coursestandards, contact_email=contact_email, country = course.country, manager=request.user, From aa93b855c3c1b4e8fe1548fddb998e6889f57571 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 1 Jun 2020 08:32:31 +0200 Subject: [PATCH 4/5] race menu --- rowers/templates/menu_racing.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/rowers/templates/menu_racing.html b/rowers/templates/menu_racing.html index f6b84c59..8dd74087 100644 --- a/rowers/templates/menu_racing.html +++ b/rowers/templates/menu_racing.html @@ -133,13 +133,11 @@ {% endif %} - {% comment %}
  •  Course Time Standards
  • - {% endcomment %} {% include 'menuscript.html' %} From c201803a59e641e3c45c7793b8f64eff57c416e5 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 1 Jun 2020 08:33:56 +0200 Subject: [PATCH 5/5] scoring --- rowers/scoring.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/scoring.py b/rowers/scoring.py index afde6869..d874e053 100644 --- a/rowers/scoring.py +++ b/rowers/scoring.py @@ -1,5 +1,5 @@ from rowers.models import ( - #StandardCollection,CourseStandard, + StandardCollection,CourseStandard, VirtualRaceResult,IndoorVirtualRaceResult, )