From ffd2abc815b2162d8f748a386eae051700b8b044 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 14 Nov 2017 21:49:53 -0600 Subject: [PATCH] imports more than 50 workouts from C2 --- rowers/c2stuff.py | 4 +++- rowers/templates/c2_list_import2.html | 15 +++++++++++++-- rowers/templates/imports.html | 2 +- rowers/urls.py | 4 ++++ rowers/views.py | 14 ++++++++------ 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py index 75e5952a..1ef76461 100644 --- a/rowers/c2stuff.py +++ b/rowers/c2stuff.py @@ -484,7 +484,7 @@ def get_c2_workout_strokes(user,c2id): # Get list of C2 workouts. We load only the first page, # assuming that users don't want to import their old workouts -def get_c2_workout_list(user): +def get_c2_workout_list(user,page=1): r = Rower.objects.get(user=user) if (r.c2token == '') or (r.c2token is None): s = "Token doesn't exist. Need to authorize" @@ -499,6 +499,8 @@ def get_c2_workout_list(user): 'user-agent': 'sanderroosendaal', 'Content-Type': 'application/json'} url = "https://log.concept2.com/api/users/me/results" + url += "?page={page}".format(page=page) + s = requests.get(url,headers=headers) return s diff --git a/rowers/templates/c2_list_import2.html b/rowers/templates/c2_list_import2.html index 886542be..434066b9 100644 --- a/rowers/templates/c2_list_import2.html +++ b/rowers/templates/c2_list_import2.html @@ -9,14 +9,25 @@ {% if workouts %}
- Import all NEW + Import all NEW
-
+

This imports all workouts that have not been imported to rowsandall.com. The action may take a longer time to process, so please be patient. Click on Import in the list below to import an individual workout.

+
+ {% if page > 1 %} + < + {% else %} +   + {% endif %} +
+
+ > +
+
diff --git a/rowers/templates/imports.html b/rowers/templates/imports.html index 9177b93f..d6e5a6af 100644 --- a/rowers/templates/imports.html +++ b/rowers/templates/imports.html @@ -18,7 +18,7 @@

- Concept2 logo + Concept2 logo

diff --git a/rowers/urls.py b/rowers/urls.py index 9179e415..b31c2be7 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -268,9 +268,12 @@ urlpatterns = [ url(r'^workout/(?P\d+)/smoothenpace$',views.workout_smoothenpace_view), url(r'^workout/(?P\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view), url(r'^workout/c2import/$',views.workout_c2import_view), + url(r'^workout/c2list/$',views.workout_c2import_view), + url(r'^workout/c2list/(?P\d+)$',views.workout_c2import_view), url(r'^workout/stravaimport/$',views.workout_stravaimport_view), url(r'^workout/c2import/(?P\d+)/$',views.workout_getc2workout_view), url(r'^workout/c2import/all/$',views.workout_getc2workout_all), + url(r'^workout/c2import/all/(?P\d+)$',views.workout_getc2workout_all), url(r'^workout/stravaimport/(?P\d+)/$',views.workout_getstravaworkout_view), url(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all), url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view), @@ -365,6 +368,7 @@ urlpatterns = [ if settings.DEBUG: urlpatterns += [ url(r'^testreverse/$',views.test_reverse_view), + url(r'^c2listug/(?P\d+)$',views.c2listdebug_view), url(r'^c2listug/$',views.c2listdebug_view), ] diff --git a/rowers/views.py b/rowers/views.py index b1671b67..3769f5a5 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -8001,7 +8001,7 @@ def workout_sporttracksimport_view(request,message=""): # List of workouts on Concept2 logbook. This view only used for debugging @login_required() -def c2listdebug_view(request,message=""): +def c2listdebug_view(request,page=1,message=""): try: thetoken = c2_open(request.user) except C2NoTokenError: @@ -8009,7 +8009,7 @@ def c2listdebug_view(request,message=""): r = getrower(request.user) - res = c2stuff.get_c2_workout_list(request.user) + res = c2stuff.get_c2_workout_list(request.user,page=page) if (res.status_code != 200): message = "Something went wrong in workout_c2import_view (C2 token renewal)" @@ -8021,6 +8021,7 @@ def c2listdebug_view(request,message=""): return HttpResponseRedirect(url) else: workouts = [] + print res.json()['meta'] for item in res.json()['data']: d = item['distance'] i = item['id'] @@ -8043,13 +8044,13 @@ def c2listdebug_view(request,message=""): # Import all unknown workouts available on Concept2 logbook @login_required() -def workout_getc2workout_all(request,message=""): +def workout_getc2workout_all(request,page=1,message=""): try: thetoken = c2_open(request.user) except C2NoTokenError: return HttpResponseRedirect("/rowers/me/c2authorize/") - res = c2stuff.get_c2_workout_list(request.user) + res = c2stuff.get_c2_workout_list(request.user,page=page) if (res.status_code != 200): message = "Something went wrong in workout_c2import_view (C2 token refresh)" @@ -8094,13 +8095,13 @@ def workout_getc2workout_all(request,message=""): # List of workouts available on Concept2 logbook - for import @login_required() -def workout_c2import_view(request,message=""): +def workout_c2import_view(request,page=1,message=""): try: thetoken = c2_open(request.user) except C2NoTokenError: return HttpResponseRedirect("/rowers/me/c2authorize/") - res = c2stuff.get_c2_workout_list(request.user) + res = c2stuff.get_c2_workout_list(request.user,page=page) if (res.status_code != 200): message = "Something went wrong in workout_c2import_view (C2 token refresh)" @@ -8140,6 +8141,7 @@ def workout_c2import_view(request,message=""): 'c2_list_import2.html', {'workouts':workouts, 'teams':get_my_teams(request.user), + 'page':page, }) # Import a workout from Strava