From 5fb936ab90227c6a7adbb6df7212498b87dc4499 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 7 Jun 2021 09:31:45 +0200 Subject: [PATCH] adding training zones links to analysis page and menu --- rowers/tasks.py | 10 +++++----- rowers/templates/analysis.html | 11 +++++++++++ rowers/templates/menu_analytics.html | 5 +++++ static/img/zones.png | Bin 0 -> 3427 bytes static/img/zones2.png | Bin 0 -> 4523 bytes 5 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 static/img/zones.png create mode 100644 static/img/zones2.png diff --git a/rowers/tasks.py b/rowers/tasks.py index c1e2c228..f3ae7b04 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3045,7 +3045,7 @@ def df_from_summary(data): try: splits = data['workout']['splits'] - except KeyError: # pragma: no cover + except (KeyError, TypeError): # pragma: no cover splits = [0] time = starttimeunix elapsed_distance = 0 @@ -3053,11 +3053,11 @@ def df_from_summary(data): distances = [0] try: spms = [splits[0]['stroke_rate']] - except KeyError: # pragma: no cover + except (KeyError, TypeError): # pragma: no cover spms = [0] try: hrs = [splits[0]['heart_rate']['average']] - except KeyError: # pragma: no cover + except (KeyError, TypeError): # pragma: no cover hrs = [0] for split in splits: @@ -3068,7 +3068,7 @@ def df_from_summary(data): spms.append(split['stroke_rate']) try: hrs.append(split['heart_rate']['average']) - except KeyError: # pragma: no cover + except (KeyError, TypeError): # pragma: no cover hrs.append(0) df = pd.DataFrame({ @@ -3161,7 +3161,7 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone if not has_strokedata: # pragma: no cover df = df_from_summary(data) else: - dologging('debuglog.log',json.dumps(s.json())) + #dologging('debuglog.log',json.dumps(s.json())) strokedata = pd.DataFrame.from_dict(s.json()['data']) diff --git a/rowers/templates/analysis.html b/rowers/templates/analysis.html index d77796f8..d19304a9 100644 --- a/rowers/templates/analysis.html +++ b/rowers/templates/analysis.html @@ -108,6 +108,17 @@ See which of your workouts are markers of your fitness, and how your scores evolve over time.

+ +
  • +

    Training Zones

    + +
    + Zones +
    +
    +

    + See in what training zone you have been training in the past weeks and months. +

  • Alerts

    diff --git a/rowers/templates/menu_analytics.html b/rowers/templates/menu_analytics.html index 0f12d35d..5ef13f6f 100644 --- a/rowers/templates/menu_analytics.html +++ b/rowers/templates/menu_analytics.html @@ -57,6 +57,11 @@  Ranking Pieces
  • +
  • + +  Training Zones + +
  • diff --git a/static/img/zones.png b/static/img/zones.png new file mode 100644 index 0000000000000000000000000000000000000000..3bfae34a7b41fb22d2a1c8b69f2e2ae48b13809b GIT binary patch literal 3427 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 literal 0 HcmV?d00001 diff --git a/static/img/zones2.png b/static/img/zones2.png new file mode 100644 index 0000000000000000000000000000000000000000..8abf3acd81d8c3b19db90f1053d7d816fb18003c GIT binary patch literal 4523 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 literal 0 HcmV?d00001