Private
Public Access
1
0

adding simple power form

This commit is contained in:
Sander Roosendaal
2022-12-16 08:18:13 +01:00
parent 47d8dd63d3
commit 57fe6413e6
5 changed files with 80 additions and 1 deletions

View File

@@ -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:

View File

@@ -0,0 +1,28 @@
{% extends "newbase.html" %}
{% load static %}
{% load rowerfilters %}
{% block title %}Change Rower Preferences{% endblock %}
{% block main %}
<h1>Functional Threshold Power for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
<ul class="main-content">
<li class="grid_2">
<form enctype="multipart/form-data" action="" method="post">
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<input type="submit" value="Update">
</form>
</li>
</ul>
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% endblock %}

View File

@@ -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<userid>\d+)/$',
views.rower_prefs_view, name='rower_prefs_view'),
re_path(r'^me/prefs/user/(?P<userid>\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'),

View File

@@ -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,

View File

@@ -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