diff --git a/rowers/dataprep.py b/rowers/dataprep.py index c73012b6..e0ac4f61 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -986,7 +986,8 @@ def checkbreakthrough(w, r): coach.user.email, r.user.first_name, r.user.last_name, - btvalues=btvalues.to_json()) + btvalues=btvalues.to_json(), + surname=True) # submit email task to send email about breakthrough workout if ishard: # pragma: no cover diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 771a5d79..6f8e7097 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -4081,6 +4081,7 @@ def interactive_streamchart(id=0, promember=0): def instroke_multi_interactive_chart(selected): df_plot = pd.DataFrame() ids = [analysis.id for analysis in selected] + metrics = list(set([analysis.metric for analysis in selected])) for analysis in selected: #start_second, end_second, spm_min, spm_max, name activeminutesmin = int(analysis.start_second/60.) @@ -4094,6 +4095,8 @@ def instroke_multi_interactive_chart(selected): activeminutesmax=activeminutesmax, ) mean_vals = data.mean() + if len(metrics)>1: + mean_vals = mean_vals/mean_vals.max() xvals = np.arange(len(mean_vals)) xname = 'x_'+str(analysis.id) yname = 'y_'+str(analysis.id) @@ -4124,6 +4127,11 @@ def instroke_multi_interactive_chart(selected): plot.extra_y_ranges = {"watermark": watermarkrange} plot.extra_x_ranges = {"watermark": watermarkrange} + if len(metrics)>1: + plot.yaxis.axis_label = 'Scaled' + else: + plot.yaxis.axis_label = metrics[0] + plot.image_url([watermarkurl], watermarkx, watermarky, watermarkw, watermarkh, global_alpha=watermarkalpha, @@ -4146,7 +4154,13 @@ def instroke_multi_interactive_chart(selected): xname = 'x_'+str(id) yname = 'y_'+str(id) analysis = InStrokeAnalysis.objects.get(id=id) - plot.line(xname,yname,source=source,legend_label=analysis.name, + legendlabel = '{name} - {metric} - {workout}'.format( + name = analysis.name, + metric = analysis.metric, + date = analysis.date, + workout = str(analysis.workout) + ) + plot.line(xname,yname,source=source,legend_label=legendlabel, line_width=2, color=color) script, div = components(plot) diff --git a/rowers/tasks.py b/rowers/tasks.py index 01f5bc7b..b6236ac4 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -1709,11 +1709,17 @@ def handle_sendemail_expired(useremail, userfirstname, userlastname, expireddate def handle_sendemail_breakthrough(workoutid, useremail, userfirstname, userlastname, btvalues=pd.DataFrame().to_json(), + surname=False, **kwargs): btvalues = pd.read_json(btvalues) btvalues.sort_values('delta', axis=0, inplace=True) + lastname = '' + + if surname: + lastname = userlastname + tablevalues = [ {'delta': t.delta, 'time': str(timedelta(seconds=t.delta)), @@ -1728,6 +1734,7 @@ def handle_sendemail_breakthrough(workoutid, useremail, d = { 'first_name': userfirstname, + 'last_name': lastname, 'siteurl': siteurl, 'workoutid': encoder.encode_hex(workoutid), 'btvalues': tablevalues, @@ -1749,6 +1756,7 @@ def handle_sendemail_breakthrough(workoutid, useremail, def handle_sendemail_hard(workoutid, useremail, userfirstname, userlastname, btvalues=pd.DataFrame().to_json(), + surname=False, debug=False, **kwargs): btvalues = pd.read_json(btvalues) @@ -1761,12 +1769,17 @@ def handle_sendemail_hard(workoutid, useremail, } for t in btvalues.itertuples() ] + lastname = '' + if surname: + lastname = userlastname + # send email with attachment subject = "That was a pretty hard workout on rowsandall.com" from_email = 'Rowsandall ' d = { 'first_name': userfirstname, + 'last_name': lastname, 'siteurl': siteurl, 'workoutid': encoder.encode_hex(workoutid), 'btvalues': tablevalues, diff --git a/rowers/templates/breakthroughemail.html b/rowers/templates/breakthroughemail.html index d4280b5c..eb566d1e 100644 --- a/rowers/templates/breakthroughemail.html +++ b/rowers/templates/breakthroughemail.html @@ -1,7 +1,11 @@ {% extends "emailbase.html" %} {% block body %} +{% if last_name %} +

Dear {{ first_name }} {{ last_name }},

+{% else %}

Dear {{ first_name }},

+{% endif %}

Congratulations! Your recent workout has been analyzed diff --git a/rowers/templates/hardemail.html b/rowers/templates/hardemail.html index cf66b7f8..00cb8c73 100644 --- a/rowers/templates/hardemail.html +++ b/rowers/templates/hardemail.html @@ -1,7 +1,11 @@ {% extends "emailbase.html" %} {% block body %} + {% if last_name %} +

Dear {{ first_name }} {{ last_name }},

+ {% else %}

Dear {{ first_name }},

+ {% endif %}

Congratulations! Your recent workout has been analyzed diff --git a/rowers/templates/instroke_analysis.html b/rowers/templates/instroke_analysis.html index d16e352c..cebd95cb 100644 --- a/rowers/templates/instroke_analysis.html +++ b/rowers/templates/instroke_analysis.html @@ -35,7 +35,11 @@

{{ analysis.name }}

+ {% if analysis in selected %} + + {% else %} + {% endif %}