diff --git a/rowers/dataprep.py b/rowers/dataprep.py index cb3bc070..04973db7 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -657,7 +657,7 @@ def update_wps(r, types, mode='water', asynchron=True): ids = [w.id for w in workouts] if asynchron: _ = myqueue( - queue, + queuelow, handle_update_wps, r.id, types, diff --git a/rowers/integrations/intervals.py b/rowers/integrations/intervals.py index 7eba51ee..9a89c581 100644 --- a/rowers/integrations/intervals.py +++ b/rowers/integrations/intervals.py @@ -550,6 +550,7 @@ class IntervalsIntegration(SyncIntegration): workouttype=workouttype, duration=duration, distance=distance, + date=arrow.get(data['start_date']).datetime, uploadedtointervals=id, ) diff --git a/rowers/tasks.py b/rowers/tasks.py index c503212c..9ff20082 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3243,73 +3243,6 @@ def handle_intervals_updateworkout(workout, debug=False, **kwargs): return 0 -def df_from_summary(data): - # distance = data['distance'] - # c2id = data['id'] - # workouttype = data['type'] - # verified = data['verified'] - # weightclass = data['weight_class'] - try: - title = data['name'] - except KeyError: # pragma: no cover - title = "" - try: - t = data['comments'].split('\n', 1)[0] - title += t[:40] - except: # pragma: no cover - title = '' - - startdatetime, starttime, workoutdate, duration, starttimeunix, timezone = utils.get_startdatetime_from_c2data( - data) - - try: - splits = data['workout']['splits'] - except (KeyError, TypeError): # pragma: no cover - splits = [0] - time = starttimeunix - elapsed_distance = 0 - times = [0] - distances = [0] - try: - spms = [splits[0]['stroke_rate']] - except (KeyError, TypeError, IndexError): # pragma: no cover - spms = [0] - try: - hrs = [splits[0]['heart_rate']['average']] - except (KeyError, TypeError, IndexError): # pragma: no cover - hrs = [0] - - for split in splits: - try: - time += split['time']/10. - times.append(time) - except (KeyError, TypeError): # pragma: no cover - times.append(0) - try: - elapsed_distance += split['distance'] - distances.append(elapsed_distance) - except (KeyError, TypeError): # pragma: no cover - distances.append(0) - try: - spms.append(split['stroke_rate']) - except (KeyError, TypeError): # pragma: no cover - spms.append(0) - try: - hrs.append(split['heart_rate']['average']) - except (KeyError, TypeError): # pragma: no cover - hrs.append(0) - - df = pd.DataFrame({ - 'TimeStamp (sec)': times, - ' Horizontal (meters)': distances, - ' HRCur (bpm)': hrs, - ' Cadence (stokes/min)': spms, - }) - - df[' ElapsedTime (sec)'] = df['TimeStamp (sec)']-starttimeunix - - return df - diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index 09516e0e..f808dd87 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -553,7 +553,7 @@ class C2Objects(DjangoTestCase): self.assertEqual(str(timezone),'America/Los_Angeles') - df = tasks.df_from_summary(data) + df = upload_tasks.df_from_summary(data) self.assertEqual(len(df),8) got = arrow.get(startdatetime).isoformat() diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index be3a8bcc..e2496e8b 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/upload_tasks.py b/rowers/upload_tasks.py index a366d34e..90845040 100644 --- a/rowers/upload_tasks.py +++ b/rowers/upload_tasks.py @@ -138,14 +138,14 @@ def handle_intervals_getworkout(rower, intervalstoken, workoutid, debug=False, * except KeyError: workoutsource = 'intervals.icu' - if 'garmin' in workoutsource.lower(): - title = 'Garmin: '+ title - try: title = data['name'] except KeyError: title = 'Intervals workout' + if 'garmin' in workoutsource.lower(): + title = 'Garmin: '+ title + try: workouttype = intervalsmappinginv[data['type']] except KeyError: @@ -1244,3 +1244,71 @@ def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid, stravaid=stravaid, userid=userid)) return 1 + +def df_from_summary(data): + # distance = data['distance'] + # c2id = data['id'] + # workouttype = data['type'] + # verified = data['verified'] + # weightclass = data['weight_class'] + try: + title = data['name'] + except KeyError: # pragma: no cover + title = "" + try: + t = data['comments'].split('\n', 1)[0] + title += t[:40] + except: # pragma: no cover + title = '' + + startdatetime, starttime, workoutdate, duration, starttimeunix, timezone = utils.get_startdatetime_from_c2data( + data) + + try: + splits = data['workout']['splits'] + except (KeyError, TypeError): # pragma: no cover + splits = [0] + time = starttimeunix + elapsed_distance = 0 + times = [0] + distances = [0] + try: + spms = [splits[0]['stroke_rate']] + except (KeyError, TypeError, IndexError): # pragma: no cover + spms = [0] + try: + hrs = [splits[0]['heart_rate']['average']] + except (KeyError, TypeError, IndexError): # pragma: no cover + hrs = [0] + + for split in splits: + try: + time += split['time']/10. + times.append(time) + except (KeyError, TypeError): # pragma: no cover + times.append(0) + try: + elapsed_distance += split['distance'] + distances.append(elapsed_distance) + except (KeyError, TypeError): # pragma: no cover + distances.append(0) + try: + spms.append(split['stroke_rate']) + except (KeyError, TypeError): # pragma: no cover + spms.append(0) + try: + hrs.append(split['heart_rate']['average']) + except (KeyError, TypeError): # pragma: no cover + hrs.append(0) + + df = pd.DataFrame({ + 'TimeStamp (sec)': times, + ' Horizontal (meters)': distances, + ' HRCur (bpm)': hrs, + ' Cadence (stokes/min)': spms, + }) + + df[' ElapsedTime (sec)'] = df['TimeStamp (sec)']-starttimeunix + + return df +