diff --git a/rowers/nkstuff.py b/rowers/nkstuff.py
index 5ad04b85..eac4055e 100644
--- a/rowers/nkstuff.py
+++ b/rowers/nkstuff.py
@@ -112,13 +112,13 @@ def nk_open(user):
return thetoken
-def get_nk_workouts(rower, do_async=True):
+def get_nk_workouts(rower, do_async=True,before=0,after=0):
try:
thetoken = nk_open(rower.user)
except NoTokenError: # pragma: no cover
return 0
- res = get_nk_workout_list(rower.user)
+ res = get_nk_workout_list(rower.user,before=before,after=after)
if res.status_code != 200: # pragma: no cover
return 0
diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py
index fc4de918..eb8f65cc 100644
--- a/rowers/plannedsessions.py
+++ b/rowers/plannedsessions.py
@@ -879,9 +879,13 @@ def get_dates_timeperiod(request,startdatestring='',enddatestring='',
daterangetester = re.compile('^(\d+-\d+-\d+)\/(\d+-\d+-\d+)')
+
if timeperiod=='today': # pragma: no cover
startdate=date.today()
enddate=date.today()
+ elif timeperiod=='last30':
+ startdate = date.today()-timezone.timedelta(days=30)
+ enddate = date.today()+timezone.timedelta(days=1)
elif timeperiod=='tomorrow': # pragma: no cover
startdate=date.today()+timezone.timedelta(days=1)
enddate=date.today()+timezone.timedelta(days=1)
diff --git a/rowers/templates/nk_list_import.html b/rowers/templates/nk_list_import.html
index 3ad6a8b3..a9b43902 100644
--- a/rowers/templates/nk_list_import.html
+++ b/rowers/templates/nk_list_import.html
@@ -6,17 +6,28 @@
{% block main %}
Available on NK Logbook
-{% if workouts %}
+{% 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.
+ {% endif %}
+ -
+
+
+{% if workouts %}
-
-
-{% else %}
-
- No workouts found
-
+ {% else %}
+
+
+ No workouts found
+
+
{% endif %}
+
+
{% endblock %}
{% block sidebar %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 2c9a95f4..0377375f 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -494,6 +494,8 @@ urlpatterns = [
re_path(r'^workout/nkimport/$',views.workout_nkimport_view,name='workout_nkimport_view'),
re_path(r'^workout/nkimport/(?P\d+)/(?P\d+)/$',views.workout_nkimport_view,name='workout_nkimport_view'),
re_path(r'^workout/nkimport/all/$',views.workout_getnkworkout_all,name='workout_getnkworkout_all'),
+ 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/all/$',views.workout_getrp3workout_all,name='workout_getrp3workout_all'),
diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py
index 06ea12bf..343ac1bd 100644
--- a/rowers/views/importviews.py
+++ b/rowers/views/importviews.py
@@ -4,6 +4,7 @@ from __future__ import print_function
from __future__ import unicode_literals
from rowers.views.statements import *
+from rowers.plannedsessions import get_dates_timeperiod
import numpy
@@ -817,7 +818,14 @@ def rower_process_nkcallback(request): # pragma: no cover
return HttpResponseRedirect(url)
@login_required()
-def workout_getnkworkout_all(request):
+def workout_getnkworkout_all(request,startdatestring='',enddatestring=''):
+ startdate,enddate = get_dates_timeperiod(request,startdatestring=startdatestring,enddatestring=enddatestring)
+ before = arrow.get(enddate)
+ before = str(int(before.timestamp()*1000))
+
+ after = arrow.get(startdate)
+ after = str(int(after.timestamp()*1000))
+
try:
thetoken = nk_open(request.user)
except NoTokenError: # pragma: no cover
@@ -825,7 +833,7 @@ def workout_getnkworkout_all(request):
r = getrequestrower(request)
- result = nkstuff.get_nk_workouts(r,do_async=True)
+ result = nkstuff.get_nk_workouts(r,do_async=True,before=before,after=after)
if result:
messages.info(request,"Your NK workouts will be imported in the coming few minutes")
@@ -838,12 +846,38 @@ def workout_getnkworkout_all(request):
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid, raise_exception=True)
def workout_nkimport_view(request,userid=0,after=0,before=0):
+ startdate,enddate = get_dates_timeperiod(request,defaulttimeperiod='last30')
r = getrequestrower(request,userid=userid)
try:
thetoken = nk_open(request.user)
except NoTokenError: # pragma: no cover
return HttpResponseRedirect("/rowers/me/nkauthorize/")
+ if request.method == 'POST':
+ dateform = DateRangeForm(request.POST)
+ if dateform.is_valid():
+ startdate = dateform.cleaned_data['startdate']
+ enddate = dateform.cleaned_data['enddate']+datetime.timedelta(days=1)
+ else:
+ dateform = DateRangeForm(initial={
+ 'startdate':startdate,
+ 'enddate':enddate,
+ })
+
+ if enddate < startdate: # pragma: no cover
+ s = enddate
+ enddate = startdate
+ startdate = s
+
+ startdatestring = startdate.strftime('%Y-%m-%d')
+ enddatestring = enddate.strftime('%Y-%m-%d')
+
+ before = arrow.get(enddate)
+ before = str(int(before.timestamp()*1000))
+
+ after = arrow.get(startdate)
+ after = str(int(after.timestamp()*1000))
+
res = nkstuff.get_nk_workout_list(request.user,before=before,after=after)
if (res.status_code != 200): # pragma: no cover
@@ -921,6 +955,9 @@ def workout_nkimport_view(request,userid=0,after=0,before=0):
{
'workouts':workouts,
'rower':r,
+ 'dateform':dateform,
+ 'startdate':startdate,
+ 'enddate':enddate,
'active':'nav-workouts',
'breadcrumbs':breadcrumbs,
'teams':get_my_teams(request.user)