diff --git a/rowers/tests/test_races.py b/rowers/tests/test_races.py
index 0a70402c..2f1a3114 100644
--- a/rowers/tests/test_races.py
+++ b/rowers/tests/test_races.py
@@ -188,6 +188,7 @@ class ChallengesTest(TestCase):
Alphen = GeoCourse.objects.get(id=2)
+ # edit
# edit
url = reverse('course_edit_view',kwargs={'id':Alphen.id})
response = self.c.get(url)
@@ -211,7 +212,48 @@ class ChallengesTest(TestCase):
self.assertEqual(response.status_code,200)
- # (ToDO Upload new kml)
+ # Upload new kml
+ url = reverse('course_upload_replace_view',kwargs={'id':self.ThyroBaantje.id})
+ response = self.c.get(url)
+ self.assertEqual(response.status_code,200)
+
+ filename = 'rowers/tests/testdata/thyro2.kml'
+ f = open(filename,'r')
+
+ file_data = {'file': f}
+ form_data = {
+ 'name':'Thyro modified',
+ 'notes': 'aa',
+ 'country': 'Netherlands',
+ 'file':f,
+ }
+
+ form = CourseForm(form_data,file_data)
+ response = self.c.post(url,form_data,follow=True)
+ f.close()
+
+ expected_url = reverse('course_update_confirm',kwargs={'id':self.ThyroBaantje.id,'newid':3})
+
+ self.assertRedirects(response, expected_url=expected_url,
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
+ url = expected_url
+ response = self.c.get(url)
+ self.assertEqual(response.status_code,200)
+
+ form_data = {
+ 'doupdate': True,
+ }
+
+ response = self.c.post(url,form_data,follow=True)
+ expected_url = reverse('course_view',kwargs={'id':3})
+ self.assertRedirects(response, expected_url=expected_url,
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
# KML Download
url = reverse('course_kmldownload_view',kwargs={'id':Alphen.id})
@@ -396,6 +438,53 @@ class ChallengesTest(TestCase):
record = records[0]
+ # ranking
+ url = reverse('virtualevent_ranking_view',kwargs={'id':race.id})
+ response = self.c.get(url)
+ self.assertEqual(response.status_code,200)
+
+ # add boat
+ url = reverse('virtualevent_addboat_view',kwargs={'id':race.id})
+ response = self.c.get(url)
+ self.assertEqual(response.status_code,200)
+
+ categories = CourseStandard.objects.filter(standardcollection=race.coursestandards).order_by("name")
+ thecategory = categories.filter(
+ agemin=initialcategory.agemin,
+ agemax=initialcategory.agemax,
+ boatclass='water',
+ boattype='2x',
+ sex=initialcategory.sex,
+ weightclass=initialcategory.weightclass,
+ adaptiveclass=initialcategory.adaptiveclass,
+ skillclass=initialcategory.skillclass
+ )
+
+ self.assertTrue(len(thecategory),1)
+ thecategory = thecategory[0]
+
+ form_data = {
+ 'teamname': 'ApeTeam',
+ 'boattype': boattype,
+ 'boatclass': boatclass,
+ 'weightcategory': weightclass,
+ 'adaptiveclass': adaptiveclass,
+ 'age': age,
+ 'mix': False,
+ 'acceptsocialmedia': True,
+ 'entrycategory':thecategory.id,
+ }
+ form = VirtualRaceResultForm(form_data,categories=categories)
+ self.assertTrue(form.is_valid())
+
+
+ response = self.c.post(url,form_data,follow=True)
+ expected_url = reverse('virtualevent_view',kwargs={'id':race.id})
+ self.assertRedirects(response, expected_url=expected_url,
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
# withdraw
url = reverse('virtualevent_withdrawresult_view',kwargs={'id':race.id,'recordid':record.id})
response = self.c.get(url)
@@ -437,7 +526,7 @@ class ChallengesTest(TestCase):
self.assertEqual(response.status_code, 200)
records = VirtualRaceResult.objects.filter(userid=self.u.id)
- self.assertEqual(len(records),1)
+ self.assertEqual(len(records),2)
record = records[0]
@@ -453,7 +542,7 @@ class ChallengesTest(TestCase):
self.assertEqual(response.status_code, 200)
records = VirtualRaceResult.objects.filter(userid=self.u.id)
- self.assertEqual(len(records),1)
+ self.assertEqual(len(records),2)
record = records[0]
@@ -474,7 +563,7 @@ class ChallengesTest(TestCase):
self.assertEqual(response.status_code, 200)
records = VirtualRaceResult.objects.filter(userid=self.u.id)
- self.assertEqual(len(records),1)
+ self.assertEqual(len(records),2)
record = records[0]
record.workoutid = self.wthyro.id
diff --git a/rowers/tests/testdata/thyro2.kml b/rowers/tests/testdata/thyro2.kml
new file mode 100644
index 00000000..e5486083
--- /dev/null
+++ b/rowers/tests/testdata/thyro2.kml
@@ -0,0 +1,35 @@
+
+
+
+ Courses.kml
+
+ Courses
+
+ - Thyro Oefenbaantje
+ 1
+
+ Start
+
+ 1
+
+
+ 6.848,52.22397960128134,0 6.847604734558461,52.22366336501974,0 6.84775082703156,52.22348501076475,0 6.848327567214691,52.22382735084554,0 6.848141106797385,52.22397960128134,0 6.848141106797385,52.22397960128134,0 6.848141106797385,52.22397960128134,0
+
+
+
+
+
+ Finish
+
+ 1
+
+
+ 6.845667068529353,52.22505473275959,0 6.846124505574835,52.2253406573624,0 6.845843953045947,52.22551933313507,0 6.845303793589403,52.22520820682232,0 6.845667068529353,52.22505473275959,0 6.845667068529353,52.22505473275959,0 6.845667068529353,52.22505473275959,0
+
+
+
+
+
+
+
+
diff --git a/rowers/urls.py b/rowers/urls.py
index 59ec7855..3314730a 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -876,8 +876,8 @@ urlpatterns = [
re_path(r'^courses/(?P\d+)/delete/$',views.course_delete_view,name='course_delete_view'),
re_path(r'^courses/(?P\d+)/downloadkml/$',views.course_kmldownload_view,
name='course_kmldownload_view'),
- re_path(r'^courses/(?P\d+)/replace/$',views.course_replace_view,
- name='course_replace_view'),
+# re_path(r'^courses/(?P\d+)/replace/$',views.course_replace_view,
+# name='course_replace_view'),
re_path(r'^courses/(?P\d+)/$',views.course_view,name='course_view'),
re_path(r'^standards/(?P\d+)/$',views.standard_view,name='standard_view'),
re_path(r'^standards/(?P\d+)/download/$',views.standards_download_view,
diff --git a/rowers/views/racesviews.py b/rowers/views/racesviews.py
index 001cb1b9..5f3c089b 100644
--- a/rowers/views/racesviews.py
+++ b/rowers/views/racesviews.py
@@ -204,62 +204,6 @@ def course_map_view(request,id=0):
})
-@login_required()
-@permission_required('course.change_course',fn=get_course_by_pk,raise_exception=True)
-def course_replace_view(request,id=0):
- course = get_object_or_404(GeoCourse,pk=id)
-
- r = getrower(request.user)
-
- #thecourses = GeoCourse.objects.filter(manager=r).exclude(id=id)
-
- if request.method == 'POST':
- form = CourseSelectForm(request.POST)
- if form.is_valid():
- course2 = form.cleaned_data['course']
- res = courses.replacecourse(course,course2)
-
- url = reverse(course_view,
- kwargs = {
- 'id':course2.id
- })
-
- return HttpResponseRedirect(url)
- else:
-
- form = CourseSelectForm(course=course,manager=r)
- #form.fields["course"].queryset = thecourses
-
- script,div = course_map(course)
-
- breadcrumbs = [
- {
- 'url': reverse('virtualevents_view'),
- 'name': 'Challenges'
- },
- {
- 'url': reverse(courses_view),
- 'name': 'Courses'
- },
- {
- 'url': reverse(course_view,kwargs={'id':course.id}),
- 'name': course.name
- },
- {
- 'url': reverse(course_replace_view,kwargs={'id':course.id}),
- 'name': 'Replace Markers'
- }
- ]
-
- return render(request,
- 'course_replace.html',
- {'course':course,
- 'active':'nav-racing',
- 'breadcrumbs':breadcrumbs,
- 'rower':r,
- 'mapdiv':div,
- 'mapscript':script,
- 'form':form})
@login_required()
@permission_required('course.delete_course',fn=get_course_by_pk,raise_exception=True)
@@ -674,7 +618,7 @@ def course_update_confirm(request,id=0,newid=0):
'name': course.name
},
{
- 'url': reverse(course_replace_view,kwargs={'id':course.id}),
+ 'url': reverse(course_upload_replace_view,kwargs={'id':course.id}),
'name': 'Replace Markers'
}
]