From f1fe6c2f03e87095fb811e12cdf603fef21839d8 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 9 Jan 2021 13:18:20 +0100 Subject: [PATCH] correcting bugs in gold medal score --- rowers/interactiveplots.py | 25 ++++++++++++++++--------- rowers/templates/analysis.html | 9 +++++---- static/img/goldmedalscores.png | Bin 0 -> 28707 bytes 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 static/img/goldmedalscores.png diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 25eaf03e..4c63f080 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -144,6 +144,7 @@ def all_goldmedalstandards(workouts,startdate,enddate): dates = [] testpowers = [] testduration = [] + ids = [] for w in workouts: goldmedalstandard, goldmedalseconds = dataprep.workout_goldmedalstandard(w) @@ -151,8 +152,9 @@ def all_goldmedalstandards(workouts,startdate,enddate): dates.append(arrow.get(w.date).datetime) testpowers.append(goldmedalstandard) testduration.append(goldmedalseconds) + ids.append(w.id) - return dates,testpowers,testduration + return dates,testpowers,testduration,ids def build_goldmedalstandards(workouts,kfitness): dates = [] @@ -1831,8 +1833,8 @@ def goldmedalscorechart(user,startdate=None,enddate=None): outids = df.mask(mask)['id'].dropna().unique() # all workouts - alldates,alltestpower,allduration = all_goldmedalstandards(workouts,startdate,enddate) - allids = [w.id for w in workouts] + alldates,alltestpower,allduration,allids = all_goldmedalstandards(workouts,startdate,enddate) + nrdays = (enddate-startdate).days @@ -1853,8 +1855,8 @@ def goldmedalscorechart(user,startdate=None,enddate=None): td.append(arrow.get(w.date).datetime) markerscore.append(testpower[i]) markerduration.append(testduration[i]) - score.append(np.nan) - duration.append(np.nan) + score.append(testpower[i]) + duration.append(testduration[i]) workoutid.append(id) for i in range(len(alldates)): @@ -1883,14 +1885,19 @@ def goldmedalscorechart(user,startdate=None,enddate=None): 'id':workoutid, }) + df['url'] = df['id'].apply(lambda x:settings.SITE_URL+'/rowers/workout/{id}/'.format(id=encoder.encode_hex(x))) + df['workout'] = df['id'].apply(lambda x:workoutname(x)) + df.sort_values(['date'],inplace=True) - df = df.groupby(['date']).max() - df['date'] = df.index.values + # find index values where score is max + idx = df.groupby(['date'])['score'].transform(max) == df['score'] + df = df[idx] + + #df = df.groupby(['date']).max() + #df['date'] = df.index.values - df['url'] = df['id'].apply(lambda x:settings.SITE_URL+'/rowers/workout/{id}/'.format(id=encoder.encode_hex(x))) - df['workout'] = df['id'].apply(lambda x:workoutname(x)) source = ColumnDataSource( diff --git a/rowers/templates/analysis.html b/rowers/templates/analysis.html index e5f11295..68579114 100644 --- a/rowers/templates/analysis.html +++ b/rowers/templates/analysis.html @@ -98,14 +98,15 @@

  • -

    Power Progress

    - +

    Marker Workouts

    +
    - Power Progress + Gold Medal Scores

    - Monitoring power duration evidence from all your workouts. Feel free to explore. + See which of your workouts are markers of your fitness, and how your scores + evolve over time.

  • diff --git a/static/img/goldmedalscores.png b/static/img/goldmedalscores.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e00b1c71e8c0f0341e8e672c3f3d53a8d0c7d7 GIT binary patch literal 28707 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