From c067a3337231b0c8419c4e7367821ae5bfa3f683 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 13 Oct 2020 22:03:18 +0200 Subject: [PATCH] adding user setting for CP duration range - default is 42 days --- rowers/models.py | 15 ++++++++++++++- rowers/templates/menu_profile.html | 2 +- rowers/templates/rower_preferences.html | 20 +++++++++++++++++--- rowers/views/statements.py | 2 +- rowers/views/userviews.py | 10 ++++++++++ 5 files changed, 43 insertions(+), 6 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 9e5bc625..3e031925 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -756,6 +756,13 @@ class Rower(models.Model): ('y','y'), ) + cppresets = ( + (42,'6 weeks'), + (91,'13 weeks'), + (183,'26 weeks'), + (365,'a year') + ) + user = models.OneToOneField(User,on_delete=models.CASCADE) #billing details @@ -837,7 +844,8 @@ class Rower(models.Model): ep3 = models.FloatField(default=1.0,verbose_name="erg CP p4") ecpratio = models.FloatField(default=1.0,verbose_name="erg CP fit ratio") - + cprange = models.IntegerField(default=42,verbose_name="Range for calculation breakthrough workouts and fitness (CP)", + choices=cppresets) otwslack = models.IntegerField(default=0,verbose_name="OTW Power slack") @@ -3538,6 +3546,11 @@ class RowerPowerForm(ModelForm): model = Rower fields = ['hrftp','ftp','otwslack'] +class RowerCPForm(ModelForm): + class Meta: + model = Rower + fields = ['cprange'] + # Form to set rower's Power zones, including test routines # to enable consistency class RowerPowerZonesForm(ModelForm): diff --git a/rowers/templates/menu_profile.html b/rowers/templates/menu_profile.html index f775ce94..54061bd4 100644 --- a/rowers/templates/menu_profile.html +++ b/rowers/templates/menu_profile.html @@ -4,7 +4,7 @@ diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 76d74423..665abf4e 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -120,7 +120,7 @@ from rowers.models import ( VirtualRaceFollower, ) from rowers.models import ( - RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm, + RowerPowerForm,RowerForm,RowerCPForm,GraphImage,AdvancedWorkoutForm, RowerPowerZonesForm,AccountRowerForm,UserForm, Team,TeamForm,TeamInviteForm,TeamInvite,TeamRequest, WorkoutComment,WorkoutCommentForm,RowerExportForm, diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index caa61060..a766b3f0 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -480,6 +480,7 @@ def rower_prefs_view(request,userid=0,message=""): form = RowerForm(instance=r) powerform = RowerPowerForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r) + cpform = RowerCPForm(instance=r) if request.method == 'POST' and "ut2" in request.POST: form = RowerForm(request.POST) @@ -557,6 +558,14 @@ def rower_prefs_view(request,userid=0,message=""): r.save() successmessage = "Your Power Zone data were changed" messages.info(request,successmessage) + elif request.method == 'POST' and 'cprange' in request.POST: + cpform = RowerCPForm(request.POST) + if cpform.is_valid(): + cd = cpform.cleaned_data + cprange = cd['cprange'] + r.cprange = cprange + r.save() + messages.info(request,'Updated CP range value') return render(request, 'rower_preferences.html', { @@ -565,6 +574,7 @@ def rower_prefs_view(request,userid=0,message=""): 'powerform':powerform, 'powerzonesform':powerzonesform, 'breadcrumbs':breadcrumbs, + 'cpform':cpform, 'rower':r, })