diff --git a/rowers/models.py b/rowers/models.py index fb346d1c..da30197d 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -8,6 +8,7 @@ from django.dispatch import receiver from django.forms.widgets import SplitDateTimeWidget from django.forms.formsets import BaseFormSet from datetimewidget.widgets import DateTimeWidget +from django.core.validators import validate_email import os import twitter @@ -85,6 +86,8 @@ class Rower(models.Model): ('lwt','light-weight'), ) user = models.OneToOneField(User) + + # Heart Rate Zone data max = models.IntegerField(default=192,verbose_name="Max Heart Rate") rest = models.IntegerField(default=48,verbose_name="Resting Heart Rate") ut2 = models.IntegerField(default=105,verbose_name="UT2 band lower HR") @@ -92,10 +95,13 @@ class Rower(models.Model): at = models.IntegerField(default=160,verbose_name="AT band lower HR") tr = models.IntegerField(default=167,verbose_name="TR band lower HR") an = models.IntegerField(default=180,verbose_name="AN band lower HR") + + # Weight Category (for sync to C2) weightcategory = models.CharField(default="hwt", max_length=30, choices=weightcategories) + # Power Zone Data ftp = models.IntegerField(default=226,verbose_name="Functional Threshold Power") pw_ut2 = models.IntegerField(default=124,verbose_name="UT2 Power") @@ -111,6 +117,7 @@ class Rower(models.Model): 'Pwr TR', 'Pwr AN']) + # Access tokens c2token = models.CharField(default='',max_length=200,blank=True,null=True) tokenexpirydate = models.DateTimeField(blank=True,null=True) c2refreshtoken = models.CharField(default='',max_length=200,blank=True,null=True) @@ -120,13 +127,19 @@ class Rower(models.Model): blank=True,null=True) stravatoken = models.CharField(default='',max_length=200,blank=True,null=True) + # Plan plans = ( ('basic','basic'), ('pro','pro'), ('coach','coach') ) + rowerplan = models.CharField(default='basic',max_length=30, choices=plans) + + planexpires = models.DateField(default=timezone.now()) + + # Friends/Team friends = models.ManyToManyField("self",blank=True) team = models.ForeignKey(Team,blank=True,null=True) @@ -541,13 +554,28 @@ class RowerPowerZonesForm(ModelForm): raise forms.ValidationError(e) return cleaned_data - + +# Form to set rower's Email and Weight category +class AccountRowerForm(ModelForm): + class Meta: + model = Rower + fields = ['weightcategory'] + +class UserForm(ModelForm): + class Meta: + model = User + fields = ['first_name','last_name','email'] + + + def clean(self): + cleaned_data = super(UserForm, self).clean() + # Form to set rower's Heart Rate zones, including test routines # to enable consistency class RowerForm(ModelForm): class Meta: model = Rower - fields = ['rest','ut2','ut1','at','tr','an','max','weightcategory'] + fields = ['rest','ut2','ut1','at','tr','an','max'] def clean_rest(self): diff --git a/rowers/templates/rower_form.html b/rowers/templates/rower_form.html index 394fe493..90c920e6 100644 --- a/rowers/templates/rower_form.html +++ b/rowers/templates/rower_form.html @@ -3,13 +3,14 @@ {% block title %}Change Rower {% endblock %} {% block content %} -{% if form.errors %} -
- Please correct the error{{ form.errors|pluralize }} below. -
-{% endif %}
+ Please correct the error{{ form.errors|pluralize }} below. +
+ {% endif %}