diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index b3be3b10..5273b2de 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -85,7 +85,7 @@ import rowers.dataprep as dataprep import rowers.metrics as metrics import rowers.c2stuff as c2stuff -from rowers.metrics import axes,axlabels,yaxminima,yaxmaxima +from rowers.metrics import axes,axlabels,yaxminima,yaxmaxima,get_yaxminima,get_yaxmaxima from rowers.utils import lbstoN from rowers.datautils import p0 @@ -4418,7 +4418,8 @@ def interactive_flex_chart2(id,r,promember=0, yparam1='pace', yparam2='hr', plottype='line', - workstrokesonly=False): + workstrokesonly=False, + mode='rower'): watermarkurl = "/static/img/logo7.png" watermarksource = ColumnDataSource(dict( @@ -4535,8 +4536,8 @@ def interactive_flex_chart2(id,r,promember=0, xaxmin = rowdata['x1'].min() else: try: - xaxmax = yaxmaxima[xparam] - xaxmin = yaxminima[xparam] + xaxmax = get_yaxmaxima(r,xparam,mode) + xaxmin = get_yaxminima(r,xparam,mode) except KeyError: xaxmax = rowdata['x1'].max() xaxmin = rowdata['x1'].min() @@ -4733,8 +4734,8 @@ def interactive_flex_chart2(id,r,promember=0, try: - yrange1 = Range1d(start=yaxminima[yparam1], - end=yaxmaxima[yparam1]) + yrange1 = Range1d(start=get_yaxminima(r,yparam1,mode), + end=get_yaxmaxima(r,yparam1,mode)) except KeyError: yrange1 = Range1d(start=rowdata[yparam1].min(), end=rowdata[yparam1].max()) @@ -4743,8 +4744,8 @@ def interactive_flex_chart2(id,r,promember=0, if (xparam != 'time') and (xparam != 'distance') and (xparam != 'cumdist'): try: - xrange1 = Range1d(start=yaxminima[xparam], - end=yaxmaxima[xparam]) + xrange1 = Range1d(start=get_yaxminima(r,xparam,mode), + end=get_yaxmaxima(r,xparam,mode)) except KeyError: xrange1 = Range1d(start=rowdata[xparam].min(), end=rowdata[xparam].max()) @@ -4773,8 +4774,8 @@ def interactive_flex_chart2(id,r,promember=0, if yparam2 != 'None': try: - yrange2 = Range1d(start=yaxminima[yparam2], - end=yaxmaxima[yparam2]) + yrange2 = Range1d(start=get_yaxminima(r,yparam2,mode), + end=get_yaxmaxima(r,yparam2,mode)) except KeyError: yrange2 = Range1d(start=rowdata[yparam2].min(), end=rowdata[yparam2].max()) diff --git a/rowers/metrics.py b/rowers/metrics.py index ab32687b..9b86d3ce 100644 --- a/rowers/metrics.py +++ b/rowers/metrics.py @@ -12,6 +12,7 @@ from scipy import optimize from django.utils import timezone from math import log10 +from rowers.mytypes import otwtypes,otetypes nometrics = [ 'originalvelo', @@ -361,6 +362,26 @@ yaxminima = {ax[0]:ax[2] for ax in axes} yaxmaxima = {ax[0]:ax[3] for ax in axes} +def get_yaxminima(r,metric,mode): + if metric == 'pace': + if mode in otetypes: + return r.slowpaceerg + else: + return r.slowpaceotw + + return yaxminima[metric] + +def get_yaxmaxima(r,metric,mode): + if metric == 'pace': + if mode in otetypes: + return r.fastpaceerg + else: + return r.fastpaceotw + + return yaxmaxima[metric] + + + defaultfavoritecharts = ( { 'yparam1':'pace', diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index dcbc1a91..fd91c6ef 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3839,7 +3839,7 @@ def workout_flexchart3_view(request,*args,**kwargs): xparam=xparam,yparam1=yparam1, yparam2=yparam2, promember=promember,plottype=plottype, - workstrokesonly=workstrokesonly + workstrokesonly=workstrokesonly,mode=row.workouttype ) axchoicesbasic = {ax[0]:ax[1] for ax in axes if ax[4]=='basic'}