From 64b9a372f87a0816a86f78e15b8ea8cb77359e76 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 5 Jan 2021 08:07:39 +0100 Subject: [PATCH 1/2] slightly faster - initial load still slow --- rowers/interactiveplots.py | 4 ++-- rowers/views/analysisviews.py | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 45a217a5..a843119b 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -106,7 +106,7 @@ from pandas.core.groupby.groupby import DataError def newtestpower(x): try: - if abs(x['testpower'] - x['testdup']) < 1: + if abs(x['testpower'] - x['testdup']) < 0.2: return np.nan except (AttributeError,TypeError): return np.nan @@ -198,7 +198,7 @@ def build_goldmedalstandards(workouts,kfitness): # fitnesses.append(np.nan) for w in workouts: - ids = [w.id for w in workouts.filter(date__gte=w.date-datetime.timedelta(days=90), + ids = [w.id for w in workouts.filter(date__gte=w.date-datetime.timedelta(days=42), date__lte=w.date)] diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 4db01213..b4923355 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -1652,15 +1652,26 @@ def performancemanager_view(request,userid=0,mode='rower', 'dofatigue':dofatigue, }) - script, thediv, endfitness, endfatigue, endform, ids = performance_chart( - theuser,startdate=startdate,enddate=enddate, - kfitness = kfitness, - kfatigue = kfatigue, - metricchoice = metricchoice, - doform = doform, - dofatigue = dofatigue, - showtests = True, - ) + if not is_ajax: + script, thediv, endfitness, endfatigue, endform, ids = performance_chart( + theuser,startdate=startdate,enddate=enddate, + kfitness = kfitness, + kfatigue = kfatigue, + metricchoice = metricchoice, + doform = doform, + dofatigue = dofatigue, + showtests = True, + ) + else: + script, thediv, endfitness, endfatigue, endform, ids = performance_chart( + theuser,startdate=startdate,enddate=enddate, + kfitness = kfitness, + kfatigue = kfatigue, + metricchoice = metricchoice, + doform = doform, + dofatigue = dofatigue, + showtests = False, + ) ids = pd.Series(ids).dropna().values From 5a6db2e64ac07feb9cbe5e51727e438bb46c331f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 5 Jan 2021 19:37:12 +0100 Subject: [PATCH 2/2] bug fix --- rowers/dataprep.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index ceb22158..21739f73 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1200,7 +1200,10 @@ def fetchcp_new(rower,workouts): if len(data)>1: df = pd.concat(data,axis=0) - df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')] + try: + df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')] + except KeyError: + pd.Series(),pd.Series(),0,pd.DataFrame() df = df.sort_values(['delta']).reset_index() @@ -1216,7 +1219,7 @@ def setcp(workout,background=False,recurrance=True): return pd.DataFrame(),pd.Series(),pd.Series() except KeyError: return pd.DataFrame(),pd.Series(),pd.Series() - + if background: job = myqueue(queuelow,handle_setcp,strokesdf,filename,workout.id) return pd.DataFrame({'delta':[],'cp':[]}),pd.Series(),pd.Series()