diff --git a/rowers/nkstuff.py b/rowers/nkstuff.py
index 5ad04b85..cff6cd7b 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
@@ -221,11 +221,11 @@ def get_nk_workout_list(user,fake=False,after=0,before=0):
return custom_exception_handler(401,s)
else:
# ready to fetch. Hurray
- if not before:
+ if not before: # pragma: no cover
before = arrow.now()+timedelta(days=1)
before = str(int(before.timestamp())*1000)
- if not after:
- after = arrow.now()-timedelta(days=30)
+ if not after: # pragma: no cover
+ after = arrow.now()-timedelta(days=7)
after = str(int(after.timestamp())*1000)
authorizationstring = str('Bearer ' + r.nktoken)
headers = {'Authorization': authorizationstring,
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/uploads.py b/rowers/uploads.py
index 3044c489..dd2d7cb1 100644
--- a/rowers/uploads.py
+++ b/rowers/uploads.py
@@ -622,7 +622,7 @@ def do_sync(w,options, quick=False):
do_tp_export = w.user.trainingpeaks_auto_export
- try:
+ try: # pragma: no cover
upload_to_tp = options['upload_to_SportTracks'] or do_tp_export
do_tp_export = upload_to_tp
except KeyError:
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/analysisviews.py b/rowers/views/analysisviews.py
index 607ebdba..365bf5dd 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -2266,7 +2266,7 @@ def history_view(request,userid=0):
lastyear = datetime.datetime(year=today.year-1,month=today.month,day=today.day)
firstmay = datetime.datetime(year=today.year,month=5,day=1).astimezone(usertimezone)
- if firstmay>today:
+ if firstmay>today: # pragma: no cover
firstmay = datetime.datetime(year=today.year-1,month=5,day=1)
diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py
index 06ea12bf..870ed075 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': # pragma: no cover
+ 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)