diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 89ec1fb0..106be7bf 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2745,7 +2745,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0, line_dash=[6,6],line_width=2) y2means = y1means - xlabel = Label(x=100,y=130,x_units='screen',y_units='screen', + xlabel = Label(x=50,y=80,x_units='screen',y_units='screen', text=axlabels[xparam]+": {x1mean:6.2f}".format(x1mean=x1mean), background_fill_alpha=.7, background_fill_color='white', @@ -2758,7 +2758,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0, plot.add_layout(y1means) - y1label = Label(x=100,y=100,x_units='screen',y_units='screen', + y1label = Label(x=50,y=50,x_units='screen',y_units='screen', text=axlabels[yparam1]+": {y1mean:6.2f}".format(y1mean=y1mean), background_fill_alpha=.7, background_fill_color='white', @@ -2805,7 +2805,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0, plot.add_layout(y2means) - y2label = Label(x=100,y=70,x_units='screen',y_units='screen', + y2label = Label(x=50,y=20,x_units='screen',y_units='screen', text=axlabels[yparam2]+": {y2mean:6.2f}".format(y2mean=y2mean), background_fill_alpha=.7, background_fill_color='white', @@ -3214,14 +3214,14 @@ def interactive_flex_chart2(id=0,promember=0, except KeyError: xlabeltext = xparam+": {x1mean:6.2f}".format(x1mean=x1mean) - xlabel = Label(x=100,y=130,x_units='screen',y_units='screen', + xlabel = Label(x=50,y=80,x_units='screen',y_units='screen', text=xlabeltext, background_fill_alpha=.7, background_fill_color='white', text_color='green', ) - annolabel = Label(x=100,y=500,x_units='screen',y_units='screen', + annolabel = Label(x=50,y=450,x_units='screen',y_units='screen', text='', background_fill_alpha=0.7, background_fill_color='white', @@ -3247,7 +3247,7 @@ def interactive_flex_chart2(id=0,promember=0, except KeyError: xaxlabel = xparam - y1label = Label(x=100,y=100,x_units='screen',y_units='screen', + y1label = Label(x=50,y=50,x_units='screen',y_units='screen', text=yaxlabel+": {y1mean:6.2f}".format(y1mean=y1mean), background_fill_alpha=.7, background_fill_color='white', @@ -3350,7 +3350,7 @@ def interactive_flex_chart2(id=0,promember=0, plot.add_layout(y2means) - y2label = Label(x=100,y=70,x_units='screen',y_units='screen', + y2label = Label(x=50,y=20,x_units='screen',y_units='screen', text=axlegend+": {y2mean:6.2f}".format(y2mean=y2mean), background_fill_alpha=.7, background_fill_color='white', @@ -3494,8 +3494,8 @@ def interactive_flex_chart2(id=0,promember=0, source2.change.emit(); """) - annotation = TextInput(title="Type your plot notes here", value="", - callback=callback) + annotation = TextInput(title="Type your plot notes here", value="", + callback=callback) callback.args["annotation"] = annotation slider_spm_min = Slider(start=15.0, end=55,value=15.0, step=.1, @@ -3530,14 +3530,15 @@ def interactive_flex_chart2(id=0,promember=0, title="Max Distance",callback=callback) callback.args["maxdist"] = slider_dist_max - thesliders = layoutcolumn([annotation, - slider_spm_min, - slider_spm_max, - slider_dist_min, - slider_dist_max, - slider_work_min, - slider_work_max, - ]) + thesliders = layoutcolumn([ + annotation, + slider_spm_min, + slider_spm_max, + slider_dist_min, + slider_dist_max, + slider_work_min, + slider_work_max, + ]) thesliders.sizing_mode = 'scale_width' diff --git a/rowers/polarstuff.py b/rowers/polarstuff.py index c4cc0ced..dc4f397a 100644 --- a/rowers/polarstuff.py +++ b/rowers/polarstuff.py @@ -124,7 +124,8 @@ def get_polar_notifications(): try: headers = { 'Authorization': 'Basic %s' % base64.b64encode(auth_string) } except TypeError: - headers = { 'Authorization': 'Basic %s' % base64.b64encode(bytes(auth_string,'utf-8')) } + headers = { 'Authorization': 'Basic %s' % base64.b64encode( + bytes(auth_string,'utf-8')).decode('utf-8') } response = requests.get(url, headers=headers) diff --git a/rowers/templates/analysis.html b/rowers/templates/analysis.html index 6b959f44..ee0d3664 100644 --- a/rowers/templates/analysis.html +++ b/rowers/templates/analysis.html @@ -23,6 +23,22 @@ Analyze your Concept2 ranking pieces over a date range and predict your pace on other pieces.

+
  • +

    Compare Workouts

    + {% if team %} + + {% else %} + + {% endif %} +
    + Compare Workouts +
    +
    +

    + Compare two or more of your workouts +

    +
  • Stroke Analysis

    diff --git a/rowers/templates/menu_analytics.html b/rowers/templates/menu_analytics.html index 7d76a4be..86bbd079 100644 --- a/rowers/templates/menu_analytics.html +++ b/rowers/templates/menu_analytics.html @@ -12,6 +12,13 @@  Ranking Pieces
  • +
  • + {% if team %} +  Compare + {% else %} +  Compare + {% endif %} +
  •  CP Chart OTE diff --git a/rowers/templates/menu_workouts.html b/rowers/templates/menu_workouts.html index 64a292d4..dfc2f0cf 100644 --- a/rowers/templates/menu_workouts.html +++ b/rowers/templates/menu_workouts.html @@ -10,9 +10,11 @@
  • {% if team %} -  Compare + +  Compare {% else %} -  Compare + +  Compare {% endif %}
  • diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index b9c699d7..41cf989f 100644 Binary files a/rowers/tests/testdata/testdata.csv.gz and b/rowers/tests/testdata/testdata.csv.gz differ diff --git a/static/img/workoutcompare.png b/static/img/workoutcompare.png new file mode 100644 index 00000000..3b8887f5 Binary files /dev/null and b/static/img/workoutcompare.png differ