From 9eb65f5b2682d8bd7cbec1df5d94bb05f6c1a82f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 31 Oct 2022 19:09:50 +0100 Subject: [PATCH 1/2] fix quiske --- rowers/interactiveplots.py | 11 ++++++++--- rowers/templates/instroke_interactive.html | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 87a7ec9c..4d12d4fc 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -4209,7 +4209,7 @@ def forcecurve_multi_interactive_chart(selected): return (script, div) def instroke_multi_interactive_chart(selected, *args, **kwargs): - + df_plot = pd.DataFrame() ids = [analysis.id for analysis in selected] metrics = list(set([analysis.metric for analysis in selected])) @@ -4318,7 +4318,7 @@ def instroke_interactive_chart(df,metric, workout, spm_min, spm_max, df_pos = (df+abs(df))/2. df_min = -(-df+abs(-df))/2. - mean_vals = df.median() + mean_vals = df.median().replace(0, np.nan) q75 = df_pos.quantile(q=0.75).replace(0,np.nan) q25 = df_pos.quantile(q=0.25).replace(0,np.nan) q75min = df_min.quantile(q=0.75).replace(0,np.nan) @@ -4453,7 +4453,12 @@ def instroke_interactive_chart(df,metric, workout, spm_min, spm_max, plot.add_tools(HoverTool(tooltips=TIPS)) - script, div = components(plot) + try: + script, div = components(plot) + except ValueError: + script = "" + div = "Something went wrong with the chart" + return (script, div) diff --git a/rowers/templates/instroke_interactive.html b/rowers/templates/instroke_interactive.html index 44e599a0..a7a42a44 100644 --- a/rowers/templates/instroke_interactive.html +++ b/rowers/templates/instroke_interactive.html @@ -89,6 +89,7 @@ $( function() { range: true, min: 0, max: {{ maxminutes }}, + step: 0.1, values: [ {{ activeminutesmin }}, {{ activeminutesmax }} ], slide: function( event, ui ) { $( "#amount" ).val(ui.values[ 0 ] + " min - " + ui.values[ 1 ] + " min " ); From 79204c0b5bc30b0390a1dbaaeb6f7e3b9c7fa9e7 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 31 Oct 2022 19:29:39 +0100 Subject: [PATCH 2/2] smooth time slider --- rowers/forms.py | 4 ++-- rowers/interactiveplots.py | 6 +++--- rowers/templates/instroke_interactive.html | 23 ++++++++++++++-------- rowers/templatetags/rowerfilters.py | 3 +++ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index 02f970a6..805abc7b 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -156,9 +156,9 @@ class InstrokeForm(forms.Form): required=False) spm_min = forms.IntegerField(initial=15,label='SPM Min',widget=HiddenInput) spm_max = forms.IntegerField(initial=45,label='SPM Max',widget=HiddenInput) - activeminutesmin = forms.IntegerField( + activeminutesmin = forms.FloatField( required=False, initial=0, widget=forms.HiddenInput()) - activeminutesmax = forms.IntegerField( + activeminutesmax = forms.FloatField( required=False, initial=0, widget=forms.HiddenInput()) notes = forms.CharField(required=False, max_length=200, label='Notes', diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 4d12d4fc..a239928a 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -4404,9 +4404,9 @@ def instroke_interactive_chart(df,metric, workout, spm_min, spm_max, text_color='black', ) - s2 = 'Time: {activeminutesmin} - {activeminutesmax} min'.format( - activeminutesmin=activeminutesmin, - activeminutesmax=activeminutesmax + s2 = 'Time: {activeminutesmin} - {activeminutesmax}'.format( + activeminutesmin=datetime.timedelta(seconds=60*activeminutesmin), + activeminutesmax=datetime.timedelta(seconds=60*activeminutesmax) ) label2 = Label(x=50,y=400, x_units='screen', y_units='screen', diff --git a/rowers/templates/instroke_interactive.html b/rowers/templates/instroke_interactive.html index a7a42a44..cad3bd0e 100644 --- a/rowers/templates/instroke_interactive.html +++ b/rowers/templates/instroke_interactive.html @@ -83,22 +83,29 @@ $( function() { }); {% endblock %} diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py index ba04a374..a1e234ab 100644 --- a/rowers/templatetags/rowerfilters.py +++ b/rowers/templatetags/rowerfilters.py @@ -393,6 +393,9 @@ def aantalcomments(workout): return aantalcomments +@register.filter +def times60(s): + return s*60 @register.filter def encode(id):