diff --git a/rowers/dataprep.py b/rowers/dataprep.py index e5a5806c..87029e4a 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -2353,7 +2353,20 @@ def workout_trimp(w): r.hrftp = int(hrftp) r.save() - + + if w.averagehr is None: + rowdata = rdata(w.csvfilename) + + try: + avghr = rowdata.df[' HRCur (bpm)'].mean() + maxhr = rowdata.df[' HRCur (bpm)'].max() + except KeyError: + avghr = None + maxhr = None + + w.averagehr = avghr + w.maxhr = maxhr + w.save() job = myqueue( queuehigh, diff --git a/rowers/tasks.py b/rowers/tasks.py index f53d6dda..374cd509 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -597,7 +597,10 @@ def handle_calctrimp(id, df = rowdata.df - df['deltat'] = df[' ElapsedTime (sec)'].diff().abs() + try: + df['deltat'] = df[' ElapsedTime (sec)'].diff().abs() + except KeyError: + return 0 df2 = df.copy() diff --git a/rowers/views.py b/rowers/views.py index 5f4dff65..8088b67d 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -6973,6 +6973,9 @@ def workouts_view(request,message='',successmessage='', if rankingonly: workouts = workouts.exclude(rankingpiece=False) + workoutsnohr = workouts.exclude(averagehr__isnull=False) + for w in workoutsnohr: + res = dataprep.workout_trimp(w) query = request.GET.get('q') if query: @@ -7022,6 +7025,7 @@ def workouts_view(request,message='',successmessage='', 'name':'Workouts' }, ] + return render(request, 'list_workouts.html', {'workouts': workouts, 'active': 'nav-workouts',