adding date filter to NK import
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 %}
|
||||
<p>
|
||||
No workouts found
|
||||
</p>
|
||||
{% else %}
|
||||
<li class="grid_4">
|
||||
<p>
|
||||
No workouts found
|
||||
</p>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user