Merge branch 'release/v12.94'
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -55,6 +55,7 @@ config.yaml
|
||||
|
||||
# virtualenv
|
||||
/venv/
|
||||
/venv38/
|
||||
/py27/
|
||||
/py2/
|
||||
/django2/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -41,6 +41,54 @@
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
<li class="grid_4">
|
||||
<h2>How-to</h2>
|
||||
<p>
|
||||
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 <a href="https://www.google.com/earth/">Google Earth</a>
|
||||
to mark the start and finish lines using polygons. The process is identical
|
||||
to creating custom courses for the
|
||||
<a href="http://performancephones.com/crewnerd/">CrewNerd</a>
|
||||
app.
|
||||
|
||||
</p>
|
||||
|
||||
<p>CrewNerd has published a nice video tutorial of the process.
|
||||
<a href="https://youtu.be/whhWFmMJbhM">Click here</a> to see the video. The part
|
||||
we're interested in starts at 2:05.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
<li>Open Google Earth</li>
|
||||
<li>Create a folder "Courses" under "Temporary Places" or under "My Places"</li>
|
||||
<li>Create a folder for each Course under "Courses", and for each course:</li>
|
||||
<li>Create Start polygon</li>
|
||||
<li>Optional: Create First "must row through" polygon</li>
|
||||
<li>Optional: Create subsequent "must row through" polygons</li>
|
||||
<li>Create Finish polygon</li>
|
||||
<li>Save "Courses" as KML file</li>
|
||||
<li>Upload the file to rowsandall.com using the "Add Courses" button</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>You are allowed to have multiple courses in one KML file.
|
||||
Your CrewNerd "courses.kml" file works out of the box</p>
|
||||
|
||||
<p>The site doesn't test for duplicate courses.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -112,11 +112,11 @@
|
||||
<i class="fas fa-map fa-fw"></i> Map View
|
||||
</a>
|
||||
</li>
|
||||
{% if course.manager == rower %}
|
||||
<li id="course-emailkml">
|
||||
<a href="/rowers/courses/{{ course.id }}/downloadkml/">
|
||||
<i class="fas fa-globe-americas fa-fw"></i> Download as KML</a>
|
||||
</li>
|
||||
{% if course.manager == rower %}
|
||||
<li id="course-editview">
|
||||
<a href="/rowers/courses/{{ course.id }}/edit/">
|
||||
<i class="fas fa-pencil-alt fa-fw"></i> Edit</a>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user