diff --git a/rowers/integrations/rp3.py b/rowers/integrations/rp3.py index 2900e6d3..657176ef 100644 --- a/rowers/integrations/rp3.py +++ b/rowers/integrations/rp3.py @@ -59,12 +59,12 @@ class RP3Integration(SyncIntegration): try: rp3ids = workouts_list['id'].values - workouts_list.set_index('id',inpace=True) + workouts_list.set_index('id',inplace=True) except (KeyError, IndexError): return 0 knownrp3ids = uniqify([ - w.uploadedtorp3 for w in Workout.objects.filter(user=rower) + w.uploadedtorp3 for w in Workout.objects.filter(user=r) ]) dologging('rp3_import.log',rp3ids) @@ -74,7 +74,7 @@ class RP3Integration(SyncIntegration): dologging('rp3_import.log',newids) for id in newids: - startdatetime = workouts_list.loc[id, 'executed_at_ios8601'] + startdatetime = workouts_list.loc[id, 'executed_at_iso8601'] dologging('rp3_import.log', startdatetime) _ = myqueue( @@ -85,7 +85,7 @@ class RP3Integration(SyncIntegration): id, startdatetime, 20, - {'timezone':self.rower.defaulttimezone} + timezone = self.rower.defaulttimezone ) return 1 @@ -173,7 +173,6 @@ class RP3Integration(SyncIntegration): workouts = [] for key, data in workouts_list.iterrows(): - print(data) try: i = data['id'] except KeyError: # pragma: no cover diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 6769ae74..13e9dba9 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -29,7 +29,6 @@ import rowers.uploads as uploads import rowers.polarstuff as polarstuff -import rowers.rp3stuff as rp3stuff from rowers.opaque import encoder from rowers.integrations import * @@ -102,7 +101,8 @@ class Command(BaseCommand): rowers = Rower.objects.filter(rp3_auto_import=True) for r in rowers: # pragma: no cover if user_is_not_basic(r.user) or user_is_coachee(r.user): - _ = rp3stuff.get_rp3_workouts(r) + rp3_integration = RP3Integration(r.user) + _ = rp3_integration.get_workouts() except: # pragma: no cover exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) diff --git a/rowers/tasks.py b/rowers/tasks.py index 5a311f1f..5430cf20 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3245,8 +3245,6 @@ def handle_rp3_async_workout(userid, rp3token, rp3id, startdatetime, max_attempt 'timezone': timezone, } - print(uploadoptions) - session = requests.session() newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'} session.headers.update(newHeaders) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 8d57aba4..3133a666 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/urls.py b/rowers/urls.py index 29b13906..e81ffb7f 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -653,8 +653,6 @@ urlpatterns = [ re_path(r'^workout/nkimport/all/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/$', views.workout_getnkworkout_all, name='workout_getnkworkout_all'), - re_path(r'^workout/rp3import/(?P\d+)/$', views.workout_getrp3importview, - name='workout_getrp3importview'), re_path(r'^workout/rp3import/user/(?P\d+)/$', views.workout_rp3import_view, name='workout_rp3import_view'), re_path(r'^workout/rp3import/all/$', views.workout_getrp3workout_all, diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 8fa1bad4..06f51140 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -1540,6 +1540,7 @@ importlistviews = { 'sporttracks': 'workout_sporttracksimport_view', 'trainingpeaks': 'workout_view', 'nk': 'workout_nkimport_view', + 'rp3': 'workout_rp3import_view', } importauthorizeviews = { @@ -1550,6 +1551,7 @@ importauthorizeviews = { 'sporttracks': 'rower_sporttracks_authorize', 'trainingpeaks': 'rower_tp_authorize', 'nk': 'rower_nk_authorize', + 'rp3': 'rower_rp3_authorize', } importsources = { @@ -1560,26 +1562,10 @@ importsources = { 'sporttracks': SportTracksIntegration, 'trainingpeaks': tpstuff, 'nk': NKIntegration, + 'rp3':RP3Integration, } -@login_required() -@permission_required('rower.is_not_freecoach', fn=get_user_by_userid, raise_exception=True) -def workout_getrp3importview(request, externalid): - r = getrequestrower(request) - if r.user != request.user: # pragma: no cover - messages.error( - request, 'You can only access your own workouts on the RP3 Logbook, not those of your athletes') - url = reverse('workout_rp3import_view', kwargs={ - 'userid': request.user.id}) - return HttpResponseRedirect(url) - rp3_integration = RP3Integration(request.user) - result = rp3_integration.get_workout(externalid) - - messages.info(request, 'The workout will be imported in the background') - - url = reverse('workout_rp3import_view') - return HttpResponseRedirect(url) @login_required() def workout_getimportview_old(request, externalid, source='c2', do_async=True):