diff --git a/rowers/models.py b/rowers/models.py
index e533f129..51848378 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -4220,7 +4220,20 @@ class RowerExportForm(ModelForm):
]
# Simple form to set rower's Functional Threshold Power
+class SimpleRowerPowerForm(ModelForm):
+ otwftp = forms.IntegerField(initial=0,required=False, label='FTP on water')
+ class Meta:
+ model = Rower
+ fields = ['ftp']
+ def __init__(self, *args, **kwargs):
+ super(SimpleRowerPowerForm, self).__init__(*args, **kwargs)
+ self.initial['otwftp'] = int((1-0.01*self.instance.otwslack)*self.instance.ftp)
+
+ def save(self, *args, **kwargs):
+ otwslack = -100.*(self.cleaned_data['otwftp']-self.cleaned_data['ftp'])/(self.cleaned_data['ftp'])
+ self.instance.otwslack = otwslack
+ return super(SimpleRowerPowerForm, self).save(*args, **kwargs)
class RowerPowerForm(ModelForm):
class Meta:
diff --git a/rowers/templates/rower_simplepreferences.html b/rowers/templates/rower_simplepreferences.html
new file mode 100644
index 00000000..b7b697be
--- /dev/null
+++ b/rowers/templates/rower_simplepreferences.html
@@ -0,0 +1,28 @@
+{% extends "newbase.html" %}
+{% load static %}
+{% load rowerfilters %}
+
+{% block title %}Change Rower Preferences{% endblock %}
+
+{% block main %}
+
Functional Threshold Power for {{ rower.user.first_name }} {{ rower.user.last_name }}
+
+
+
+
+
+{% endblock %}
+
+{% block sidebar %}
+{% include 'menu_profile.html' %}
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index fe555ae3..cd51fe38 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -782,10 +782,14 @@ urlpatterns = [
views.rower_edit_view, name='rower_edit_view'),
re_path(r'^me/preferences/$', views.rower_prefs_view,
name='rower_prefs_view'),
+ re_path(r'^me/prefs/$', views.rower_simpleprefs_view,
+ name='rower_simpleprefs_view'),
re_path(r'^me/transactions/$', views.transactions_view,
name='transactions_view'),
re_path(r'^me/preferences/user/(?P\d+)/$',
views.rower_prefs_view, name='rower_prefs_view'),
+ re_path(r'^me/prefs/user/(?P\d+)/$',
+ views.rower_simpleprefs_view, name='rower_simpleprefs_view'),
re_path(r'^me/edit/(.+.*)/$', views.rower_edit_view, name='rower_edit_view'),
re_path(r'^me/c2authorize/$', views.rower_c2_authorize,
name='rower_c2_authorize'),
diff --git a/rowers/views/statements.py b/rowers/views/statements.py
index 9aa224db..93a8350d 100644
--- a/rowers/views/statements.py
+++ b/rowers/views/statements.py
@@ -159,7 +159,7 @@ from rowers.models import (
VirtualRaceFollower, TombStone, InstantPlan,
PlannedSessionStep,InStrokeAnalysis, ForceCurveAnalysis
)
-from rowers.models import ( RowerPowerForm, RowerHRZonesForm,
+from rowers.models import ( RowerPowerForm, RowerHRZonesForm, SimpleRowerPowerForm,
RowerForm, RowerCPForm, GraphImage, AdvancedWorkoutForm,
RowerPowerZonesForm, AccountRowerForm, UserForm, Team, TeamForm,
TeamInviteForm, TeamInvite, TeamRequest, WorkoutComment,
diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py
index cd744ffd..144d2d33 100644
--- a/rowers/views/userviews.py
+++ b/rowers/views/userviews.py
@@ -551,6 +551,40 @@ def rower_edit_view(request, rowerid=0, userid=0, message=""):
'rower': r,
})
+#simple initial settings page
+@login_required()
+@permission_required('rower.is_coach', fn=get_user_by_userid, raise_exception=True)
+def rower_simpleprefs_view(request, userid=0):
+ r = getrequestrowercoachee(request, userid=userid, notpermanent=True)
+
+ breadcrumbs = [
+ {
+ 'url': '/rowers/me/edit/',
+ 'name': 'Profile'
+ },
+ {
+ 'url': reverse('rower_simpleprefs_view'),
+ 'name': 'Zones'
+ }
+ ]
+
+ form = SimpleRowerPowerForm(instance=r)
+
+ if request.method == 'POST':
+ form = SimpleRowerPowerForm(request.POST, instance=r)
+ if form.is_valid():
+ form.save(commit=True)
+ messages.info(request,'FTP and OTW FTP saved')
+
+ return render(request, 'rower_simplepreferences.html',
+ {
+ 'form': form,
+ 'teams': get_my_teams(request.user),
+ 'breadcrumbs': breadcrumbs,
+ 'rower': r,
+ })
+
+
# Page where user can set his details
# Add email address to form so user can change his email address