removing unencoded links to workout from templates
This commit is contained in:
@@ -192,7 +192,10 @@ def summaryfromsplitdata(splitdata,data,filename,sep='|'):
|
|||||||
|
|
||||||
totaldist = data['distance']
|
totaldist = data['distance']
|
||||||
totaltime = data['time']/10.
|
totaltime = data['time']/10.
|
||||||
spm = data['stroke_rate']
|
try:
|
||||||
|
spm = data['stroke_rate']
|
||||||
|
except KeyError:
|
||||||
|
spm = 0
|
||||||
try:
|
try:
|
||||||
resttime = data['rest_time']/10.
|
resttime = data['rest_time']/10.
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
|||||||
@@ -23,17 +23,17 @@
|
|||||||
<div class="grid_6 alpha">
|
<div class="grid_6 alpha">
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/workflow">Workflow View</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/workflow">Workflow View</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/export">Export</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
<td>
|
<td>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<div class="grid_6 alpha">
|
<div class="grid_6 alpha">
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a>
|
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id|encode }}">Compare Workouts</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans/">Compare Workouts*</a>
|
<a class="button blue small" href="/rowers/paidplans/">Compare Workouts*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/flexchart">
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/flexchart">
|
||||||
Flexible Interactive Plot
|
Flexible Interactive Plot
|
||||||
</a>
|
</a>
|
||||||
<p>
|
<p>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<div class="grid_2 omega tooltip">
|
<div class="grid_2 omega tooltip">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/editintervals">Edit Intervals</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
|
<a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/adddistanceplot2">Dist Metrics Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/adddistanceplot2">Dist Metrics Plot</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Dist Metrics Plot*</a>
|
<a class="button blue small" href="/rowers/paidplans">Dist Metrics Plot*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addtimeplot2">Time Metrics Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/addtimeplot2">Time Metrics Plot</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Time Metrics Plot*</a>
|
<a class="button blue small" href="/rowers/paidplans">Time Metrics Plot*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/histo">Power Histogram</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/histo">Power Histogram</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Power Histogram*</a>
|
<a class="button blue small" href="/rowers/paidplans">Power Histogram*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a>
|
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id|encode }}/">Sensor Fusion</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
|
<a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/split">Split Workout</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
|
<a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<div class="grid_6 alpha">
|
<div class="grid_6 alpha">
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/interactiveplot">Big Interactive Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/interactiveplot">Big Interactive Plot</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
See (and save) the big interactive plot
|
See (and save) the big interactive plot
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/instroke">In-Stroke Metrics</a></p>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/instroke">In-Stroke Metrics</a></p>
|
||||||
<p>
|
<p>
|
||||||
If your workout has in-stroke metrics (like a stroke power curve or boat acceleration curve), you will find it here.
|
If your workout has in-stroke metrics (like a stroke power curve or boat acceleration curve), you will find it here.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -21,17 +21,17 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/workflow">Workflow View</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/workflow">Workflow View</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/export">Export</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
<td>
|
<td>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a>
|
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id|encode }}">Compare Workouts</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Compare Workouts*</a>
|
<a class="button blue small" href="/rowers/paidplans">Compare Workouts*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
|
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/flexchart">Flexible Interactive Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/flexchart">Flexible Interactive Plot</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Flexible Interactive plot. Pick your own X and Y axis parameters.
|
Flexible Interactive plot. Pick your own X and Y axis parameters.
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<div class="grid_2 omega tooltip">
|
<div class="grid_2 omega tooltip">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/editintervals">Edit Intervals</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
|
<a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/crewnerdsummary">CrewNerd Summary</a>
|
<a class="button blue small"href="/rowers/workout/{{ workout.id|encode }}/crewnerdsummary">CrewNerd Summary</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">CrewNerd Summary*</a>
|
<a class="button blue small" href="/rowers/paidplans">CrewNerd Summary*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
<div class="grid_2 tooltip">
|
<div class="grid_2 tooltip">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/forcecurve">Stroke Profile (Empower)</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/forcecurve">Stroke Profile (Empower)</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Stroke Profile (Empower)*</a>
|
<a class="button blue small" href="/rowers/paidplans">Stroke Profile (Empower)*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
<div class="grid_2 omega tooltip">
|
<div class="grid_2 omega tooltip">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addotwpowerplot">OTW Power Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/addotwpowerplot">OTW Power Plot</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">OTW Power Plot*</a>
|
<a class="button blue small" href="/rowers/paidplans">OTW Power Plot*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/geeky">Geeky Stuff</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/geeky">Geeky Stuff</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Geeky Stuff*</a>
|
<a class="button blue small" href="/rowers/paidplans">Geeky Stuff*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
<div class="grid_2 tooltip">
|
<div class="grid_2 tooltip">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/smoothenpace">Smooth out Pace Data</a>
|
<a class="button blue small"href="/rowers/workout/{{ workout.id|encode }}/smoothenpace">Smooth out Pace Data</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Smooth out Pace Data*</a>
|
<a class="button blue small" href="/rowers/paidplans">Smooth out Pace Data*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/undosmoothenpace">Raw Data</a>
|
<a class="button blue small"href="/rowers/workout/{{ workout.id|encode }}/undosmoothenpace">Raw Data</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Reset Smoothing*</a>
|
<a class="button blue small" href="/rowers/paidplans">Reset Smoothing*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a>
|
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id|encode }}/">Sensor Fusion</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
|
<a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/split">Split Workout</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
|
<a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
<div class="grid_6 alpha">
|
<div class="grid_6 alpha">
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/interactiveplot">Big Interactive Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/interactiveplot">Big Interactive Plot</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
See (and save) the big interactive plot
|
See (and save) the big interactive plot
|
||||||
@@ -237,7 +237,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/instroke">In-Stroke Metrics</a></p>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/instroke">In-Stroke Metrics</a></p>
|
||||||
<p>
|
<p>
|
||||||
If your workout has in-stroke metrics (like a stroke power curve or boat acceleration curve), you will find it here.
|
If your workout has in-stroke metrics (like a stroke power curve or boat acceleration curve), you will find it here.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -42,12 +42,12 @@
|
|||||||
{% if user.is_authenticated and mayedit %}
|
{% if user.is_authenticated and mayedit %}
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 suffix_2 omega">
|
<div class="grid_2 suffix_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/advanced">Advanced Edit</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> {{ cworkout.date }} </td>
|
<td> {{ cworkout.date }} </td>
|
||||||
<td> {{ cworkout.starttime }} </td>
|
<td> {{ cworkout.starttime }} </td>
|
||||||
<td> <a href="/rowers/workout/{{ workout.id }}/edit">{{ cworkout.name }}</a> </td>
|
<td> <a href="/rowers/workout/{{ workout.id|encode }}/edit">{{ cworkout.name }}</a> </td>
|
||||||
<td> {{ cworkout.workouttype }} </td>
|
<td> {{ cworkout.workouttype }} </td>
|
||||||
<td> {{ cworkout.distance }}m</td>
|
<td> {{ cworkout.distance }}m</td>
|
||||||
<td> {{ cworkout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
<td> {{ cworkout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
{% if id == cworkout.id %}
|
{% if id == cworkout.id %}
|
||||||
<td> </td>
|
<td> </td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td> <a class="button blue small" href="/rowers/workout/compare/{{ id }}/{{ cworkout.id }}/time/hr">Compare</a> </td>
|
<td> <a class="button blue small" href="/rowers/workout/compare/{{ id }}/{{ cworkout.id|encode }}/time/hr">Compare</a> </td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -26,11 +26,11 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> {{ workout.date }} </td>
|
<td> {{ workout.date }} </td>
|
||||||
<td> {{ workout.starttime }} </td>
|
<td> {{ workout.starttime }} </td>
|
||||||
<td><a href="/rowers/workout/{{workout.id}}/edit"> {{ workout.name }}</a> </td>
|
<td><a href="/rowers/workout/{{workout.id|encode}}/edit"> {{ workout.name }}</a> </td>
|
||||||
<td> {{ workout.workouttype }} </td>
|
<td> {{ workout.workouttype }} </td>
|
||||||
<td> <a href="/rowers/workout/{{ workout.id }}/deleteconfirm">D</td>
|
<td> <a href="/rowers/workout/{{ workout.id|encode }}/deleteconfirm">D</td>
|
||||||
{% if not workout.uploadedtoc2 %}
|
{% if not workout.uploadedtoc2 %}
|
||||||
<td> <a href="/rowers/workout/{{ workout.id }}/c2upload">C2</td>
|
<td> <a href="/rowers/workout/{{ workout.id|encode }}/c2upload">C2</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td> </td>
|
<td> </td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -12,17 +12,17 @@
|
|||||||
|
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/workflow">Workflow View</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/workflow">Workflow View</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/advanced">Advanced Edit</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1 alpha">
|
<div class="grid_1 alpha">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/c2uploadw"><img src="/static/img/c2square.jpg" alt="Concept2 icon" width="60" height="60"></a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/c2uploadw"><img src="/static/img/c2square.jpg" alt="Concept2 icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/stravauploadw"><img src="/static/img/stravasquare.png" alt="Strava icon" width="60" height="60"></a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/stravauploadw"><img src="/static/img/stravasquare.png" alt="Strava icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/sporttracksuploadw">
|
<a href="/rowers/workout/{{ workout.id|encode }}/sporttracksuploadw">
|
||||||
<img src="/static/img/sporttrackssquare.png" alt="SportTracks icon" width="60" height="60"></a>
|
<img src="/static/img/sporttrackssquare.png" alt="SportTracks icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -88,12 +88,12 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/emailtcx">
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailtcx">
|
||||||
<img src="/static/img/export.png" alt="TCX Export" width="60" height="60"></a>
|
<img src="/static/img/export.png" alt="TCX Export" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/emailcsv">
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailcsv">
|
||||||
<img src="/static/img/CSVsquare.png" alt="CSV Export" width="60" height="60"></a>
|
<img src="/static/img/CSVsquare.png" alt="CSV Export" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1 alpha">
|
<div class="grid_1 alpha">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/runkeeperuploadw"><img src="/static/img/rksquare.png" alt="Runkeeper icon" width="60" height="60"></a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/runkeeperuploadw"><img src="/static/img/rksquare.png" alt="Runkeeper icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/underarmouruploadw"><img src="/static/img/uasquare.png" alt="Underarmour icon" width="60" height="60"></a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/underarmouruploadw"><img src="/static/img/uasquare.png" alt="Underarmour icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_1">
|
<div class="grid_1">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/tpuploadw"><img src="/static/img/tpicon.png" alt="Tp icon" width="60" height="60"></a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/tpuploadw"><img src="/static/img/tpicon.png" alt="Tp icon" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="grid_1 omega">
|
<div class="grid_1 omega">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/emailgpx">
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailgpx">
|
||||||
<img src="/static/img/gpx.jpg" alt="GPX Export" width="60" height="60"></a>
|
<img src="/static/img/gpx.jpg" alt="GPX Export" width="60" height="60"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -115,7 +115,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> {{ cworkout.date }} </td>
|
<td> {{ cworkout.date }} </td>
|
||||||
<td> {{ cworkout.starttime }} </td>
|
<td> {{ cworkout.starttime }} </td>
|
||||||
<td> <a href="/rowers/workout/{{ workout.id }}/edit">{{ cworkout.name }}</a> </td>
|
<td> <a href="/rowers/workout/{{ workout.id|encode }}/edit">{{ cworkout.name }}</a> </td>
|
||||||
<td> {{ cworkout.workouttype }} </td>
|
<td> {{ cworkout.workouttype }} </td>
|
||||||
<td> {{ cworkout.distance }}m</td>
|
<td> {{ cworkout.distance }}m</td>
|
||||||
<td> {{ cworkout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
<td> {{ cworkout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
{% if id == cworkout.id %}
|
{% if id == cworkout.id %}
|
||||||
<td> </td>
|
<td> </td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td> <a class="button blue small" href="/rowers/workout/fusion/{{ id }}/{{ cworkout.id }}">Fusion</a> </td>
|
<td> <a class="button blue small" href="/rowers/workout/fusion/{{ id }}/{{ cworkout.id|encode }}">Fusion</a> </td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
{% if instrokemetrics %}
|
{% if instrokemetrics %}
|
||||||
{% for metric in instrokemetrics %}
|
{% for metric in instrokemetrics %}
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/instroke/{{ metric }}/">{{ metric }}</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/instroke/{{ metric }}/">{{ metric }}</a>
|
||||||
</p>
|
</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="workout-delete">
|
<li id="workout-delete">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/delete/">
|
<a href="/rowers/workout/{{ workout.id|encode }}/delete/">
|
||||||
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<td> {{ workout.averagehr }} </td>
|
<td> {{ workout.averagehr }} </td>
|
||||||
<td> {{ workout.maxhr }} </td>
|
<td> {{ workout.maxhr }} </td>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/edit/">{{ workout.name }}</a> </td>
|
<a href="/rowers/workout/{{ workout.id|encode }}/edit/">{{ workout.name }}</a> </td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
@@ -19,17 +19,17 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/advanced">Advanced Edit</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/export">Export</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
<td>
|
<td>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/wind">Edit Wind Data</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/wind">Edit Wind Data</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/about">Edit Wind Data</a>
|
<a class="button blue small" href="/rowers/about">Edit Wind Data</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/stream">Edit Stream Data</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/stream">Edit Stream Data</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/about">Edit Stream Data</a>
|
<a class="button blue small" href="/rowers/about">Edit Stream Data</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
<div class="grid_2 omega">
|
<div class="grid_2 omega">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/otwsetpower">OTW Power</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/otwsetpower">OTW Power</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/about">OTW Power</a>
|
<a class="button blue small" href="/rowers/about">OTW Power</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
{% if user|is_promember %}
|
{% if user|is_promember %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/interactiveotwplot">Corrected Pace Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/interactiveotwplot">Corrected Pace Plot</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="button blue small" href="/rowers/about">Corrected Pace Plot</a>
|
<a class="button blue small" href="/rowers/about">Corrected Pace Plot</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid_2 suffix_2 omega">
|
<div class="grid_2 suffix_2 omega">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/interactiveplot">Big Interactive Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/interactiveplot">Big Interactive Plot</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
See (and save) the big interactive plot
|
See (and save) the big interactive plot
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<div class="grid_2">
|
<div class="grid_2">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/instroke/{{ metric }}">{{ metric }}</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/instroke/{{ metric }}">{{ metric }}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -91,12 +91,12 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> {{ workout.distance }} m</td>
|
<td> {{ workout.distance }} m</td>
|
||||||
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
||||||
<td> {{ avgpower|lookup:workout.id }} W</td>
|
<td> {{ avgpower|lookup:workout.id|encode }} W</td>
|
||||||
<td> {{ workout.date }} </td>
|
<td> {{ workout.date }} </td>
|
||||||
<td> {{ workout.averagehr }} </td>
|
<td> {{ workout.averagehr }} </td>
|
||||||
<td> {{ workout.maxhr }} </td>
|
<td> {{ workout.maxhr }} </td>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/edit/">{{ workout.name }}</a> </td>
|
<a href="/rowers/workout/{{ workout.id|encode }}/edit/">{{ workout.name }}</a> </td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/wind">Set wind strength and direction</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/wind">Set wind strength and direction</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/stream">
|
<a href="/rowers/workout/{{ workout.id|encode }}/stream">
|
||||||
Set river stream strength
|
Set river stream strength
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/advanced">Advanced</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
</tr><tr>
|
</tr><tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<th>Comments</th>
|
<th>Comments</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/comment">Comment ({{ aantalcomments }})</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/comment">Comment ({{ aantalcomments }})</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button red small" href="/rowers/workout/{{ workout.id }}/deleteconfirm">Delete</a>
|
<a class="button red small" href="/rowers/workout/{{ workout.id|encode }}/deleteconfirm">Delete</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/editintervals">Edit Intervals</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/stream">Edit Stream Data</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/stream">Edit Stream Data</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/wind">Edit Wind Data</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/wind">Edit Wind Data</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/export">Export Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/flexchart">Flex Chart</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/flexchart">Flex Chart</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/map">Map View</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/map">Map View</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<p>
|
<p>
|
||||||
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
||||||
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id }}">Share</a>
|
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id|encode }}">Share</a>
|
||||||
</div>
|
</div>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a class="twitter-share-button"
|
<a class="twitter-share-button"
|
||||||
href="https://twitter.com/intent/tweet"
|
href="https://twitter.com/intent/tweet"
|
||||||
data-url="https://rowsandall.com/rowers/workout/{{ workout.id }}"
|
data-url="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}"
|
||||||
data-text="@rowsandall #rowingdata">Tweet</a>
|
data-text="@rowsandall #rowingdata">Tweet</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/otwsetpower">OTW Power</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/otwsetpower">OTW Power</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/updatecp">
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/updatecp">
|
||||||
Make Ranking Piece</a>
|
Make Ranking Piece</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Comments</th>
|
<th>Comments</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/comment">Comment ({{ aantalcomments }})</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}/comment">Comment ({{ aantalcomments }})</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
||||||
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id }}">Share</a>
|
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id|encode }}">Share</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<a class="twitter-share-button"
|
<a class="twitter-share-button"
|
||||||
href="https://twitter.com/intent/tweet"
|
href="https://twitter.com/intent/tweet"
|
||||||
data-url="https://rowsandall.com/rowers/workout/{{ workout.id }}"
|
data-url="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}"
|
||||||
data-text="@rowsandall #rowingdata">Tweet</a>
|
data-text="@rowsandall #rowingdata">Tweet</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -3,21 +3,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addtimeplot">Add Time Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/addtimeplot">Add Time Plot</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/adddistanceplot">Add Distance Plot</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/adddistanceplot">Add Distance Plot</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addpiechart">Add HR Pie Chart</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/addpiechart">Add HR Pie Chart</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addpowerpiechart">Add Power Pie Chart</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/addpowerpiechart">Add Power Pie Chart</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/stats">Workout Stats</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id|encode }}/stats">Workout Stats</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/image">Attach Image</a>
|
<a class="button blue small" href="/rowers/workout/{{ workout.id|encode }}/image">Attach Image</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
<td> {{ workout.date|date:"Y-m-d" }} </td>
|
<td> {{ workout.date|date:"Y-m-d" }} </td>
|
||||||
<td>
|
<td>
|
||||||
<div class="tooltip">
|
<div class="tooltip">
|
||||||
<a href="{% url manager.defaultlandingpage id=workout.id %}">
|
<a href="{% url manager.defaultlandingpage id=workout.id|encode %}">
|
||||||
{{ workout.name }}
|
{{ workout.name }}
|
||||||
</a>
|
</a>
|
||||||
<span class="tooltiptext">{{ workout.notes }}</span>
|
<span class="tooltiptext">{{ workout.notes }}</span>
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
<td> {{ workout.distance }}m</td>
|
<td> {{ workout.distance }}m</td>
|
||||||
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/sessions/{{ psdict.id.1 }}/detach/{{ workout.id }}/">Detach</a>
|
<a href="/rowers/sessions/{{ psdict.id.1 }}/detach/{{ workout.id|encode }}/">Detach</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
<td> {{ workout.averagehr }} </td>
|
<td> {{ workout.averagehr }} </td>
|
||||||
<td> {{ workout.maxhr }} </td>
|
<td> {{ workout.maxhr }} </td>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}/edit/">
|
<a href="/rowers/workout/{{ workout.id|encode }}/edit/">
|
||||||
{{ workout.name }}
|
{{ workout.name }}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -52,16 +52,16 @@
|
|||||||
<li>
|
<li>
|
||||||
{% if user.is_authenticated and user == rower.user %}
|
{% if user.is_authenticated and user == rower.user %}
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id }}/edit">Edit Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id|encode }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id }}">See Workout</a>
|
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id|encode }}">See Workout</a>
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.is_authenticated and user == rower.user %}
|
{% if user.is_authenticated and user == rower.user %}
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id }}/workflow">Workflow View</a>
|
<a class="button gray small" href="/rowers/workout/{{ graph.workout.id|encode }}/workflow">Workflow View</a>
|
||||||
</p>
|
</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<ul class="main-content">
|
<ul class="main-content">
|
||||||
<li class="grid_2">
|
<li class="grid_2">
|
||||||
<p>
|
<p>
|
||||||
<form enctype="multipart/form-data" action="/rowers/workout/{{ workout.id }}/split/" method="post">
|
<form enctype="multipart/form-data" action="/rowers/workout/{{ workout.id|encode }}/split/" method="post">
|
||||||
<table width=100%>
|
<table width=100%>
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
</table>
|
</table>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
</tr><tr>
|
</tr><tr>
|
||||||
<th>Public link to this workout</th>
|
<th>Public link to this workout</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/{{ workout.id }}">https://rowsandall.com/rowers/workout/{{ workout.id }}</a>
|
<a href="/rowers/workout/{{ workout.id|encode }}">https://rowsandall.com/rowers/workout/{{ workout.id|encode }}</a>
|
||||||
<td>
|
<td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="grid_3 alpha">
|
<div class="grid_3 alpha">
|
||||||
<big>{{ forloop.counter }}</big>
|
<big>{{ forloop.counter }}</big>
|
||||||
<div class="grid_3 tooltip">
|
<div class="grid_3 tooltip">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/flexchart?favoritechart={{ forloop.counter |add:"-1" }}">
|
<a href="/rowers/workout/{{ workout.id|encode }}/flexchart?favoritechart={{ forloop.counter |add:"-1" }}">
|
||||||
{{ chart.div | safe }}
|
{{ chart.div | safe }}
|
||||||
</a>
|
</a>
|
||||||
{% if rower.showfavoritechartnotes %}
|
{% if rower.showfavoritechartnotes %}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ $('#id_workouttype').change();
|
|||||||
<div class="fb-share-button"
|
<div class="fb-share-button"
|
||||||
data-href="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}/"
|
data-href="https://rowsandall.com/rowers/workout/{{ workout.id|encode }}/"
|
||||||
data-layout="button" data-size="small" data-mobile-iframe="false">
|
data-layout="button" data-size="small" data-mobile-iframe="false">
|
||||||
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id }}">Share</a>
|
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id|encode }}">Share</a>
|
||||||
</div>
|
</div>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -123,7 +123,7 @@ $('#id_workouttype').change();
|
|||||||
<h1>Racing</h1>
|
<h1>Racing</h1>
|
||||||
{% for race in indoorraces %}
|
{% for race in indoorraces %}
|
||||||
<p>
|
<p>
|
||||||
<a href="/rowers/virtualevent/{{ race.id }}/submit/{{ workout.id }}/">Submit this to Indoor Race {{ race.name }}</a>
|
<a href="/rowers/virtualevent/{{ race.id }}/submit/{{ workout.id|encode }}/">Submit this to Indoor Race {{ race.name }}</a>
|
||||||
</p>
|
</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -351,6 +351,8 @@ urlpatterns = [
|
|||||||
url(r'^workout/(?P<pk>\d+)/delete/$',login_required(
|
url(r'^workout/(?P<pk>\d+)/delete/$',login_required(
|
||||||
views.WorkoutDelete.as_view()),
|
views.WorkoutDelete.as_view()),
|
||||||
name='workout_delete'),
|
name='workout_delete'),
|
||||||
|
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/delete/$',login_required(
|
||||||
|
views.workout_code_delete_view),name='workout_code_delete'),
|
||||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/smoothenpace/$',views.workout_smoothenpace_view,name='workout_smoothenpace_view'),
|
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/smoothenpace/$',views.workout_smoothenpace_view,name='workout_smoothenpace_view'),
|
||||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/undosmoothenpace/$',views.workout_undo_smoothenpace_view,name='workout_undo_smoothenpace_view'),
|
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/undosmoothenpace/$',views.workout_undo_smoothenpace_view,name='workout_undo_smoothenpace_view'),
|
||||||
url(r'^workout/c2import/$',views.workout_c2import_view,name='workout_c2import_view'),
|
url(r'^workout/c2import/$',views.workout_c2import_view,name='workout_c2import_view'),
|
||||||
|
|||||||
@@ -4664,11 +4664,12 @@ def workout_fusion_view(request,id1=0,id2=1):
|
|||||||
'name':'Workouts'
|
'name':'Workouts'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url':get_workout_default_page(request,w1.id),
|
'url':get_workout_default_page(request,encoder.encode_hex(w1.id)),
|
||||||
'name': str(w1.id)
|
'name': encoder.encode_hex(w1.id)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url':reverse('workout_fusion_list',kwargs={'id':encoder.encode_hex(id1)}),
|
'url':reverse('workout_fusion_list',
|
||||||
|
kwargs={'id':encoder.encode_hex(id1)}),
|
||||||
'name': 'Sensor Fusion'
|
'name': 'Sensor Fusion'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4677,7 +4678,7 @@ def workout_fusion_view(request,id1=0,id2=1):
|
|||||||
'id1':encoder.encode_hex(id1),
|
'id1':encoder.encode_hex(id1),
|
||||||
'id2':encoder.encode_hex(id2)
|
'id2':encoder.encode_hex(id2)
|
||||||
}),
|
}),
|
||||||
'name': str(w2.id)
|
'name': encoder.encode_hex(w2.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
@@ -5160,6 +5161,13 @@ class GraphDelete(DeleteView):
|
|||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
def workout_code_delete_view(request,id=0):
|
||||||
|
pk = encoder.decode_hex(id)
|
||||||
|
|
||||||
|
url = reverse('workout_delete',kwargs={'pk':pk})
|
||||||
|
|
||||||
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
class WorkoutDelete(DeleteView):
|
class WorkoutDelete(DeleteView):
|
||||||
login_required = True
|
login_required = True
|
||||||
model = Workout
|
model = Workout
|
||||||
@@ -5175,8 +5183,8 @@ class WorkoutDelete(DeleteView):
|
|||||||
'name':'Workouts'
|
'name':'Workouts'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url':get_workout_default_page(self.request,self.object.id),
|
'url':get_workout_default_page(self.request,encoder.encode_hex(self.object.id)),
|
||||||
'name': str(self.object.id)
|
'name': encoder.encode_hex(self.object.id)
|
||||||
},
|
},
|
||||||
{ 'url':reverse('workout_delete',kwargs={'pk':str(self.object.pk)}),
|
{ 'url':reverse('workout_delete',kwargs={'pk':str(self.object.pk)}),
|
||||||
'name': 'Delete'
|
'name': 'Delete'
|
||||||
|
|||||||
Reference in New Issue
Block a user