From 645b3167b5aaae2f4f1d87800bbb964f566c8502 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 6 Jul 2020 15:19:03 +0200 Subject: [PATCH] first version with free syncs for basic users --- .gitignore | 2 ++ rowers/c2stuff.py | 4 ---- rowers/garmin_stuff.py | 4 +++- rowers/management/commands/processemail.py | 2 +- rowers/stravastuff.py | 4 ---- rowers/templates/menu_workout.html | 11 +++++++++++ rowers/templates/paidplans.html | 2 +- rowers/templates/rower_exportsettings.html | 10 +++++----- rowers/uploads.py | 12 ++++++------ 9 files changed, 29 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 619c3361..88dfa614 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # cache /django_cache/ +testcert.crt +testcert.key # Compiled python modules. *.pyc diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py index e5c0917a..b10a5652 100644 --- a/rowers/c2stuff.py +++ b/rowers/c2stuff.py @@ -157,10 +157,6 @@ def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename, return 1 def get_c2_workouts(rower): - - if not ispromember(rower.user): - return 0 - try: thetoken = c2_open(rower.user) except NoTokenError: diff --git a/rowers/garmin_stuff.py b/rowers/garmin_stuff.py index 7e420552..a7d688e2 100644 --- a/rowers/garmin_stuff.py +++ b/rowers/garmin_stuff.py @@ -168,6 +168,7 @@ def garmin_getworkout(garminid,r,activity): w.name = name w.date = date w.distance = distance + w.uploadedtogarmin = garminid w.save() @@ -204,12 +205,13 @@ def garmin_workouts_from_details(activities): df[' DriveLength (meters)'] = 0 df[' PeakDriveForce (lbs)'] = 1 df[' DriveTime (ms)'] = 0 - print(df.info()) + rowdata = rowingdata(df=df) rowdata.write_csv(w.csvfilename,gzip=True) data = dataprep.dataprep(rowdata.df,id=w.id) summary = rowdata.allstats() w.summary=summary + w.uploadedtogarmin = garminid w.save() except Rower.DoesNotExist: pass diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index a590ca9a..21edc932 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -296,7 +296,7 @@ class Command(BaseCommand): message.delete() # Strava - rowers = Rower.objects.filter(strava_auto_import=True).exclude(rowerplan='basic') + rowers = Rower.objects.filter(strava_auto_import=True) for r in rowers: stravastuff.get_strava_workouts(r) diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index 1d789244..f0cbf6e2 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -126,10 +126,6 @@ def get_strava_workout_list(user,limit_n=0): # gets all new Strava workouts for a rower def get_strava_workouts(rower): - - if not ispromember(rower.user): - return 0 - try: thetoken = strava_open(rower.user) except NoTokenError: diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html index 5c06f2a4..a4b98796 100644 --- a/rowers/templates/menu_workout.html +++ b/rowers/templates/menu_workout.html @@ -220,6 +220,17 @@ {% endif %} +
  • + {% if workout.uploadedtogarmin %} + + Garmin + + {% elif user.rower.garmintoken == None or user.rower.garmintoken == '' %} + + Connect to Garmin + + {% endif %} +
  • CSV diff --git a/rowers/templates/paidplans.html b/rowers/templates/paidplans.html index e0a5ecae..edc89a45 100644 --- a/rowers/templates/paidplans.html +++ b/rowers/templates/paidplans.html @@ -65,7 +65,7 @@ Automatic Synchronization with other fitness sites -   + ✔ ✔ ✔ ✔ diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html index d6e83040..8e7f66d2 100644 --- a/rowers/templates/rower_exportsettings.html +++ b/rowers/templates/rower_exportsettings.html @@ -5,10 +5,6 @@ {% block main %}

    Import and Export Settings for {{ rower.user.first_name }} {{ rower.user.last_name }}

    -{% if user.rower.rowerplan == 'basic' %} -The auto import and export settings only work on
    a paid plan. -{% endif %} - {% if form.errors %}

    Please correct the error{{ form.errors|pluralize }} below. @@ -23,8 +19,12 @@ The auto import and export settings only work on a

    +

    + Garmin Connnect has no manual sync, so connecting your account to your Garmin account will + automatically auto-sync workouts from Garmin to Rowsandall (but not in the other direction). +

    Click on one of the icons below to connect to the service of your - choice or to renew the authorization

    + choice or to renew the authorization.

    connect with strava

    connect with Concept2

    connect with SportTracks

    diff --git a/rowers/uploads.py b/rowers/uploads.py index 98b56eac..185493ff 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -535,7 +535,7 @@ def do_sync(w,options, quick=False): pass - if ('upload_to_C2' in options and options['upload_to_C2']) or (w.user.c2_auto_export and ispromember(w.user.user)): + if ('upload_to_C2' in options and options['upload_to_C2']) or (w.user.c2_auto_export): try: message,id = c2stuff.workout_c2_upload(w.user.user,w,asynchron=True) except NoTokenError: @@ -544,7 +544,7 @@ def do_sync(w,options, quick=False): except: pass - if ('upload_to_Strava' in options and 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): try: message,id = stravastuff.workout_strava_upload( w.user.user,w,quick=quick,asynchron=True, @@ -563,7 +563,7 @@ def do_sync(w,options, quick=False): - if ('upload_to_SportTracks' in options and options['upload_to_SportTracks']) or (w.user.sporttracks_auto_export and ispromember(w.user.user)): + if ('upload_to_SportTracks' in options and options['upload_to_SportTracks']) or (w.user.sporttracks_auto_export): try: message,id = sporttracksstuff.workout_sporttracks_upload( w.user.user,w,asynchron=True, @@ -573,7 +573,7 @@ def do_sync(w,options, quick=False): id = 0 - if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user.user)): + if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export): try: message,id = runkeeperstuff.workout_runkeeper_upload( w.user.user,w,asynchron=True, @@ -582,7 +582,7 @@ def do_sync(w,options, quick=False): 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.user)): + if ('upload_to_MapMyFitness' in options and options['upload_to_MapMyFitness']) or (w.user.mapmyfitness_auto_export): try: message,id = underarmourstuff.workout_ua_upload( w.user.user,w @@ -592,7 +592,7 @@ def do_sync(w,options, quick=False): id = 0 - if ('upload_to_TrainingPeaks' in options and options['upload_to_TrainingPeaks']) or (w.user.trainingpeaks_auto_export and ispromember(w.user.user)): + if ('upload_to_TrainingPeaks' in options and options['upload_to_TrainingPeaks']) or (w.user.trainingpeaks_auto_export): try: message,id = tpstuff.workout_tp_upload( w.user.user,w