From 81ba5dc6aeee7df7c9a60fa4ec00ee1565cf316b Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 29 Nov 2021 23:27:21 +0100 Subject: [PATCH 1/4] small bug fix --- rowers/tasks.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rowers/tasks.py b/rowers/tasks.py index 870028f9..a07a41a0 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3194,7 +3194,7 @@ def df_from_summary(data): spms = [0] try: hrs = [splits[0]['heart_rate']['average']] - except (KeyError, TypeError): # pragma: no cover + except (KeyError, TypeError, IndexError): # pragma: no cover hrs = [0] for split in splits: @@ -3317,8 +3317,11 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone df = df_from_summary(data) else: #dologging('debuglog.log',json.dumps(s.json())) - - strokedata = pd.DataFrame.from_dict(s.json()['data']) + try: + strokedata = pd.DataFrame.from_dict(s.json()['data']) + except AttributeError: + dologging('debuglog.log','No stroke data in stroke data') + return 0 try: res = make_cumvalues(0.1*strokedata['t']) From 5dbde8b744231c6336b3fe4ae84a9861d2c3906a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 1 Dec 2021 19:46:11 +0100 Subject: [PATCH 2/4] unfinished, untested --- rowers/templates/nk_list_import.html | 12 +++++++++++- rowers/views/importviews.py | 29 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/rowers/templates/nk_list_import.html b/rowers/templates/nk_list_import.html index a9b43902..7d62f57c 100644 --- a/rowers/templates/nk_list_import.html +++ b/rowers/templates/nk_list_import.html @@ -29,6 +29,10 @@ {% if workouts %}
  • +
    + {% csrf_token %} + + Select All New @@ -44,7 +48,12 @@ {% for workout in workouts %} + {% if workout|lookup:'new' == 'NEW' and checknew == 'true' %} + + {% else %} + + {% endif %} + @@ -55,6 +64,7 @@ {% endfor %}
    - Import {{ workout|lookuplong:'name' }} {{ workout|lookuplong:'starttime' }} {{ workout|lookup:'duration' }}
    +
  • {% else %}
  • diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 3021d9b9..396a12f1 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -637,6 +637,35 @@ def workout_nkimport_view(request,userid=0,after=0,before=0): workouts = workouts[::-1] + if request.method == 'POST': + try: + tdict = dict(request.POST.lists()) + ids = tdict['workoutid'] + nkids = [int(id) for id in ids] + alldata = {} + + for item in res.json()['data']: + alldata[item['id']] = item + counter = 0 + for nkid in nkids: + csvfilename = 'media/{code}_{nkid}.csv'.format(code=uuid4().hex[:16],nkid=nkid) + result = myqueue( + queue, + handle_nk_async_workout, + alldata, + r.user.id, + r.nktoken, + nkid, + counter, + r.defaulttimezone + ) + counter = counter+1 + messages.info(request,'Your NK logbook workouts will be imported in the background. It may take a few minutes before it appears.'.format(c2id=c2id)) + url = reverse('workouts_view') + return HttpResponseRedirect(url) + except KeyError: + pass + breadcrumbs = [ { 'url':'/rowers/list-workouts/', From 81d665f9a157a7d35fe52e8ee5ce0cbb7f99ef90 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 2 Dec 2021 18:54:20 +0100 Subject: [PATCH 3/4] f --- rowers/views/importviews.py | 4 ++-- rowers/views/statements.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 396a12f1..94391969 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -644,7 +644,7 @@ def workout_nkimport_view(request,userid=0,after=0,before=0): nkids = [int(id) for id in ids] alldata = {} - for item in res.json()['data']: + for item in res.json(): alldata[item['id']] = item counter = 0 for nkid in nkids: @@ -660,7 +660,7 @@ def workout_nkimport_view(request,userid=0,after=0,before=0): r.defaulttimezone ) counter = counter+1 - messages.info(request,'Your NK logbook workouts will be imported in the background. It may take a few minutes before it appears.'.format(c2id=c2id)) + messages.info(request,'Your NK logbook workouts will be imported in the background. It may take a few minutes before it appears.') url = reverse('workouts_view') return HttpResponseRedirect(url) except KeyError: diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 98ace3a6..3ae8441c 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -222,6 +222,7 @@ from rowers.tasks import ( handle_sendemail_ical, handle_c2_async_workout, handle_send_email_instantplan_notification, + handle_nk_async_workout, ) from scipy.signal import savgol_filter From 2ec546337c0279465ed9f6dd63a4b78c2e1dc18e Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 2 Dec 2021 20:30:18 +0100 Subject: [PATCH 4/4] new checked --- rowers/views/importviews.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 94391969..fc8f7d1e 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -677,6 +677,8 @@ def workout_nkimport_view(request,userid=0,after=0,before=0): }, ] + checknew = request.GET.get('selectallnew',False) + return render(request,'nk_list_import.html', { 'workouts':workouts, @@ -686,7 +688,8 @@ def workout_nkimport_view(request,userid=0,after=0,before=0): 'enddate':enddate, 'active':'nav-workouts', 'breadcrumbs':breadcrumbs, - 'teams':get_my_teams(request.user) + 'teams':get_my_teams(request.user), + 'checknew':checknew, }) # Process Strava Callback