diff --git a/rowers/models.py b/rowers/models.py index 51caddf5..8477e466 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -879,6 +879,25 @@ class Rower(models.Model): surveydone = models.BooleanField(default=False) surveydonedate = models.DateTimeField(blank=True,null=True) + birthdate = models.DateField(null=True,blank=True) + emailalternatives = AlternativeEmails(default=[],null=True,blank=True,verbose_name='Alternative Email addresses (separate with ",")') + + + emailbounced = models.BooleanField(default=False, + verbose_name='Email Address Bounced') + + getimportantemails = models.BooleanField(default=True, + verbose_name='Get Important Emails') + + + sex = models.CharField(default="not specified", + max_length=30, + choices=sexcategories) + + adaptiveclass = models.CharField(choices=adaptivetypes,max_length=50, + default='None', + verbose_name='Adaptive Classification') + # Heart Rate Zone data max = models.IntegerField(default=192,verbose_name="Max Heart Rate") @@ -895,15 +914,6 @@ class Rower(models.Model): max_length=30, choices=weightcategories) - sex = models.CharField(default="not specified", - max_length=30, - choices=sexcategories) - - adaptiveclass = models.CharField(choices=adaptivetypes,max_length=50, - default='None', - verbose_name='Adaptive Classification') - - birthdate = models.DateField(null=True,blank=True) # Power Zone Data ftp = models.IntegerField(default=226,verbose_name="Functional Threshold Power") @@ -951,7 +961,6 @@ class Rower(models.Model): 'TR', 'AN','max']) - emailalternatives = AlternativeEmails(default=[],null=True,blank=True,verbose_name='Alternative Email addresses (separate with ",")') # Site Settings workflowleftpanel = TemplateListField(default=defaultleft) @@ -1024,11 +1033,6 @@ class Rower(models.Model): getemailnotifications = models.BooleanField(default=False, verbose_name='Receive email notifications') - emailbounced = models.BooleanField(default=False, - verbose_name='Email Address Bounced') - - getimportantemails = models.BooleanField(default=True, - verbose_name='Get Important Emails') # Friends/Team @@ -1049,7 +1053,7 @@ class Rower(models.Model): showfavoritechartnotes = models.BooleanField(default=True, verbose_name='Show Notes for Favorite Charts') - # Static chart settings + # Static chart and data settings staticgrids = models.CharField(default='both',choices=gridtypes,null=True,max_length=50, verbose_name='Chart Grid') @@ -1073,6 +1077,8 @@ class Rower(models.Model): max_length=100, verbose_name='Generate a static chart automatically on upload') + dosmooth = models.BooleanField(default=True,verbose_name='Savitzky-Golay Filter (recommended)') + # Auto Join autojoin = models.BooleanField(default=False,verbose_name='Auto Join Workout Segments') @@ -4234,6 +4240,10 @@ class StaticChartRowerForm(ModelForm): super(StaticChartRowerForm, self).__init__(*args, **kwargs) self.fields['staticgrids'].required = False +class DataRowerForm(ModelForm): + class Meta: + model = Rower + fields = ['dosmooth','autojoin'] class UserForm(ModelForm): class Meta: diff --git a/rowers/templates/favoritecharts.html b/rowers/templates/favoritecharts.html index 1971731f..b29a5bbc 100644 --- a/rowers/templates/favoritecharts.html +++ b/rowers/templates/favoritecharts.html @@ -3,6 +3,25 @@ {% block title %}Change Charts Settings {% endblock %} {% block main %} +

Data Treatment Settings of {{ rower.user.first_name }} {{ rower.user.last_name }}

+ +

It is recommended to leave this to default settings

+ +

+

+ {% csrf_token %} + + {{ datasettingsform.as_table }} +
+

+ +

+

+ +

+
+

+

Charts Settings of {{ rower.user.first_name }} {{ rower.user.last_name }}

diff --git a/rowers/utils.py b/rowers/utils.py index 5452f321..7fb7257f 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -991,8 +991,10 @@ def step_to_string(step): name = step['wkt_step_name'] + notes = '' try: - notes = ' - '+step['description'] + if len(step['description']): + notes = ' - '+step['description'] except KeyError: notes = '' diff --git a/rowers/views/statements.py b/rowers/views/statements.py index be74a026..572b3f97 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -133,7 +133,7 @@ from rowers.models import ( IndoorVirtualRaceResultForm,IndoorVirtualRaceResult, IndoorVirtualRaceForm,PlannedSessionCommentForm, Alert, Condition, StaticChartRowerForm, - FollowerForm,VirtualRaceAthleteForm,InstantPlanForm, + FollowerForm,VirtualRaceAthleteForm,InstantPlanForm,DataRowerForm ) from rowers.models import ( FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement,BasePlannedSessionFormSet, diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index d9069f82..06a998e1 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -213,6 +213,7 @@ def start_plantrial_view(request): return HttpResponseRedirect(url) + # Page where user can manage his favorite charts @login_required() @permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True) @@ -222,6 +223,7 @@ def rower_favoritecharts_view(request,userid=0): r = getrequestrowercoachee(request,userid=userid,notpermanent=True) staticchartform = StaticChartRowerForm(instance=r) + datasettingsform = DataRowerForm(instance=r) favorites = FavoriteChart.objects.filter(user=r).order_by('id') aantal = len(favorites) @@ -250,6 +252,24 @@ def rower_favoritecharts_view(request,userid=0): r.usersmooth = staticchartform.cleaned_data.get('usersmooth') r.save() + print(request.POST) + if request.method == 'POST' and 'save_data' in request.POST: + datasettingsform = DataRowerForm(request.POST,instance=r) + if datasettingsform.is_valid(): + cd = datasettingsform.cleaned_data + r.autojoin = cd.get('autojoin') + r.dosmooth = cd.get('dosmooth') + r.save() + messages.info(request,"We have updated your data settings") + + if request.method == 'POST' and 'defaults_data' in request.POST: + defaultsmooth = Rower._meta.get_field('dosmooth').get_default() + defaultautojoin = Rower._meta.get_field('autojoin').get_default() + r.dosmooth = defaultsmooth + r.autojoin = defaultautojoin + datasettingsform = DataRowerForm(instance=r) + messages.info(request,"We have reset your data settings to the default values") + if request.method == 'POST' and 'form-TOTAL_FORMS' in request.POST: favorites_formset = FavoriteChartFormSet(request.POST) if favorites_formset.is_valid(): @@ -291,6 +311,7 @@ def rower_favoritecharts_view(request,userid=0): 'teams':get_my_teams(request.user), 'rower':r, 'staticchartform':staticchartform, + 'datasettingsform':datasettingsform, }