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