Private
Public Access
1
0

Merge branch 'feature/nkimprovements' into develop

This commit is contained in:
Sander Roosendaal
2021-05-01 16:14:31 +02:00
7 changed files with 73 additions and 16 deletions
+5 -5
View File
@@ -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,
+4
View File
@@ -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)
+18 -4
View File
@@ -6,17 +6,28 @@
{% block main %}
<h1>Available on NK Logbook</h1>
{% if workouts %}
<ul class="main-content">
{% if workouts %}
<li>
<a href="/rowers/workout/nkimport/all/" class="blue button">Import all NEW</a>
<a href="/rowers/workout/nkimport/all/{{ startdate }}/{{ enddate }}" class="blue button">Import all NEW</a>
</li>
<li class="grid_3">
<p>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.
</p>
</li>
{% endif %}
<li class="grid_2">
<form enctype="multipart/form-data" method="post">
<table>
{{ dateform.as_table }}
</table>
{% csrf_token %}
<input name='daterange' type="submit" value="Select Dates">
</form>
</li>
{% if workouts %}
<li class="grid_4">
<table width="70%" class="listtable">
<thead>
@@ -45,12 +56,15 @@
</tbody>
</table>
</li>
</ul>
{% else %}
{% else %}
<li class="grid_4">
<p>
No workouts found
</p>
</li>
{% endif %}
</ul>
{% endblock %}
{% block sidebar %}
+1 -1
View File
@@ -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:
+2
View File
@@ -494,6 +494,8 @@ urlpatterns = [
re_path(r'^workout/nkimport/$',views.workout_nkimport_view,name='workout_nkimport_view'),
re_path(r'^workout/nkimport/(?P<after>\d+)/(?P<before>\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<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workout_getnkworkout_all,
name='workout_getnkworkout_all'),
re_path(r'^workout/rp3import/(?P<externalid>\d+)/$',views.workout_getrp3importview,
name='workout_getrp3importview'),
re_path(r'^workout/rp3import/all/$',views.workout_getrp3workout_all,name='workout_getrp3workout_all'),
+1 -1
View File
@@ -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)
+39 -2
View File
@@ -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)