From f29c20cfb730776a45821c75c97efcce66952dd9 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 13 Jul 2020 21:43:59 +0200 Subject: [PATCH] better checks of import/export settings --- rowers/templates/rower_exportsettings.html | 28 ++++++++++++++++++++++ rowers/views/userviews.py | 27 ++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html index b5b0e3c6..537521b6 100644 --- a/rowers/templates/rower_exportsettings.html +++ b/rowers/templates/rower_exportsettings.html @@ -5,6 +5,34 @@ {% block main %}

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

+

You are currently connected to: + {% if r.c2token %} + Concept2 Logbook, + {% endif %} + {% if r.sporttrackstoken %} + SportTracks, + {% endif %} + {% if r.underarmourtoken %} + Under Armour (MapMyFitness), + {% endif %} + {% if r.tptoken %} + TrainingPeaks, + {% endif %} + {% if r.polartoken %} + Polar, + {% endif %} + {% if r.garmintoken %} + Garmin Connect, + {% endif %} + {% if r.stravatoken %} + Strava, + {% endif %} + {% if r.runkeepertoken %} + Runkeeper. + {% endif %} + Strava, +

+ {% if form.errors %}

Please correct the error{{ form.errors|pluralize }} below. diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index b8bd125c..cef92c0b 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -298,6 +298,17 @@ def rower_favoritecharts_view(request,userid=0): @login_required() @permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True) def rower_exportsettings_view(request,userid=0): + attrtokens = { + 'polar_auto_import':'polartoken', + 'c2_auto_export':'c2token', + 'c2_auto_import':'c2token', + 'mapmyfitness_auto_export':'underarmourtoken', + 'runkeeper_auto_export':'runkeepertoken', + 'sporttracks_auto_export':'sporttrackstoken', + 'strava_auto_export':'stravatoken', + 'strava_auto_import':'stravatoken', + 'trainingpeaks_auto_export':'tptoken', + } r = getrequestrower(request,userid=userid) if request.method == 'POST': form = RowerExportForm(request.POST) @@ -305,7 +316,21 @@ def rower_exportsettings_view(request,userid=0): cd = form.cleaned_data for attr, value in cd.items(): - setattr(r, attr, value) + doset = True + try: + tokenname = attrtokens[attr] + if getattr(r, tokenname) == '' or getattr(r, tokenname) == None: + doset = False + except KeyError: + doset = True + if not doset: + before = getattr(r,attr) + if before == value: + doset = True + if doset: + setattr(r, attr, value) + else: + messages.error(request,'Could not set '+attr+'. You need to create the connection first.') r.save() messages.info(request,'Settings saved')