sort of working, good enough for now
This commit is contained in:
@@ -316,17 +316,6 @@ class MetricsForm(forms.Form):
|
|||||||
class CNsummaryForm(forms.Form):
|
class CNsummaryForm(forms.Form):
|
||||||
file = forms.FileField(required=True, validators=[must_be_csv])
|
file = forms.FileField(required=True, validators=[must_be_csv])
|
||||||
|
|
||||||
class CurrentWeekJsonForm(forms.Form):
|
|
||||||
plan = forms.CharField(required=True, label="Plan Code", initial="zwolsche")
|
|
||||||
secret = forms.CharField(required=True, label="Plan Secret", initial="noot")
|
|
||||||
delete_existing = forms.BooleanField(required=False, initial=False, label="Remove any existing sessions")
|
|
||||||
|
|
||||||
class NextWeekJsonForm(forms.Form):
|
|
||||||
plan = forms.CharField(required=True, label="Plan Code", initial="zwolsche")
|
|
||||||
secret = forms.CharField(required=True, label="Plan Secret", initial="noot")
|
|
||||||
fitness = forms.IntegerField(required=False, label='Fitness', initial=0)
|
|
||||||
fatigue = forms.IntegerField(required=False, label='Fatigue', initial=0)
|
|
||||||
delete_existing = forms.BooleanField(required=False, initial=False, label="Remove any existing sessions")
|
|
||||||
|
|
||||||
# The little window to type '4x2000m/500m' to update the workout summary
|
# The little window to type '4x2000m/500m' to update the workout summary
|
||||||
|
|
||||||
|
|||||||
@@ -1179,6 +1179,8 @@ class Rower(models.Model):
|
|||||||
workoutnametemplate = WorkoutNameTemplateField(default=['date','name','distance','ownerfirst','ownerlast','duration','boattype','workouttype'])
|
workoutnametemplate = WorkoutNameTemplateField(default=['date','name','distance','ownerfirst','ownerlast','duration','boattype','workouttype'])
|
||||||
|
|
||||||
# Access tokens
|
# Access tokens
|
||||||
|
training_plan_code = models.CharField(default='', max_length=200, blank=True, null=True)
|
||||||
|
training_plan_secret = models.CharField(default='', max_length=200, blank=True, null=True)
|
||||||
c2token = models.CharField(
|
c2token = models.CharField(
|
||||||
default='', max_length=200, blank=True, null=True)
|
default='', max_length=200, blank=True, null=True)
|
||||||
tokenexpirydate = models.DateTimeField(blank=True, null=True)
|
tokenexpirydate = models.DateTimeField(blank=True, null=True)
|
||||||
@@ -5209,6 +5211,47 @@ class RowerBillingAddressForm(ModelForm):
|
|||||||
super(RowerBillingAddressForm, self).__init__(*args, **kwargs)
|
super(RowerBillingAddressForm, self).__init__(*args, **kwargs)
|
||||||
self.fields['country'].required = True
|
self.fields['country'].required = True
|
||||||
|
|
||||||
|
class NextWeekPlanForm(ModelForm):
|
||||||
|
# add some extra fields save_credentials and delete_existing to the form
|
||||||
|
delete_existing = forms.BooleanField(required=False, initial=False, label="Remove any existing sessions")
|
||||||
|
save_credentials = forms.BooleanField(required=False, initial=False, label="Save credentials for next time")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Rower
|
||||||
|
fields = ['training_plan_code',
|
||||||
|
'training_plan_secret',
|
||||||
|
'actualfit',
|
||||||
|
'actualfatigue']
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(NextWeekPlanForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
cleaned_data = super(NextWeekPlanForm, self).clean()
|
||||||
|
plan = cleaned_data.get('training_plan_code')
|
||||||
|
secret = cleaned_data.get('training_plan_secret')
|
||||||
|
save_credentials = cleaned_data.get('save_credentials')
|
||||||
|
fitness = cleaned_data.get('actualfit')
|
||||||
|
fatigue = cleaned_data.get('actualfatigue')
|
||||||
|
|
||||||
|
if not fitness or not fatigue:
|
||||||
|
raise forms.ValidationError("You need to fill in fitness and fatigue")
|
||||||
|
|
||||||
|
r = self.instance
|
||||||
|
r.actualfit = fitness
|
||||||
|
r.actualfatigue = fatigue
|
||||||
|
w = Workout.objects.filter(user=r).order_by('-date').exclude(duplicate=True)
|
||||||
|
r.last_workout = w.last().id
|
||||||
|
r.save()
|
||||||
|
|
||||||
|
if not plan or not secret:
|
||||||
|
raise forms.ValidationError("Plan Code and Secret are required")
|
||||||
|
if save_credentials:
|
||||||
|
r.training_plan_code = plan
|
||||||
|
r.training_plan_secret = secret
|
||||||
|
r.save()
|
||||||
|
|
||||||
|
return cleaned_data
|
||||||
|
|
||||||
# Form to set rower's Email and Weight category
|
# Form to set rower's Email and Weight category
|
||||||
class AccountRowerForm(ModelForm):
|
class AccountRowerForm(ModelForm):
|
||||||
|
|||||||
@@ -4217,13 +4217,13 @@ def planmacrocyclebymonth(request, id=0, userid=0): # pragma: no cover
|
|||||||
def currentweekplan_view(request):
|
def currentweekplan_view(request):
|
||||||
r = getrower(request.user)
|
r = getrower(request.user)
|
||||||
|
|
||||||
form = CurrentWeekJsonForm()
|
form = NextWeekPlanForm(instance=r)
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = CurrentWeekJsonForm(request.POST)
|
form = NextWeekPlanForm(request.POST, instance=r)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
secret = form.cleaned_data['secret']
|
secret = form.cleaned_data['training_plan_secret']
|
||||||
plan = form.cleaned_data['plan']
|
plan = form.cleaned_data['training_plan_code']
|
||||||
delete_existing = form.cleaned_data['delete_existing']
|
delete_existing = form.cleaned_data['delete_existing']
|
||||||
|
|
||||||
post_data = {
|
post_data = {
|
||||||
@@ -4277,21 +4277,15 @@ def nextweekplan_view(request):
|
|||||||
|
|
||||||
fitness, fatigue = calculate_fitness(r)
|
fitness, fatigue = calculate_fitness(r)
|
||||||
|
|
||||||
|
form = NextWeekPlanForm(instance=r)
|
||||||
form = NextWeekJsonForm(
|
|
||||||
initial={
|
|
||||||
'fitness': round(fitness),
|
|
||||||
'fatigue': round(fatigue),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = NextWeekJsonForm(request.POST)
|
form = NextWeekPlanForm(request.POST, instance=r)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
fitness = form.cleaned_data['fitness']
|
fitness = form.cleaned_data['actualfit']
|
||||||
fatigue = form.cleaned_data['fatigue']
|
fatigue = form.cleaned_data['actualfatigue']
|
||||||
secret = form.cleaned_data['secret']
|
secret = form.cleaned_data['training_plan_secret']
|
||||||
plan = form.cleaned_data['plan']
|
plan = form.cleaned_data['training_plan_code']
|
||||||
delete_existing = form.cleaned_data['delete_existing']
|
delete_existing = form.cleaned_data['delete_existing']
|
||||||
|
|
||||||
post_data = {
|
post_data = {
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ from rowers.forms import (
|
|||||||
TrainingPlanBillingForm, InstantPlanSelectForm,
|
TrainingPlanBillingForm, InstantPlanSelectForm,
|
||||||
TrainingZonesForm, InstrokeForm, InStrokeMultipleCompareForm,
|
TrainingZonesForm, InstrokeForm, InStrokeMultipleCompareForm,
|
||||||
ForceCurveMultipleCompareForm, PlanByRscoreForm,
|
ForceCurveMultipleCompareForm, PlanByRscoreForm,
|
||||||
AssignChoices, NextWeekJsonForm, CurrentWeekJsonForm,
|
AssignChoices,
|
||||||
)
|
)
|
||||||
|
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
@@ -188,6 +188,7 @@ from rowers.models import ( RowerPowerForm, RowerHRZonesForm, SimpleRowerPowerFo
|
|||||||
RowerExportFormConcept2, RowerExportFormGarmin,
|
RowerExportFormConcept2, RowerExportFormGarmin,
|
||||||
RowerExportFormIntervals, RowerExportFormRP3,
|
RowerExportFormIntervals, RowerExportFormRP3,
|
||||||
RowerExportFormNK, RowerPrivateImportForm,
|
RowerExportFormNK, RowerPrivateImportForm,
|
||||||
|
NextWeekPlanForm,
|
||||||
)
|
)
|
||||||
from rowers.models import (
|
from rowers.models import (
|
||||||
FavoriteForm, BaseFavoriteFormSet, SiteAnnouncement, BasePlannedSessionFormSet,
|
FavoriteForm, BaseFavoriteFormSet, SiteAnnouncement, BasePlannedSessionFormSet,
|
||||||
|
|||||||
Reference in New Issue
Block a user