diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 3aa7d6ef..7687540f 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -189,14 +189,33 @@ def get_execution_report(rower,startdate,enddate,plan=None): plannedscore = 0 actualscore = 0 sps = get_sessions(rower,startdate=mm.startdate,enddate=mm.enddate) - for ps in sps: - if ps.sessionmode == 'rscore': - plannedscore += ps.planrscore - actualscore += ps.actualrscore + unmatchedworkouts = Workout.objects.filter( + user=rower, + plannedsession=None, + date__gte=mm.startdate,date__lte=mm.enddate) + for w in unmatchedworkouts: + if w.rscore != 0: + actualscore += w.rscore + elif w.hrtss != 0: + actualscore += w.hrtss + else: + minutes = w.duration.hour*60+w.duration.minute + actualscore += minutes + for ps in sps: + ratio, status, cdate = is_session_complete(rower,ps) + if ps.sessionmode == 'rscore': + plannedscore += ps.sessionvalue + actualscore += ratio*ps.sessionvalue else: - ratio, status, cdate = is_session_complete(rower,ps) ws = Workout.objects.filter(user=rower,plannedsession=ps) - + if not ws: + if ps.sessionmode == 'time': + plannedscore += ps.sessionvalue + elif ps.sessionmode == 'distance': + plannedscore += 60. + elif ps.sessionmode == 'TRIMP': + plannedscore += ps.sessionvalue/2. + for w in ws: if w.rscore != 0: if ratio > 0: