From 6012463a4d669b02940909bc075a145915b4f3fc Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Mon, 27 Nov 2017 22:01:12 +0100
Subject: [PATCH] power curve
---
rowers/templates/advancedotw.html | 7 +++
rowers/templates/instroke.html | 80 +++++++++++++++++++++++++++++++
rowers/urls.py | 1 +
rowers/views.py | 32 ++++++++++++-
4 files changed, 119 insertions(+), 1 deletion(-)
create mode 100644 rowers/templates/instroke.html
diff --git a/rowers/templates/advancedotw.html b/rowers/templates/advancedotw.html
index 0f54ff2b..3b6cdd33 100644
--- a/rowers/templates/advancedotw.html
+++ b/rowers/templates/advancedotw.html
@@ -234,6 +234,13 @@
See (and save) the big interactive plot
+
+
+ In-Stroke Metrics
+
+ If your workout has in-stroke metrics (like a stroke power curve or boat acceleration curve), you will find it here.
+
+
diff --git a/rowers/templates/instroke.html b/rowers/templates/instroke.html
new file mode 100644
index 00000000..622394d5
--- /dev/null
+++ b/rowers/templates/instroke.html
@@ -0,0 +1,80 @@
+{% extends "base.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
+
+{% block title %}Advanced Features {% endblock %}
+
+{% block content %}
+
+
+ {% if form.errors %}
+
+ Please correct the error{{ form.errors|pluralize }} below.
+
+ {% endif %}
+
+
In Stroke Metrics
+ {% if user.rower.rowerplan == 'basic' %}
+
This is a preview of the page with advanced functionality for Pro users. See the About page for more information and to sign up for Pro Membership
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {% if instrokemetrics %}
+ {% for metric in instrokemetrics %}
+ {% if forloop.first %}
+
+ {% else %}
+
+ {% endfor %}
+ {% else %}
+
Unfortunately, this workout doesn't have any in stroke metrics
+ {% endif %}
+
+
+
+
+
+
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index d79a7bbc..0ecd420a 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -224,6 +224,7 @@ urlpatterns = [
url(r'^workout/(?P
\d+)/geeky$',views.workout_geeky_view),
url(r'^workout/(?P\d+)/advanced$',views.workout_advanced_view),
url(r'^workout/(?P\d+)/instroke/(?P\w+.*)$',views.instroke_chart),
+ url(r'^workout/(?P\d+)/instroke$',views.instroke_view),
url(r'^workout/(?P\d+)/stats$',views.workout_stats_view),
url(r'^workout/(?P\d+)/otwsetpower$',views.workout_otwsetpower_view),
url(r'^workout/(?P\d+)/interactiveotwplot$',views.workout_otwpowerplot_view),
diff --git a/rowers/views.py b/rowers/views.py
index 2d80cbb8..2a1b52aa 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -6436,6 +6436,35 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
'form':form,
})
+@login_required()
+def instroke_view(request,id=0):
+ try:
+ row = Workout.objects.get(id=id)
+ except Workout.DoesNotExist:
+ raise Http404("Workout doesn't exist")
+
+ form = WorkoutForm(instance=row)
+ g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
+ # check if user is owner of this workout
+
+ if (checkworkoutuser(request.user,row)==False):
+ message = "You are not allowed to edit this workout"
+ messages.error(request,message)
+ url = reverse(workouts_view)
+
+ return HttpResponseRedirect(url)
+
+ rowdata = rrdata(csvfile=row.csvfilename)
+ instrokemetrics = rowdata.get_instroke_columns()
+
+
+ return render(request,
+ 'instroke.html',
+ {'workout':row,
+ 'teams':get_my_teams(request.user),
+ 'instrokemetrics':instrokemetrics,
+ })
+
# A special Edit page with all the Geeky functionality for the workout
@login_required()
def workout_geeky_view(request,id=0,message="",successmessage=""):
@@ -6548,7 +6577,8 @@ def instroke_chart(request,id=0,metric=''):
i.save()
print i.id,'aap'
- url = reverse(workout_geeky_view,
+ r = getrower(request.user)
+ url = reverse(r.defaultlandingpage,
kwargs = {
'id':id,
})