diff --git a/rowers/models.py b/rowers/models.py index c75106ce..d240abe3 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -748,6 +748,7 @@ class CoachingGroup(models.Model): class Rower(models.Model): adaptivetypes = mytypes.adaptivetypes stravatypes = ( + ('match','Variable - try to match the type'), ('Ride','Ride'), ('Kitesurf','Kitesurf'), ('Run','Run'), @@ -965,7 +966,7 @@ class Rower(models.Model): stravatokenexpirydate = models.DateTimeField(blank=True,null=True) stravarefreshtoken = models.CharField(default='',max_length=1000, blank=True,null=True) - stravaexportas = models.CharField(default="Rowing", + stravaexportas = models.CharField(default="match", max_length=30, choices=stravatypes, verbose_name="Export Workouts to Strava as") @@ -2292,7 +2293,7 @@ class PlannedSession(models.Model): if self.sessionvalue <= 0: self.sessionvalue = 1 - + manager = self.manager if self.sessiontype not in ['race','indoorrace']: if not can_add_session(self.manager): diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index 83681b0e..7c01a4a5 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -752,23 +752,36 @@ def workout_strava_upload(user,w, quick=False,asynchron=True): tcxfile, tcxmesg = createstravaworkoutdata(w) if not tcxfile: return "Failed to create workout data",0 + activity_type = r.stravaexportas + if r.stravaexportas == 'match': + try: + activity_type = mytypes.stravamapping[w.workouttype] + except KeyError: + activity_type = 'Rowing' job = myqueue(queue, handle_strava_sync, r.stravatoken, w.id, - tcxfile,w.name,r.stravaexportas, + tcxfile,w.name,activity_type, w.notes ) return "Asynchronous sync",-1 try: tcxfile,tcxmesg = createstravaworkoutdata(w) if tcxfile: + activity_type = r.stravaexportas + if r.stravaexportas == 'match': + try: + activity_type = mytypes.stravamapping[w.workouttype] + except KeyError: + activity_type = 'Rowing' + print(w.workouttype,activity_type) with open(tcxfile,'rb') as f: res,mes = handle_stravaexport( f,w.name, r.stravatoken, description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com', - activity_type=r.stravaexportas,quick=quick,asynchron=asynchron) + activity_type=activity_type,quick=quick,asynchron=asynchron) if res==0: message = mes w.uploadedtostrava = -1 diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 999ca471..ec0d912b 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -93,8 +93,14 @@ def workout_strava_upload_view(request,id=0): newnotes = w.notes+'\n from '+w.workoutsource+' via rowsandall.com' except TypeError: newnotes = 'from '+w.workoutsource+' via rowsandall.com' + activity_type = 'Ride' if w.workouttype in mytypes.rowtypes: activity_type = r.stravaexportas + if activity_type == 'match': + try: + activity_type = mytypes.stravamapping[w.workouttype] + except KeyError: + activity_type = 'Ride' else: try: activity_type = mytypes.stravamapping[w.workouttype]