Private
Public Access
1
0

favorites on ote flex - need to do otw flex

This commit is contained in:
Sander Roosendaal
2016-12-06 17:45:05 +01:00
parent bd4f9cbe4c
commit bfc05a7de6
6 changed files with 515 additions and 23 deletions

View File

@@ -6,6 +6,7 @@ from django import forms
from django.forms import ModelForm
from django.dispatch import receiver
from django.forms.widgets import SplitDateTimeWidget
from django.forms.formsets import BaseFormSet
from datetimewidget.widgets import DateTimeWidget
import os
@@ -81,11 +82,95 @@ class Rower(models.Model):
return self.user.username
class FavoriteChart(models.Model):
yparam1 = models.CharField(max_length=50)
yparam2 = models.CharField(max_length=50)
xparam = models.CharField(max_length=50)
user = models.ForeignKey(Rower)
y1params = (
('hr','Heart Rate'),
('pace','Pace'),
('spm','SPM'),
('driveenergy','Work per Stroke'),
('power','Power'),
('drivelength','Drivelength'),
('averageforce','Average Force'),
('peakforce','Peak Force'),
('forceratio','Average/Peak Force Ratio'),
('drivespeed','Drive Speed'),
('wash','Wash'),
('slip','Slip'),
('catch','Catch Angle'),
('finish','Finish Angle'),
('peakforceangle','Peak Force Angle')
)
y2params = (
('hr','Heart Rate'),
('spm','SPM'),
('driveenergy','Work per Stroke'),
('power','Power'),
('drivelength','Drivelength'),
('averageforce','Average Force'),
('peakforce','Peak Force'),
('forceratio','Average/Peak Force Ratio'),
('drivespeed','Drive Speed'),
('wash','Wash'),
('slip','Slip'),
('catch','Catch Angle'),
('finish','Finish Angle'),
('peakforceangle','Peak Force Angle'),
('None','None')
)
xparams = (
('time','Time'),
('distance','Distance'),
('hr','Heart Rate'),
('spm','SPM'),
('driveenergy','Work per Stroke'),
('power','Power'),
('drivelength','Drivelength'),
('averageforce','Average Force'),
('peakforce','Peak Force'),
('forceratio','Average/Peak Force Ratio'),
('drivespeed','Drive Speed'),
('wash','Wash'),
('slip','Slip'),
('catch','Catch Angle'),
('finish','Finish Angle'),
('peakforceangle','Peak Force Angle'),
)
plottypes = (
('line','Line Chart'),
('scatter','Scatter Chart')
)
yparam1 = models.CharField(max_length=50,choices=y1params,verbose_name='Y1')
yparam2 = models.CharField(max_length=50,choices=y2params,verbose_name='Y2')
xparam = models.CharField(max_length=50,choices=xparams,verbose_name='X')
plottype = models.CharField(max_length=50,choices=plottypes,default='line')
user = models.ForeignKey(Rower)
class FavoriteForm(ModelForm):
class Meta:
model = FavoriteChart
fields = ['xparam','yparam1','yparam2','plottype']
class BaseFavoriteFormSet(BaseFormSet):
def clean(self):
if any(self.errors):
return
for form in self.forms:
if form.cleaned_data:
xparam = form.cleaned_data['xparam']
yparam1 = form.cleaned_data['yparam1']
yparam2 = form.cleaned_data['yparam2']
plottype = form.cleaned_data['plottype']
if not xparam:
raise forms.ValidationError(
'Must have x parameter.',
code='missing_xparam'
)
class Workout(models.Model):
workouttypes = (
('water','On-water'),