Private
Public Access
1
0

passing races

This commit is contained in:
Sander Roosendaal
2019-02-12 21:53:15 +01:00
parent 2dabe32db0
commit 5e98c5aa0f
5 changed files with 341 additions and 23 deletions

View File

@@ -740,7 +740,7 @@ def race_rower_status(r,race):
else:
resultobj = IndoorVirtualRaceResult
vs = IndoorVirtualRaceResult.objects.filter(userid=r.id,race=race)
vs = resultobj.objects.filter(userid=r.id,race=race)
if vs:
has_registered = True
is_complete = vs[0].coursecompleted
@@ -825,10 +825,10 @@ def race_can_adddiscipline(r,race):
userid=r.id,
race=race)
if not records:
return False
start_time = race.start_time
start_date = race.startdate
startdatetime = datetime.combine(start_date,start_time)
@@ -838,7 +838,6 @@ def race_can_adddiscipline(r,race):
evaluation_closure = race.evaluation_closure
if timezone.now() < evaluation_closure:
is_complete,has_registered = race_rower_status(r,race)
if has_registered:
@@ -1120,6 +1119,7 @@ def add_workout_indoorrace(ws,race,r,recordid=0):
id=recordid
)
records = IndoorVirtualRaceResult.objects.filter(
userid=r.id,
race=race,

View File

@@ -119,7 +119,7 @@ class VirtualEventViewTest(TestCase):
)
# register Piet for submitergrace
record = IndoorVirtualRaceResult.objects.create(
self.pietrecord = IndoorVirtualRaceResult.objects.create(
userid = self.rpiet.id,
teamname = faker.word(),
race = self.submitergrace,
@@ -127,17 +127,18 @@ class VirtualEventViewTest(TestCase):
f = self.upiet.first_name,
l = self.upiet.last_name
),
weightcategory='hwt',
adaptiveclass='None',
duration=datetime.time(0,0),
boatclass='rower',
coursecompleted=False,
weightcategory='hwt',
adaptiveclass='None',
duration=datetime.time(0,0),
boatclass='rower',
coursecompleted=False,
sex='male'
)
result = plannedsessions.add_rower_race(self.rpiet,self.submitergrace)
# register Henk for submitergrace
record = IndoorVirtualRaceResult.objects.create(
self.henkrecord = IndoorVirtualRaceResult.objects.create(
userid = self.rhenk.id,
teamname = faker.word(),
race = self.submitergrace,
@@ -207,7 +208,7 @@ class VirtualEventViewTest(TestCase):
)
# register Piet for submitotwgrace
record = VirtualRaceResult.objects.create(
self.pietotwrecord = VirtualRaceResult.objects.create(
userid = self.rpiet.id,
teamname = faker.word(),
race = self.submitotwrace,
@@ -231,7 +232,7 @@ class VirtualEventViewTest(TestCase):
# OTW matching course
result = get_random_file(filename='rowers/tests/testdata/uherskehradiste_otw.csv')
self.wuh_otw = WorkoutFactory(user=self.r,
self.wuh_otw = WorkoutFactory(user=self.rpiet,
csvfilename=result['filename'],
starttime=result['starttime'],
startdatetime=result['startdatetime'],
@@ -340,6 +341,38 @@ class VirtualEventViewTest(TestCase):
url = reverse('virtualevents_view')
response = self.c.get(url)
self.assertEqual(response.status_code,200)
# post
form_data = {
'country':'All',
'regattatype':'upcoming'
}
form = VirtualRaceSelectForm(form_data)
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
form_data = {
'country':'All',
'regattatype':'ongoing'
}
form = VirtualRaceSelectForm(form_data)
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
form_data = {
'country':'All',
'regattatype':'previous'
}
form = VirtualRaceSelectForm(form_data)
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
# set up new OTE race
@@ -385,6 +418,51 @@ class VirtualEventViewTest(TestCase):
# set up new OTE race
def test_edit_indoorrace(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('indoorvirtualevent_edit_view',
kwargs={'id':self.openergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'startdate':self.tomorrow.strftime('%Y-%m-%d'),
'start_time':'8:00:00',
'enddate': self.nextweek.strftime('%Y-%m-%d'),
'end_time':'8:00:00',
'comment': faker.text(),
'sessionunit': 'm',
'sessionvalue': 500,
'name': faker.word(),
'registration_form':'deadline',
'registration_closure_0': self.nextweek.strftime('%Y-%m-%d'),
'registration_closure_1': self.nextweek.strftime('%H:%M:%S'),
'evaluation_closure_0': self.nextweek.strftime('%Y-%m-%d'),
'evaluation_closure_1': self.nextweek.strftime('%H:%M:%S'),
'contact_phone': '',
'contact_email': self.u.email,
'timezone': 'UTC'
}
form = IndoorVirtualRaceForm(form_data)
if not form.is_valid():
print form.errors
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data,follow=True)
self.assertRedirects(response,
expected_url = reverse('virtualevent_view',
kwargs={'id':self.openergrace.id}),
status_code=302,target_status_code=200)
# set up new otw race
# set up new OTE race
@@ -425,6 +503,44 @@ class VirtualEventViewTest(TestCase):
expected_url = reverse('virtualevents_view'),
status_code=302,target_status_code=200)
def test_edit_race(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('virtualevent_edit_view',kwargs={'id':self.openotwrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'startdate':self.tomorrow.strftime('%Y-%m-%d'),
'start_time':'8:00:00',
'enddate': self.nextweek.strftime('%Y-%m-%d'),
'end_time':'8:00:00',
'comment': faker.text(),
'course': str(self.course.id),
'name': faker.word(),
'registration_form':'deadline',
'registration_closure_0': self.nextweek.strftime('%Y-%m-%d'),
'registration_closure_1': self.nextweek.strftime('%H:%M:%S'),
'evaluation_closure_0': self.nextweek.strftime('%Y-%m-%d'),
'evaluation_closure_1': self.nextweek.strftime('%H:%M:%S'),
'contact_phone': '',
'contact_email': self.u.email,
}
form = VirtualRaceForm(form_data)
if not form.is_valid():
print form.errors
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data,follow=True)
self.assertRedirects(response,
expected_url = reverse('virtualevent_view',
kwargs={'id':self.openotwrace.id}),
status_code=302,target_status_code=200)
# view
def test_race_view(self):
login = self.c.login(username=self.u.username, password=self.password)
@@ -450,12 +566,15 @@ class VirtualEventViewTest(TestCase):
# register # withdraw
def register_race_view(self):
def test_register_race_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('indoorvirtualevent_register_view',kwargs={'id':self.openergrace.id})
url = reverse('indoorvirtualevent_register_view',
kwargs={'id':self.openergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'teamname': faker.word(),
@@ -484,6 +603,7 @@ class VirtualEventViewTest(TestCase):
url = reverse('indoorvirtualevent_register_view',kwargs={'id':self.openergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'teamname': faker.word(),
@@ -506,6 +626,12 @@ class VirtualEventViewTest(TestCase):
expected_url=expected_url,
status_code=302,target_status_code=200)
url = reverse('indoorvirtualevent_toggle_email_view',
kwargs={'id':self.openergrace.id})
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
url = reverse('virtualevent_withdraw_view',kwargs={'id':self.openergrace.id})
response = self.c.get(url,follow=True)
@@ -515,14 +641,205 @@ class VirtualEventViewTest(TestCase):
expected_url=expected_url,
status_code=302,target_status_code=200)
# add boat (OTW)
def test_register_otwrace_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('virtualevent_register_view',
kwargs={'id':self.openotwrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'teamname': faker.word(),
'weightcategory': 'hwt',
'adaptiveclass': 'None',
'age': 46,
'boatclass':'water',
'boattype':'1x'
}
form = VirtualRaceResultForm(form_data)
if not form.is_valid():
print form.errors
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data,follow=True)
expected_url = reverse('virtualevent_view',kwargs={'id':self.openotwrace.id})
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
url = reverse('virtualevent_addboat_view',
kwargs = {'id':self.openotwrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'teamname': faker.word(),
'weightcategory': 'hwt',
'adaptiveclass': 'None',
'age': 46,
'boatclass':'water',
'boattype':'2x'
}
form = VirtualRaceResultForm(form_data)
if not form.is_valid():
print form.errors
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data,follow=True)
expected_url = reverse('virtualevent_view',kwargs={'id':self.openotwrace.id})
self.assertRedirects(response,
expected_url=expected_url,
status_code=302,target_status_code=200)
url = reverse('virtualevent_toggle_email_view',
kwargs={'id':self.openotwrace.id})
response = self.c.get(url,follow=True)
self.assertEqual(response.status_code,200)
# submit result (OTE)
def test_ote_submit(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitergrace.id,
'workoutid':self.wduzend_rpiet.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'workouts':[self.wduzend_rpiet.id],
'record': self.pietrecord.id
}
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
therecord = IndoorVirtualRaceResult.objects.get(userid=self.rpiet.id,
race=self.submitergrace,
id=self.pietrecord.id)
self.assertTrue(therecord.coursecompleted)
url = reverse('virtualevent_ranking_view',
kwargs={'id':self.submitergrace.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
# submit result (OTE)
def test_ote_submitfalse(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitergrace.id,
'workoutid':self.wother_rpiet.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'workouts':[self.wother_rpiet.id],
'record': self.pietrecord.id
}
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
therecord = IndoorVirtualRaceResult.objects.get(userid=self.rpiet.id,
race=self.submitergrace,
id=self.pietrecord.id)
self.assertTrue(not therecord.coursecompleted)
# submit result (OTW)
def test_otw_submit(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
url = reverse('virtualevent_submit_result_view',
kwargs={'id':self.submitotwrace.id,
'workoutid':self.wuh_otw.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'workouts':[self.wuh_otw.id],
'record': self.pietotwrecord.id
}
response = self.c.post(url,form_data,follow=True)
self.assertEqual(response.status_code,200)
# course view
# submit result (OTW)
def test_otw_courses(self):
login = self.c.login(username=self.upiet.username, password=self.passwordpiet)
self.assertTrue(login)
url = reverse('courses_view')
response = self.c.get(url)
self.assertEqual(response.status_code,200)
url = reverse('course_map_view',kwargs={'id':self.course.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
url = reverse('course_view',kwargs={'id':self.course.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
def test_otw_courses_edit(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('course_edit_view',kwargs={'id':self.course.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
form_data = {
'name': faker.word(),
'country': 'Czechia',
'notes': faker.text(),
}
form = GeoCourseEditForm(form_data)
self.assertTrue(form.is_valid())
response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200)
url = reverse('course_map_view',kwargs={'id':self.course.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
# disqualify
# standalone
# calculate course adherence

Binary file not shown.

View File

@@ -627,10 +627,12 @@ urlpatterns = [
url(r'^courses/(?P<id>\d+)/edit/$',views.course_edit_view,
name='course_edit_view'),
url(r'^courses/(?P<id>\d+)/delete/$',views.course_delete_view),
url(r'^courses/(?P<id>\d+)/downloadkml/$',views.course_kmldownload_view),
url(r'^courses/(?P<id>\d+)/replace/$',views.course_replace_view),
url(r'^courses/(?P<id>\d+)/$',views.course_view),
url(r'^courses/(?P<id>\d+)/map/$',views.course_map_view),
url(r'^courses/(?P<id>\d+)/downloadkml/$',views.course_kmldownload_view,
name='course_kmldownload_view'),
url(r'^courses/(?P<id>\d+)/replace/$',views.course_replace_view,
name='course_replace_view'),
url(r'^courses/(?P<id>\d+)/$',views.course_view,name='course_view'),
url(r'^courses/(?P<id>\d+)/map/$',views.course_map_view,name='course_map_view'),
# URLS to be created
url(r'^help/$',TemplateView.as_view(template_name='help.html'), name='help'),

View File

@@ -1232,7 +1232,7 @@ def virtualevent_addboat_view(request,id=0):
'name': race.name
},
{
'url': reverse(virtualevent_addboat_view,
'url': reverse('virtualevent_addboat_view',
kwargs = {'id':race.id}
),
'name': 'Add Discipline'
@@ -1441,7 +1441,7 @@ def virtualevent_toggle_email_view(request,id=0):
record.save()
url = reverse('virtualevent_view',
kwargs={'id':record.race.id})
kwargs={'id':race.id})
return HttpResponseRedirect(url)
@@ -1463,7 +1463,7 @@ def indoorvirtualevent_toggle_email_view(request,id=0):
record.save()
url = reverse('virtualevent_view',
kwargs={'id':record.race.id})
kwargs={'id':race.id})
return HttpResponseRedirect(url)
@@ -2194,7 +2194,6 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
workouts = Workout.objects.filter(id=selectedworkout)
if race.sessiontype == 'race':
result,comments,errors,jobid = add_workout_race(
workouts,race,r,