Private
Public Access
1
0

improved courses kml download

This commit is contained in:
Sander Roosendaal
2019-02-12 10:17:37 +01:00
parent 867070188c
commit f94dcec851
4 changed files with 179 additions and 0 deletions

View File

@@ -33,6 +33,11 @@ from rowers.utils import geo_distance
ns = {'opengis': 'http://www.opengis.net/kml/2.2'}
xmlns_uris_dict = {'gx': 'http://www.google.com/kml/ext/2.2',
'kml': 'http://www.google.com/kml/ext/2.2',
'atom': "http://www.w3.org/2005/Atom",
'': "http://www.opengis.net/kml/2.2"}
from rowers.models import (
Rower, Workout,
@@ -91,11 +96,18 @@ def get_polygons(polygonpms):
'points':points
})
return polygons
def coursetokml(course):
top = Element('kml')
for prefix, uri in xmlns_uris_dict.items():
if prefix != '':
top.attrib['xmlns:' + prefix] = uri
else:
top.attrib['xmlns'] = uri
document = SubElement(top,'Document')
name = SubElement(document, 'name')
name.text = 'Courses.kml'

View File

@@ -1,3 +1,169 @@
#from __future__ import print_function
from statements import *
nu = datetime.datetime.now()
@override_settings(TESTING=True)
class VirtualEventViewTest(TestCase):
def setUp(self):
# Main User
self.u = UserFactory()
self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='coach')
self.c = Client
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
self.factory = RequestFactory()
self.password = faker.word()
self.u.set_password(self.password)
self.u.save()
# Piet
self.upiet = UserFactory()
self.rpiet = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.piet_workouts = WorkoutFactory.create_batch(5, user=self.rpiet)
self.passwordpiet = faker.word()
self.upiet.set_password(self.passwordpiet)
self.upiet.save()
# Klaas
self.uklaas = UserFactory()
self.rklaas = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.klaas_workouts = WorkoutFactory.create_batch(5, user=self.rklaas)
self.passwordklaas = faker.word()
self.uklaas.set_password(self.passwordklaas)
self.uklaas.save()
# Henk
self.uhenk = UserFactory()
self.rhenk = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.henk_workouts = WorkoutFactory.create_batch(5, user=self.rhenk)
self.passwordhenk = faker.word()
self.uhenk.set_password(self.passwordhenk)
self.uhenk.save()
# a few handy dates
yesterday = nu-datetime.timedelta(days=1)
tomorrow = nu+datetime.timedelta(days=1)
nextweek = nu+datetime.timedelta(days=7)
lastweek = nu-datetime.timedelta(days=7)
# erg races
self.openergrace = VirtualRace.objects.create(
name = faker.word(),
startdate = tomorrow.date(),
endddate = nextweek.date(),
start_time = nu.time(),
end_time = nu.time(),
preferreddate = tomorrow.date(),
comment = faker.text(),
sessiontype = 'indoorrace',
sessionunit = 'm',
sessionmode = 'distance',
sessionvalue = 1000,
course = None,
timezone = 'UTC',
evaluation_closure = nextweek,
registration_closure = tomorrow,
country = 'Indoor',
manager = self.u
)
self.submitergrace = VirtualRace.objects.create(
name = faker.word(),
startdate = yesterday.date(),
endddate = nextweek.date(),
start_time = nu.time(),
end_time = nu.time(),
preferreddate = tomorrow.date(),
comment = faker.text(),
sessiontype = 'indoorrace',
sessionunit = 'm',
sessionmode = 'distance',
sessionvalue = 1000,
course = None,
timezone = 'UTC',
evaluation_closure = nextweek,
registration_closure = tomorrow,
country = 'Indoor',
manager = self.u
)
# register Piet for submitergrace
record = IndoorVirtualRaceResult.create(
userid = self.rpiet.id,
teamname = faker.word(),
race = self.submitergrace,
username = u'{f} {l}'.format(
f = self.upiet.first_name,
l = self.upiet.last_name
),
weightcategory='hwt',
adaptiveclass=None,
duration=datetime.time(0,0),
boatclass='rower',
coursecompleted=False,
)
result = add_rower_race(self.rpiet,self.submitergrace)
# register Henk for submitergrace
record = IndoorVirtualRaceResult.create(
userid = self.rhenk.id,
teamname = faker.word(),
race = self.submitergrace,
username = u'{f} {l}'.format(
f = self.uhenk.first_name,
l = self.uhenk.last_name
),
weightcategory='hwt',
adaptiveclass=None,
duration=datetime.time(0,0),
boatclass='rower',
coursecompleted=False,
)
result = add_rower_race(self.rhenk,self.submitergrace)
# otw races
# course
# race,with entrants, open for submission
workouts
OTW matching course
OTW not matching course
OTE 1k
OTE different
Scenarios
races page
set up new OTE race
set up new otw race
register
withdraw
add boat (OTW)
submit result (OTE)
submit result (OTW)
standalone
calculate course adherence
other background jobs

Binary file not shown.

View File

@@ -437,6 +437,7 @@ def course_upload_view(request):
cs = courses.kmltocourse(path_and_filename)
for course in cs:
cname = name+' - '+course['name']
cnotes = notes+'\n\n'+course['description']