From 17b96cd93a0ba88df2f4e07b96e4b47a502e0d21 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 13 Jun 2020 11:45:38 +0200
Subject: [PATCH 1/5] adding how-to to course
---
rowers/templates/course_form.html | 48 +++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/rowers/templates/course_form.html b/rowers/templates/course_form.html
index 5a346104..aa1bb20f 100644
--- a/rowers/templates/course_form.html
+++ b/rowers/templates/course_form.html
@@ -41,6 +41,54 @@
+
+ How-to
+
+ Courses allow you to mark the start & finish lines of your
+ test pieces and measure the time spent on the course (as opposed
+ to the total duration of a workout). This allows you to row and rank
+ marked courses.
+
+ To create a course, you use Google Earth
+ to mark the start and finish lines using polygons. The process is identical
+ to creating custom courses for the
+ CrewNerd
+ app.
+
+
+
+ CrewNerd has published a nice video tutorial of the process.
+ Click here to see the video. The part
+ we're interested in starts at 2:05.
+
+
+
+ In addition to start and finish areas, on rowsandall.com you can add additional
+ polygons to mark areas that you must pass (in that order). This allows for
+ courses with turns around buoys, respecting buoy lines, or respecting traffic
+ patterns on rivers and lakes.
+
+
+
+
+ - Open Google Earth
+ - Create a folder "Courses" under "Temporary Places" or under "My Places"
+ - Create a folder for each Course under "Courses", and for each course:
+ - Create Start polygon
+ - Optional: Create First "must row through" polygon
+ - Optional: Create subsequent "must row through" polygons
+ - Create Finish polygon
+ - Save "Courses" as KML file
+ - Upload the file to rowsandall.com using the "Add Courses" button
+
+
+
+ You are allowed to have multiple courses in one KML file.
+ Your CrewNerd "courses.kml" file works out of the box
+
+ The site doesn't test for duplicate courses.
+
+
From e11e16831742a4eace9470e48e2bf9cc2b1116ec Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 13 Jun 2020 15:05:36 +0200
Subject: [PATCH 2/5] venv38
---
.gitignore | 1 +
requirements.txt | 6 +++---
rowers/views/racesviews.py | 5 ++++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index ad18f5a8..619c3361 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,6 +55,7 @@ config.yaml
# virtualenv
/venv/
+/venv38/
/py27/
/py2/
/django2/
diff --git a/requirements.txt b/requirements.txt
index 8aba5f9a..a237c95a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -107,7 +107,7 @@ jupyterlab-server==0.3.0
keyring==18.0.0
kiwisolver==1.0.1
kombu==4.5.0
-llvmlite==0.30.0
+llvmlite==0.33.0
lxml==4.3.2
Markdown==3.0.1
MarkupSafe==1.1.1
@@ -126,7 +126,7 @@ nose==1.3.7
nose-parameterized==0.6.0
notebook==5.7.6
numba==0.46.0
-numpy==1.18.3
+numpy==1.18.5
oauth2==1.9.0.post1
oauthlib==3.0.1
openapi-codec==1.3.2
@@ -148,7 +148,7 @@ protobuf==3.11.1
psycopg2==2.8.1
ptyprocess==0.6.0
py==1.8.0
-pyarrow==0.15.0
+pyarrow==0.17.1
pycairo==1.19.0
pycparser==2.19
Pygments==2.3.1
diff --git a/rowers/views/racesviews.py b/rowers/views/racesviews.py
index 7d2e2dcf..81d1ab5e 100644
--- a/rowers/views/racesviews.py
+++ b/rowers/views/racesviews.py
@@ -1209,7 +1209,10 @@ def virtualevent_view(request,id=0):
orderby = request.GET.get('order_by')
if orderby is not None:
- results = results.order_by(orderby)
+ try:
+ results = results.order_by(orderby)
+ except AttributeError:
+ pass
racelogos = race.logos.all()
From 0d031833145eb7e231558b0e2289fc4a67f5c789 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 20 Jun 2020 09:06:33 +0200
Subject: [PATCH 3/5] bug fix savgol filter
---
rowers/interactiveplots.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py
index be7360b5..6ad25d6a 100644
--- a/rowers/interactiveplots.py
+++ b/rowers/interactiveplots.py
@@ -5481,8 +5481,11 @@ def interactive_multiple_compare_chart(ids,xparam,yparam,plottype='line',
else:
windowsize = 1
- if windowsize >= 3 and windowsize < len(group['y']):
- group['y'] = savgol_filter(group['y'],windowsize,3)
+ if windowsize > 3 and windowsize < len(group['y']):
+ try:
+ group['y'] = savgol_filter(group['y'],windowsize,3)
+ except ValueError:
+ pass
ylabel = Label(x=100,y=60+nrworkouts*20-20*cntr,
x_units='screen',y_units='screen',
From db29971fa6fc4ca7296cd953cb740a51295df41d Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 20 Jun 2020 09:38:34 +0200
Subject: [PATCH 4/5] small bug fixed
---
rowers/views/planviews.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py
index f30b51b9..7db2babe 100644
--- a/rowers/views/planviews.py
+++ b/rowers/views/planviews.py
@@ -81,7 +81,10 @@ def plannedsession_comment_view(request,id=0,userid=0):
rowers = {r.user for r in ps.rower.all()}
commenters = set(list(commenters)+list(rowers))
for u in commenters:
- a_messages.info(u,message)
+ try:
+ a_messages.info(u,message)
+ except ValueError:
+ pass
if u != request.user and u != r.user:
ocr = Rower.objects.get(user=u)
res = myqueue(queuelow,
From f89ddd57b8ce1537792686168dbc4033abd09311 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 20 Jun 2020 09:42:46 +0200
Subject: [PATCH 5/5] download for logged in
---
rowers/templates/menu_racing.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rowers/templates/menu_racing.html b/rowers/templates/menu_racing.html
index 67e72c77..9d115550 100644
--- a/rowers/templates/menu_racing.html
+++ b/rowers/templates/menu_racing.html
@@ -112,11 +112,11 @@
Map View
- {% if course.manager == rower %}
Download as KML
+ {% if course.manager == rower %}
Edit