From 5243bb40166dcc3f27db4884e485c70e51723b2f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 27 Aug 2018 12:39:32 +0200 Subject: [PATCH] improved export settings for offline processing --- rowers/uploads.py | 102 +++++++++++++++++++++++++++------------------- rowers/views.py | 33 ++++++++++++--- 2 files changed, 88 insertions(+), 47 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index cf726ae2..2304e37d 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -394,60 +394,80 @@ def do_sync(w,options): w.save() except KeyError: pass - + if ('upload_to_C2' in options and options['upload_to_C2']) or (w.user.c2_auto_export and isprorower(w.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_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 isprorower(w.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_Strava' in options and not options['upload_to_Strava']): + pass + else: + 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 isprorower(w.user)): - try: - message,id = sporttracksstuff.workout_sporttracks_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to SportTracks first" - id = 0 + if ('upload_to_SportTracks' in options and not options['upload_to_SportTracks']): + pass + else: + + try: + message,id = sporttracksstuff.workout_sporttracks_upload( + w.user.user,w + ) + except NoTokenError: + message = "Please connect to SportTracks first" + id = 0 if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and isprorower(w.user)): - try: - message,id = runkeeperstuff.workout_runkeeper_upload( - w.user.user,w - ) - except NoTokenError: - message = "Please connect to Runkeeper first" - id = 0 + 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 isprorower(w.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_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 isprorower(w.user)): - 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 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 return 1 diff --git a/rowers/views.py b/rowers/views.py index 1d88d01f..462f7b1d 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -9893,6 +9893,9 @@ def workout_upload_view(request, except KeyError: upload_to_tp = False + + + response = {} if request.method == 'POST': form = DocumentsForm(request.POST,request.FILES) @@ -10040,7 +10043,7 @@ def workout_upload_view(request, request.session['async_tasks'] = [(jobid,'make_plot')] # upload to C2 - if (upload_to_c2) or (w.user.c2_auto_export and isprorower(w.user)): + if (upload_to_c2): try: message,id = c2stuff.workout_c2_upload(request.user,w) except NoTokenError: @@ -10051,7 +10054,7 @@ def workout_upload_view(request, else: messages.error(request,message) - if (upload_to_strava) or (w.user.strava_auto_export and isprorower(w.user)): + if (upload_to_strava): try: message,id = stravastuff.workout_strava_upload( request.user,w @@ -10064,7 +10067,7 @@ def workout_upload_view(request, else: messages.error(request,message) - if (upload_to_st) or (w.user.sporttracks_auto_export and isprorower(w.user)): + if (upload_to_st): try: message,id = sporttracksstuff.workout_sporttracks_upload( request.user,w @@ -10077,7 +10080,7 @@ def workout_upload_view(request, else: messages.error(request,message) - if (upload_to_rk) or (w.user.runkeeper_auto_export and isprorower(w.user)): + if (upload_to_rk): try: message,id = runkeeperstuff.workout_runkeeper_upload( request.user,w @@ -10092,7 +10095,7 @@ def workout_upload_view(request, messages.error(request,message) - if (upload_to_ua) or (w.user.mapmyfitness_auto_export and isprorower(w.user)): + if (upload_to_ua): try: message,id = underarmourstuff.workout_ua_upload( request.user,w @@ -10107,7 +10110,7 @@ def workout_upload_view(request, messages.error(request,message) - if (upload_to_tp) or (w.user.trainingpeaks_auto_export and isprorower(w.user)): + if (upload_to_tp): try: message,id = tpstuff.workout_tp_upload( request.user,w @@ -10150,6 +10153,24 @@ def workout_upload_view(request, return response else: if not is_ajax: + if r.c2_auto_export and isprorower(r): + uploadoptions['upload_to_C2'] = True + + if r.strava_auto_export and isprorower(r): + uploadoptions['upload_to_Strava'] = True + + if r.sporttracks_auto_export and isprorower(r): + uploadoptions['upload_to_SportTracks'] = True + + if r.runkeeper_auto_export and isprorower(r): + uploadoptions['upload_to_RunKeeper'] = True + + if r.trainingpeaks_auto_export and isprorower(r): + uploadoptions['upload_to_TrainingPeaks'] = True + + if r.mapmyfitness_auto_export and isprorower(r): + uploadoptions['upload_to_MapMyFitness'] = True + form = DocumentsForm(initial=docformoptions) optionsform = UploadOptionsForm(initial=uploadoptions) return render(request, 'document_form.html',