From 2dcc7e39102cb956d3afaabc38687a59dfbfc550 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 19 Feb 2020 15:18:41 +0100 Subject: [PATCH 1/4] making sync work --- rowers/uploads.py | 115 +++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 67 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index 7f94106d..a26fe6a3 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -516,79 +516,60 @@ def do_sync(w,options): except KeyError: pass - if ('upload_to_C2' in options and options['upload_to_C2']) or (w.user.c2_auto_export and ispromember(w.user)): - if ('upload_to_C2' in options and not options['upload_to_C2']): - pass - else: - try: - message,id = c2stuff.workout_c2_upload(w.user.user,w) - except NoTokenError: - id = 0 - message = "Something went wrong with the Concept2 sync" - if ('upload_to_Strava' in options and options['upload_to_Strava']) or (w.user.strava_auto_export and ispromember(w.user)): - if ('upload_to_Strava' in options and not options['upload_to_Strava']): - pass - else: - try: - message,id = stravastuff.workout_strava_upload( + if ('upload_to_C2' in options and options['upload_to_C2']) or (w.user.c2_auto_export and ispromember(w.user.user)): + try: + message,id = c2stuff.workout_c2_upload(w.user.user,w) + except NoTokenError: + id = 0 + message = "Something went wrong with the Concept2 sync" + + if ('upload_to_Strava' in options and options['upload_to_Strava']) or (w.user.strava_auto_export and ispromember(w.user.user)): + try: + message,id = stravastuff.workout_strava_upload( + w.user.user,w + ) + except NoTokenError: + id = 0 + message = "Please connect to Strava first" + + + if ('upload_to_SportTracks' in options and options['upload_to_SportTracks']) or (w.user.sporttracks_auto_export and ispromember(w.user.user)): + try: + message,id = sporttracksstuff.workout_sporttracks_upload( w.user.user,w - ) - except NoTokenError: - id = 0 - message = "Please connect to Strava first" + ) + except NoTokenError: + message = "Please connect to SportTracks first" + id = 0 - if ('upload_to_SportTracks' in options and options['upload_to_SportTracks']) or (w.user.sporttracks_auto_export and ispromember(w.user)): - if ('upload_to_SportTracks' in options and not options['upload_to_SportTracks']): - pass - else: + if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user.user)): + try: + message,id = runkeeperstuff.workout_runkeeper_upload( + w.user.user,w + ) + except NoTokenError: + message = "Please connect to Runkeeper first" + id = 0 - try: - message,id = sporttracksstuff.workout_sporttracks_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to SportTracks first" - id = 0 + if ('upload_to_MapMyFitness' in options and options['upload_to_MapMyFitness']) or (w.user.mapmyfitness_auto_export and ispromember(w.user.user)): + try: + message,id = underarmourstuff.workout_ua_upload( + w.user.user,w + ) + except NoTokenError: + message = "Please connect to MapMyFitness first" + id = 0 - if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user)): - if ('upload_to_RunKeeper' in options and not options['upload_to_RunKeeper']): - pass - else: - - try: - message,id = runkeeperstuff.workout_runkeeper_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to Runkeeper first" - id = 0 - - if ('upload_to_MapMyFitness' in options and options['upload_to_MapMyFitness']) or (w.user.mapmyfitness_auto_export and ispromember(w.user)): - if ('upload_to_MapMyFitness' in options and not options['upload_to_MapMyFitness']): - pass - else: - try: - message,id = underarmourstuff.workout_ua_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to MapMyFitness first" - id = 0 - - - if ('upload_to_TrainingPeaks' in options and options['upload_to_TrainingPeaks']) or (w.user.trainingpeaks_auto_export and ispromember(w.user)): - if ('upload_to_TrainingPeaks' in options and not options['upload_to_TrainingPeaks']): - pass - else: - try: - message,id = tpstuff.workout_tp_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to TrainingPeaks first" - id = 0 + if ('upload_to_TrainingPeaks' in options and options['upload_to_TrainingPeaks']) or (w.user.trainingpeaks_auto_export and ispromember(w.user.user)): + try: + message,id = tpstuff.workout_tp_upload( + w.user.user,w + ) + except NoTokenError: + message = "Please connect to TrainingPeaks first" + id = 0 return 1 From d6be059df13f8c4275cf8ec811d767004f61ce8d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 19 Feb 2020 17:09:07 +0100 Subject: [PATCH 2/4] quick fix (tbc) --- rowers/uploads.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index a26fe6a3..b09c57d8 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -508,10 +508,11 @@ def make_private(w,options): return 1 def do_sync(w,options): + upload_to_strava = options['upload_to_Strava'] try: if options['stravaid'] != 0 and options['stravaid'] != '': w.uploadedtostrava = options['stravaid'] - options['upload_to_Strava'] = False + upload_to_strava = False w.save() except KeyError: pass @@ -524,7 +525,7 @@ def do_sync(w,options): id = 0 message = "Something went wrong with the Concept2 sync" - if ('upload_to_Strava' in options and options['upload_to_Strava']) or (w.user.strava_auto_export and ispromember(w.user.user)): + if ('upload_to_Strava' in options and upload_to_strava) or (w.user.strava_auto_export and ispromember(w.user.user)): try: message,id = stravastuff.workout_strava_upload( w.user.user,w From f00d5f4270496ad88c400d57c84851b8f589f84d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 19 Feb 2020 17:16:09 +0100 Subject: [PATCH 3/4] more quick fixes --- rowers/uploads.py | 6 +++++- rowers/views/workoutviews.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index b09c57d8..275f9e1d 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -508,7 +508,11 @@ def make_private(w,options): return 1 def do_sync(w,options): - upload_to_strava = options['upload_to_Strava'] + try: + upload_to_strava = options['upload_to_Strava'] + except KeyError: + upload_to_strava = False + try: if options['stravaid'] != 0 and options['stravaid'] != '': w.uploadedtostrava = options['stravaid'] diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 38c6d90a..61baaed8 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -4405,7 +4405,7 @@ def workout_upload_api(request): secret = json_data['secret'] post_data = json_data except (KeyError,JSONDecodeError): - post_data = request.POST + post_data = dict(request.POST.iterlists()) # only allow local host hostt = request.get_host().split(':') From 4b9e4ee0e1befd7c92713c9cd35902453902cf02 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 19 Feb 2020 17:28:22 +0100 Subject: [PATCH 4/4] fixing more fixes --- rowers/uploads.py | 2 +- rowers/views/workoutviews.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index 275f9e1d..258a4d51 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -512,7 +512,7 @@ def do_sync(w,options): upload_to_strava = options['upload_to_Strava'] except KeyError: upload_to_strava = False - + try: if options['stravaid'] != 0 and options['stravaid'] != '': w.uploadedtostrava = options['stravaid'] diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 61baaed8..861320de 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals import hashlib from shutil import copyfile - +from six import iterlists from rowers.views.statements import * import rowers.teams as teams import rowers.mytypes as mytypes @@ -4405,7 +4405,8 @@ def workout_upload_api(request): secret = json_data['secret'] post_data = json_data except (KeyError,JSONDecodeError): - post_data = dict(request.POST.iterlists()) + q = request.POST + post_data = {k: q.getlist(k) if len(q.getlist(k))>1 else v for k, v in q.items()} # only allow local host hostt = request.get_host().split(':')