From 0d04132c3cc3bfb42a04d7052ab68fceb4143c3e Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 27 Apr 2017 18:12:39 +0200 Subject: [PATCH] added record of workout origin --- rowers/dataprep.py | 3 +++ rowers/models.py | 24 ++++++++++++++++++++++++ rowers/views.py | 14 ++++++++++---- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index dae8d2bd..6d4915a1 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -342,6 +342,7 @@ def timedeltaconv(x): # Processes painsled CSV file to database def save_workout_database(f2,r,dosmooth=True,workouttype='rower', dosummary=True,title='Workout', + workoutsource='unknown', notes='',totaldist=0,totaltime=0, summary='', makeprivate=False, @@ -468,6 +469,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', duration=duration,distance=totaldist, weightcategory=r.weightcategory, starttime=workoutstarttime, + workoutsource=workoutsource, csvfilename=f2,notes=notes,summary=summary, maxhr=maxhr,averagehr=averagehr, startdatetime=workoutstartdatetime, @@ -646,6 +648,7 @@ def new_workout_from_file(r,f2, workouttype=workouttype, makeprivate=makeprivate, dosummary=dosummary, + workoutsource=fileformat, summary=summary, inboard=inboard,oarlength=oarlength, title=title) diff --git a/rowers/models.py b/rowers/models.py index 49aeba2b..83af293a 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -337,6 +337,28 @@ class Workout(models.Model): ('other','Other'), ) + workoutsources = ( + ('strava','strava'), + ('concept2','concept2'), + ('sporttracks','sporttracks'), + ('runkeeper','runkeeper'), + ('mapmyfitness','mapmyfitness'), + ('csv','painsled'), + ('tcx','tcx'), + ('rp','rp'), + ('mystery','mystery'), + ('tcxnohr','tcx (no HR)'), + ('rowperfect3','rowperfect3'), + ('ergdata','ergdata'), + ('boatcoach','boatcoach'), + ('bcmike','boatcoach (develop)'), + ('painsleddesktop','painsleddesktop'), + ('speedcoach','speedcoach'), + ('speedcoach2','speedcoach2'), + ('ergstick','ergstick'), + ('fit','fit'), + ('unknown','unknown')) + boattypes = ( ('1x', '1x (single)'), ('2x', '2x (double)'), @@ -356,6 +378,8 @@ class Workout(models.Model): name = models.CharField(max_length=150) date = models.DateField() workouttype = models.CharField(choices=workouttypes,max_length=50) + workoutsource = models.CharField(choices=workoutsources,max_length=100, + default='unknown') boattype = models.CharField(choices=boattypes,max_length=50, default='1x (single)', verbose_name = 'Boat Type') diff --git a/rowers/views.py b/rowers/views.py index faa74d28..40ffc06b 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -381,7 +381,8 @@ def checkworkoutuser(user,workout): # Create workout data from Strava or Concept2 # data and create the associated Workout object and save it def add_workout_from_strokedata(user,importid,data,strokedata, - source='c2',splitdata=None): + source='c2',splitdata=None, + workoutsource='concept2'): workouttype = data['type'] if workouttype not in [x[0] for x in Workout.workouttypes]: workouttype = 'water' @@ -538,7 +539,8 @@ def add_workout_from_strokedata(user,importid,data,strokedata, workouttype=workouttype, title=title,notes=comments, totaldist=totaldist, - totaltime=totaltime) + totaltime=totaltime, + workoutsource=workoutsource) @@ -697,6 +699,7 @@ def add_workout_from_runkeeperdata(user,importid,data): id,message = dataprep.save_workout_database(csvfilename,r, workouttype=workouttype, + workoutsource='runkeeper', title=title, notes=comments) @@ -863,7 +866,8 @@ def add_workout_from_stdata(user,importid,data): id,message = dataprep.save_workout_database(csvfilename,r, workouttype=workouttype, title=title, - notes=comments) + notes=comments, + workoutsource='sporttracks') return (id,message) @@ -1029,6 +1033,7 @@ def add_workout_from_underarmourdata(user,importid,data): id,message = dataprep.save_workout_database(csvfilename,r, workouttype=workouttype, + workoutsource='mapmyfitness', title=title, notes=comments) @@ -5507,7 +5512,8 @@ def workout_getstravaworkout_view(request,stravaid): strokedata = res[1] data = res[0] id,message = add_workout_from_strokedata(request.user,stravaid,data,strokedata, - source='strava') + source='strava', + workoutsource='strava') try: w = Workout.objects.get(id=id) except Workout.DoesNotExist: