diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 7e8926dc..8081d0e6 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/utils.py b/rowers/utils.py index 9ec563ad..a77e3fd8 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -721,6 +721,8 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones else: velomid = avgspeed + distance = velomid*seconds + veloratio = (velomid/ftv)**(3.0) rscoreperhour = 100.*veloratio rscore = rscoreperhour*seconds/3600. @@ -744,7 +746,7 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones avgpower = targetpower if valuelow != 0 and valuehigh != 0: # pragma: no cover avgpower = (valuelow+valuehigh)/2. - avgspeed = ftv*(avgspeed/ftv)**(1./3.) + avgspeed = ftv*(avgpower/ftp)**(1./3.) distance = avgspeed*seconds rscore = 100.*(avgpower/ftp)*seconds/3600. @@ -760,6 +762,9 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones avgspm = (valuelow+valuehigh)/2. avgpower = ftp*avgspm/ftspm + avgspeed = ftv*(avgpower/ftp)**(1./3.) + distance = avgspeed*seconds + rscore = 100*(avgpower/ftp)*seconds/3600. return seconds, distance, rscore @@ -784,6 +789,7 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones veloratio = (velomid/ftv)**(3.0) rscoreperhour = 100.*veloratio rscore = rscoreperhour*seconds/3600. + seconds = distance/velomid if targettype == 'Power': # pragma: no cover value = step.get('targetValue', 0) @@ -802,7 +808,7 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones avgpower = targetpower if valuelow != 0 and valuehigh != 0: avgpower = (valuelow+valuehigh)/2. - avgspeed = ftv*(avgspeed/ftv)**(1./3.) + avgspeed = ftv*(avgpower/ftp)**(1./3.) seconds = distance/avgspeed rscore = 100.*(avgpower/ftp)*seconds/3600. @@ -819,6 +825,8 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones avgpower = ftp*avgspm/ftspm rscore = 100*(avgpower/ftp)*seconds/3600. + avgspeed = ftv*(avgpower/ftp)**(1./3.) + seconds = distance/avgspeed return seconds, distance, rscore elif durationtype in ['PowerLessThan', 'PowerGreaterThan', 'HrLessThan', 'HrGreaterThan']: # pragma: no cover @@ -917,6 +925,7 @@ def ps_dict_order(d, short=False, rower=None, html=True): sdict2 = collections.OrderedDict(reversed(list(sdict.items()))) + for step in steps: sstring, type, stepID, repeatID, repeatValue = step_to_string( step, short=short) diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index e92669e1..bb0248a7 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -2623,6 +2623,8 @@ def rower_view_instantplan(request, id='', userid=0): nextday['week'] = (divmod(i, 7)[0])+1 trainingdays2.append(nextday) + + workouts = nextday['workouts'] try: nextday = trainingdays.pop(0) except IndexError: