From 1e8945351aa0710f36a79dd3886677fb595acbe8 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 13 Mar 2026 11:09:21 +0100 Subject: [PATCH] bulk export through fit files --- rowers/tasks.py | 19 +++++++------------ rowers/tests/testdata/testdata.tcx.gz | Bin 3989 -> 3989 bytes 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/rowers/tasks.py b/rowers/tasks.py index 2e1db4e7..b571261c 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -386,18 +386,13 @@ def email_all_user_workouts_zip(rower, start_date=None, end_date=None, debug=Fal for workout in workouts: try: rowdata = rdata(csvfile=workout.csvfilename) - rowdate = rowdata.rowdatetime - starttimeunix = arrow.get(rowdate).timestamp() - df = rowdata.df - - try: - df[' ElapsedTime (sec)'] = df['TimeStamp (sec)'] - df['TimeStamp (sec)'] = df['TimeStamp (sec)'] + starttimeunix - except KeyError: - pass - - csv_filename = f"workout_{workout.id}_{workout.date.strftime('%Y%m%d')}.csv" - zip_file.writestr(csv_filename, df.to_csv(index=False)) + workouttype = mytypes.fitmapping.get(workout.workouttype, 'generic') + + fit_filename = f"workout_{workout.id}_{workout.date.strftime('%Y%m%d')}.fit" + # exporttofit creates a file, we need to add it to the zip_file + rowdata.exporttofit(fit_filename, sport=workouttype, notes=workout.name) + zip_file.write(fit_filename, arcname=fit_filename) + os.remove(fit_filename) except Exception as e: # pragma: no cover dologging('export_all_workouts.log', f"Error exporting workout {workout.id}: {str(e)}") continue diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index eac06beed11781e4ac2edb5a9989c64821c4d285..c8bcbb3d16ccc60652a5aa9fc56ff5a9a56ed919 100644 GIT binary patch delta 16 XcmbO#KUJPxzMF%C_1@-