diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 69ed2ff7..f8c217b0 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -6439,7 +6439,7 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we ).strftime('%y/%m/%d') # print(w.date,arrow.get(w.date),arrow.get(w.date).isocalendar()) - + iswater = w.workouttype in mytypes.otwtypes qryw = 'workoutid == {workoutid}'.format(workoutid=w.id) qry = 'hr < {ut2}'.format(ut2=rower.ut2) @@ -6464,6 +6464,9 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we if trainingzones == 'power': qry = '{ut2} <= power < {ut1}'.format( ut1=rower.pw_ut1, ut2=rower.pw_ut2) + if iswater: + qry = '{ut2} <= power < {ut1}'.format( + ut1=rower.pw_ut1*rower.otwslack/100., ut2=rower.pw_ut2*rower.otwslack/100.) timeinzone = df.query(qry).query(qryw)['deltat'].sum()/(60*1e3) if date_agg == 'week': dates.append(dd4) @@ -6483,6 +6486,9 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we if trainingzones == 'power': qry = '{ut1} <= power < {at}'.format( ut1=rower.pw_ut1, at=rower.pw_at) + if iswater: + qry = '{ut1} <= power < {at}'.format( + ut1=rower.pw_ut1*rower.otwslack/100., at=rower.pw_at*rower.otwslack/100.) timeinzone = df.query(qry).query(qryw)['deltat'].sum()/(60*1e3) if date_agg == 'week': dates.append(dd4) @@ -6501,6 +6507,9 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we qry = '{at} <= hr < {tr}'.format(at=rower.at, tr=rower.tr) if trainingzones == 'power': qry = '{at} <= power < {tr}'.format(at=rower.pw_at, tr=rower.pw_tr) + if iswater: + qry = '{at} <= power < {tr}'.format(at=rower.pw_at*rower.otwslack/100., + tr=rower.pw_tr*rower.otwslack/100.) timeinzone = df.query(qry).query(qryw)['deltat'].sum()/(60*1e3) if date_agg == 'week': dates.append(dd4) @@ -6519,6 +6528,9 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we qry = '{tr} <= hr < {an}'.format(tr=rower.tr, an=rower.an) if trainingzones == 'power': qry = '{tr} <= power < {an}'.format(tr=rower.pw_tr, an=rower.pw_an) + if iswater: + qry = '{tr} <= power < {an}'.format(tr=rower.pw_tr*rower.otwslack/100., + an=rower.pw_an*rower.otwslack/100.) timeinzone = df.query(qry).query(qryw)['deltat'].sum()/(60*1e3) if date_agg == 'week': dates.append(dd4) @@ -6537,6 +6549,8 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we qry = 'hr >= {an}'.format(an=rower.an) if trainingzones == 'power': qry = 'power >= {an}'.format(an=rower.pw_an) + if iswater: + qry = 'power >= {an}'.format(an=rower.pw_an*rower.otwslack/100.) timeinzone = df.query(qry).query(qryw)['deltat'].sum()/(60*1e3) if date_agg == 'week': dates.append(dd4)