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..fc8f7d1e 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(): + 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.') + url = reverse('workouts_view') + return HttpResponseRedirect(url) + except KeyError: + pass + breadcrumbs = [ { 'url':'/rowers/list-workouts/', @@ -648,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, @@ -657,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 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