From eaace7c42656a0219f6aa13f033b70c7bc4e5f04 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 3 May 2020 09:09:42 +0200 Subject: [PATCH 1/2] updated requirements.txt --- requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index e6eda95f..d08e1fed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ braintree==3.55.0 cairocffi==1.0.2 celery==4.3.0 certifi==2019.3.9 -cffi==1.12.2 +cffi==1.14.0 chardet==3.0.4 Click==7.0 cloudpickle==1.2.2 @@ -126,7 +126,7 @@ nose==1.3.7 nose-parameterized==0.6.0 notebook==5.7.6 numba==0.46.0 -numpy==1.16.2 +numpy==1.18.3 oauth2==1.9.0.post1 oauthlib==3.0.1 openapi-codec==1.3.2 @@ -175,11 +175,11 @@ ratelim==0.1.6 redis==3.2.1 requests==2.21.0 requests-oauthlib==1.2.0 -rowingdata==2.8.3 +rowingdata==2.8.4 rowingphysics==0.5.0 rq==0.13.0 rules==2.1 -scipy==1.4.1 +scipy==1.2.1 SecretStorage==3.1.1 Send2Trash==1.5.0 shell==1.0.1 From 0f3d697057c25bdd93ecc5a9b0b5598c4950cd75 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 3 May 2020 11:11:18 +0200 Subject: [PATCH 2/2] adding grid user settings --- rowers/models.py | 20 ++++++++++++++++++++ rowers/tasks.py | 24 ++++++++++++------------ rowers/templates/favoritecharts.html | 17 +++++++++++++++-- rowers/templates/menu_profile.html | 2 +- rowers/uploads.py | 9 ++++++++- rowers/views/statements.py | 2 +- rowers/views/userviews.py | 11 ++++++++++- 7 files changed, 67 insertions(+), 18 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index d63af15c..c89fcb9d 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -697,6 +697,14 @@ class Rower(models.Model): ('Workout','Workout'), ('Yoga','Yoga'), ) + + gridtypes = ( + ('none',None), + ('both','both'), + ('x','x'), + ('y','y'), + ) + user = models.OneToOneField(User,on_delete=models.CASCADE) #billing details @@ -880,6 +888,10 @@ class Rower(models.Model): showfavoritechartnotes = models.BooleanField(default=True, verbose_name='Show Notes for Favorite Charts') + # Static chart settings + staticgrids = models.CharField(default=None,choices=gridtypes,null=True,max_length=50, + verbose_name='Chart Grid') + def __str__(self): return self.user.first_name+' '+self.user.last_name @@ -3438,7 +3450,15 @@ class AccountRowerForm(ModelForm): if 'coach' not in self.instance.rowerplan: self.fields.pop('offercoaching') +# Form to set static chart settings +class StaticChartRowerForm(ModelForm): + class Meta: + model = Rower + fields = ['staticgrids'] + def __init__(self, *args, **kwargs): + super(StaticChartRowerForm, self).__init__(*args, **kwargs) + self.fields['staticgrids'].required = False class UserForm(ModelForm): diff --git a/rowers/tasks.py b/rowers/tasks.py index bf502f43..7f3ff101 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -1902,34 +1902,34 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename, row.df = df nr_rows = len(row.df) if (plotnr == 1): - fig1 = row.get_timeplot_erg(t) + fig1 = row.get_timeplot_erg(t,**kwargs) elif (plotnr == 2): - fig1 = row.get_metersplot_erg(t) + fig1 = row.get_metersplot_erg(t,**kwargs) elif (plotnr == 3): t += ' - Heart Rate Distribution' - fig1 = row.get_piechart(t) + fig1 = row.get_piechart(t,**kwargs) elif (plotnr == 4): if haspower: - fig1 = row.get_timeplot_otwempower(t) + fig1 = row.get_timeplot_otwempower(t,**kwargs) else: - fig1 = row.get_timeplot_otw(t) + fig1 = row.get_timeplot_otw(t,**kwargs) elif (plotnr == 5): if haspower: - fig1 = row.get_metersplot_otwempower(t) + fig1 = row.get_metersplot_otwempower(t,**kwargs) else: - fig1 = row.get_metersplot_otw(t) + fig1 = row.get_metersplot_otw(t,**kwargs) elif (plotnr == 6): t += ' - Heart Rate Distribution' - fig1 = row.get_piechart(t) + fig1 = row.get_piechart(t,**kwargs) elif (plotnr == 7) or (plotnr == 10): - fig1 = row.get_metersplot_erg2(t) + fig1 = row.get_metersplot_erg2(t,**kwargs) elif (plotnr == 8) or (plotnr == 11): - fig1 = row.get_timeplot_erg2(t) + fig1 = row.get_timeplot_erg2(t,**kwargs) elif (plotnr == 9) or (plotnr == 12): - fig1 = row.get_time_otwpower(t) + fig1 = row.get_time_otwpower(t,**kwargs) elif (plotnr == 13) or (plotnr == 16): t += ' - Power Distribution' - fig1 = row.get_power_piechart(t) + fig1 = row.get_power_piechart(t,**kwargs) if fig1 is None: return 0 diff --git a/rowers/templates/favoritecharts.html b/rowers/templates/favoritecharts.html index 63fc02e5..bdb933ee 100644 --- a/rowers/templates/favoritecharts.html +++ b/rowers/templates/favoritecharts.html @@ -1,8 +1,21 @@ {% extends "newbase.html" %} -{% block title %}Change Favorite Charts{% endblock %} +{% block title %}Change Charts Settings {% endblock %} {% block main %} +

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

+ +

+

+ {% csrf_token %} + + {{ staticchartform.as_table }} +
+ +
+

+ +

Change Favorite Charts of {{ rower.user.first_name }} {{ rower.user.last_name }}

@@ -10,7 +23,7 @@ {% csrf_token %}
  • -

    +

    {{ favorites_formset.management_form }}
  • diff --git a/rowers/templates/menu_profile.html b/rowers/templates/menu_profile.html index 05cf98f1..f775ce94 100644 --- a/rowers/templates/menu_profile.html +++ b/rowers/templates/menu_profile.html @@ -19,7 +19,7 @@
  • -  Favorite Charts +  Charts Settings
  • diff --git a/rowers/uploads.py b/rowers/uploads.py index 7992b0c1..8450d3e8 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -441,6 +441,13 @@ def make_plot(r,w,f1,f2,plottype,title,imagename='',plotnr=0): 'pieplot':3, } + axis = r.staticgrids + if axis == None: + gridtrue = False + axis = 'both' + else: + gridtrue = True + if plotnr == 0: plotnr = plotnrs[plottype] @@ -450,7 +457,7 @@ def make_plot(r,w,f1,f2,plottype,title,imagename='',plotnr=0): job = myqueue(queuehigh,handle_makeplot,f1,f2, title,hrpwrdata, - plotnr,imagename) + plotnr,imagename,gridtrue=gridtrue,axis=axis) try: width,height = Image.open(fullpathimagename).size diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 98748756..18e6cd84 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -127,7 +127,7 @@ from rowers.models import ( VirtualRaceForm,VirtualRaceResultForm,RowerImportExportForm, IndoorVirtualRaceResultForm,IndoorVirtualRaceResult, IndoorVirtualRaceForm,PlannedSessionCommentForm, - Alert, Condition + Alert, Condition, StaticChartRowerForm ) from rowers.models import ( FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement,BasePlannedSessionFormSet, diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index c38422ab..f2e93158 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -220,6 +220,9 @@ def rower_favoritecharts_view(request,userid=0): message = '' successmessage = '' r = getrequestrower(request,userid=userid,notpermanent=True) + + staticchartform = StaticChartRowerForm(instance=r) + favorites = FavoriteChart.objects.filter(user=r).order_by('id') aantal = len(favorites) favorites_data = [{'yparam1':f.yparam1, @@ -234,8 +237,13 @@ def rower_favoritecharts_view(request,userid=0): if aantal==0: FavoriteChartFormSet = formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=1) + if request.method == 'POST' and 'staticgrids' in request.POST: + staticchartform = StaticChartRowerForm(request.POST,instance=r) + if staticchartform.is_valid(): + r.staticgrids = staticchartform.cleaned_data.get('staticgrids') + r.save() - if request.method == 'POST': + if request.method == 'POST' and 'form-TOTAL_FORMS' in request.POST: favorites_formset = FavoriteChartFormSet(request.POST) if favorites_formset.is_valid(): new_instances = [] @@ -275,6 +283,7 @@ def rower_favoritecharts_view(request,userid=0): 'favorites_formset':favorites_formset, 'teams':get_my_teams(request.user), 'rower':r, + 'staticchartform':staticchartform, }