From 8966dfec9279b80ee9e2baf04dd90de4463b8957 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 28 May 2021 13:18:53 +0200 Subject: [PATCH] fix --- rowers/interactiveplots.py | 64 +++++++++++++++++++++-------- rowers/templates/trainingzones.html | 18 +++++++- rowers/views/analysisviews.py | 15 +++++-- 3 files changed, 76 insertions(+), 21 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 3cb67bd8..5ef7b657 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -6566,6 +6566,7 @@ def get_zones_report(rower,startdate,enddate): dates = [] dates_sorting = [] minutes = [] + hours = [] zones = [] workouts = Workout.objects.filter( @@ -6608,7 +6609,8 @@ def get_zones_report(rower,startdate,enddate): dates.append(dd3) dates_sorting.append(dd3) minutes.append(timeinzone) - zones.append('= 30: + df.drop('minutes',inplace=True,axis='columns') + else: + df.drop('hours',inplace=True,axis='columns') + source = ColumnDataSource(df) @@ -6723,19 +6758,14 @@ def interactive_zoneschart(data,startdate,enddate): hv.extension('bokeh') - table = hv.Table(df,[ - ('date','Date'), - ('minutes','minutes'), - ('zones','zones')] - ) - - bars = hv.Bars(df, kdims = ['date','zones']).aggregate(function=np.sum) + bars = hv.Bars(df, kdims = ['date','zones']).aggregate(function=np.sum).redim.values(zones=zones_order) #bars = table.to.bars(['date','zones'],['minutes']) bars.opts( - opts.Bars(cmap=colors,show_legend=True,stacked=True, + opts.Bars(cmap=color_map,show_legend=True,stacked=True, tools=['tap','hover'],width=550,xrotation=45,padding=(0,(0,.1)), - legend_position='bottom',show_frame=False) + legend_position='bottom', + show_frame=False) ) p = hv.render(bars) diff --git a/rowers/templates/trainingzones.html b/rowers/templates/trainingzones.html index ccf4051a..35265ff9 100644 --- a/rowers/templates/trainingzones.html +++ b/rowers/templates/trainingzones.html @@ -15,16 +15,32 @@

Training Zones

+ + + {{ the_script | safe }}
  • -
    +
    {{ the_div|safe }}
  • +
  • +

    +

    + {% csrf_token %} + + {{ form.as_table }} +
    + +
    +

    +
+ + {% endblock %} {% block scripts %} diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 3641bce5..356950a9 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -1061,14 +1061,22 @@ def trainingzones_view(request,userid=0,mode='rower', r = getrequestrower(request,userid=userid) - startdate,enddate = get_dates_timeperiod(request) + enddate = timezone.now() - startdate = enddate-datetime.timedelta(days=29) + startdate = enddate-datetime.timedelta(days=365) + + form = DateRangeForm() + if request.method == 'POST': + form = DateRangeForm(request.POST) + if form.is_valid(): + startdate = form.cleaned_data['startdate'] + enddate = form.cleaned_data['enddate'] + data = get_zones_report(r,startdate,enddate) - script, div = interactive_zoneschart(data,startdate,enddate) + script, div = interactive_zoneschart(r,data,startdate,enddate) breadcrumbs = [ { @@ -1088,6 +1096,7 @@ def trainingzones_view(request,userid=0,mode='rower', 'rower':r, 'the_script':script, 'the_div':div, + 'form':form, } )