From 195df1d25a27065ae370dc4c91f3b2174b6d4489 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 25 Feb 2021 21:29:40 +0100 Subject: [PATCH] now understands repetition --- rowers/plannedsessions.py | 102 +++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index aeee927f..f2308576 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -17,7 +17,7 @@ import pytz from dateutil import parser from rowers.utils import myqueue,calculate_age,totaltime_sec_to_string from rowers.rows import handle_uploaded_file - +import collections import re import django_rq queue = django_rq.get_queue('default') @@ -82,40 +82,9 @@ from rowers.utils import totaltime_sec_to_string def step_to_string(step): - print(step) - target_dict = { - 'HeartRate': { - 'name':'Heart Rate between', - 'low': 'custom_target_power_low', - 'high': 'custom_target_power_high', - }, - 'Speed':{ - 'name': 'Speed between', - 'low': 'custom_target_power_low', - 'high': 'custom_target_power_high', - }, - 'Cadence':{ - 'name': 'SPM between', - 'low': 'custom_target_power_low', - 'high': 'custom_target_power_high', - }, - 'Open':{ - 'name': 'between', - 'low': 'targetValueLow', - 'high': 'targetValueHigh', - }, - 'Power':{ - 'name': 'Power between', - 'low': 'custom_target_power_low', - 'high': 'custom_target_power_high', - }, - 'SwimStroke':{ - 'name': 'Stroke type', - 'low': 'target_swim_stroke', - 'high': '', - }, - } + type = 'Step' + repeatID = -1 nr = 0 name = '' @@ -148,6 +117,11 @@ def step_to_string(step): duration = 'until heart rate greater than {v}% of max'.format(v=value) else: duration = 'until heart rate greater than {v}'.format(v=value-100) + elif durationtype == 'RepeatUntilStepsCmplt': + type = 'RepeatStep' + ntimes = str(step['targetValue'])+' times:' + repeatID = step['durationValue'] + duration =ntimes targettype = step['targetType'] @@ -200,7 +174,8 @@ def step_to_string(step): intensity = step['intensity'] - s = '{nr}: {name} {intensity} {duration} {unit} {target} {repeat}'.format( + + s = '{name} {intensity} {duration} {unit} {target} {repeat}'.format( nr = nr, name = name, unit=unit, @@ -210,24 +185,69 @@ def step_to_string(step): repeat = repeat, ) - return s + if type == 'RepeatStep': + s = 'Repeat {duration}'.format(duration=duration) + + return s,type, nr, repeatID def ps_dict_get_description(d): - s = '' + sdict = {} steps = d['steps'] for step in steps: - s += step_to_string(step) - s += '\n' + sstring, type, stepID, repeatID = step_to_string(step) + + sdict[stepID] = { + 'string':sstring, + 'type':type, + 'stepID': stepID, + 'repeatID': repeatID, + } + + s += sstring+'\n' return s def ps_dict_get_description_html(d): - s = '