central rscore approx
This commit is contained in:
@@ -32,6 +32,7 @@ def rscore_approx(row):
|
||||
else:
|
||||
dd = 3600*row['duration'].hour+60*row['duration'].minute+row['duration'].second
|
||||
dd = dd/3600
|
||||
print(row['rpe'],dd,rpetotss[row['rpe']])
|
||||
return rpetotss[row['rpe']]*dd
|
||||
if row['rscore'] < 0:
|
||||
w = Workout.objects.get(id=row['id'])
|
||||
@@ -41,7 +42,11 @@ def rscore_approx(row):
|
||||
dd = 3600*row['duration'].hour+60*row['duration'].minute+row['duration'].second
|
||||
dd = dd/3600
|
||||
return rpetotss[row['rpe']]*dd
|
||||
else: # pragma: no cover
|
||||
minutes = row['duration'].hour*60+row['duration'].minute
|
||||
return minutes
|
||||
|
||||
print('boer')
|
||||
return 0
|
||||
|
||||
def updatecp(delta, cpvalues, r, workouttype='water'): # pragma: no cover
|
||||
|
||||
@@ -1507,21 +1507,8 @@ def weightfromrecord(row,metricchoice):
|
||||
vv = row[metricchoice]
|
||||
if vv > 0:
|
||||
return vv
|
||||
if vv == 0:
|
||||
if metricchoice == 'rscore' and row['hrtss'] > 0: # pragma: no cover
|
||||
return row['hrtss']
|
||||
else:
|
||||
dd = 3600*row['duration'].hour+60*row['duration'].minute+row['duration'].second
|
||||
dd = dd/3600
|
||||
return rpetotss[row['rpe']]*dd
|
||||
if vv < 0:
|
||||
w = Workout.objects.get(id=row['id'])
|
||||
trimp, hrtss = dataprep.workout_trimp(w)
|
||||
rscore, normp = dataprep.workout_rscore(w)
|
||||
if row['rpe'] and row['rpe'] > 0: # pragma: no cover
|
||||
dd = 3600*row['duration'].hour+60*row['duration'].minute+row['duration'].second
|
||||
dd = dd/3600
|
||||
return rpetotss[row['rpe']]*dd
|
||||
if metricchoice == 'rscore':
|
||||
return rscore_approx(row)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
@@ -257,13 +257,16 @@ def get_execution_report(rower, startdate, enddate, plan=None):
|
||||
plannedsession=None,
|
||||
date__gte=mm.startdate, date__lte=mm.enddate).exclude(duplicate=True)
|
||||
for w in unmatchedworkouts:
|
||||
if w.rscore != 0:
|
||||
actualscore += w.rscore
|
||||
elif w.hrtss != 0: # pragma: no cover
|
||||
actualscore += w.hrtss
|
||||
else: # pragma: no cover
|
||||
minutes = w.duration.hour*60+w.duration.minute
|
||||
actualscore += minutes
|
||||
row = {
|
||||
'rscore': w.rscore,
|
||||
'hrtss': w.hrtss,
|
||||
'rpe': w.rpe,
|
||||
'duration': w.duration,
|
||||
'id': w.id
|
||||
}
|
||||
rscore = datautils.rscore_approx(row)
|
||||
actualscore += rscore
|
||||
|
||||
for ps in sps: # pragma: no cover
|
||||
ratio, status, cdate = is_session_complete(rower, ps)
|
||||
if ps.sessionmode == 'rScore':
|
||||
@@ -576,11 +579,15 @@ def get_session_metrics(ps):
|
||||
durationv += timefield_to_seconds_duration(w.duration)
|
||||
thetrimp, hrtss = dataprep.workout_trimp(w)
|
||||
trimpv += thetrimp
|
||||
tss = dataprep.workout_rscore(w)[0]
|
||||
if not np.isnan(tss) and tss != 0:
|
||||
rscorev += tss
|
||||
elif tss == 0: # pragma: no cover
|
||||
rscorev += hrtss
|
||||
row = {
|
||||
'rscore': w.rscore,
|
||||
'hrtss': w.hrtss,
|
||||
'rpe': w.rpe,
|
||||
'duration': w.duration,
|
||||
'id': w.id
|
||||
}
|
||||
tss = datautils.rscore_approx(row)
|
||||
rscorev += tss
|
||||
|
||||
ratio, statusv, completiondate = is_session_complete_ws(ws, ps)
|
||||
try:
|
||||
@@ -674,13 +681,15 @@ def is_session_complete_ws(ws, ps):
|
||||
trimp, hrtss = dataprep.workout_trimp(w)
|
||||
score += trimp
|
||||
elif ps.sessionmode == 'rScore':
|
||||
rscore = dataprep.workout_rscore(w)[0]
|
||||
if not np.isnan(rscore) and rscore != 0:
|
||||
score += rscore
|
||||
elif rscore == 0: # pragma: no cover
|
||||
trimp, hrtss = dataprep.workout_trimp(w)
|
||||
score += hrtss
|
||||
|
||||
row = {
|
||||
'rscore': w.rscore,
|
||||
'hrtss': w.hrtss,
|
||||
'rpe': w.rpe,
|
||||
'duration': w.duration,
|
||||
'id': w.id
|
||||
}
|
||||
rscore = datautils.rscore_approx(row)
|
||||
score += rscore
|
||||
if not completiondate and score >= cratiomin*value:
|
||||
completiondate = w.date
|
||||
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user