Private
Public Access
1
0

list of intervals

This commit is contained in:
2024-12-11 23:10:14 +01:00
parent 9834b83f4b
commit 34b11f86c2
4 changed files with 137 additions and 2 deletions

View File

@@ -681,8 +681,51 @@ def rower_process_testcallback(request): # pragma: no cover
return HttpResponse(text)
# view to list planned sessions from intervals.icu
@login_required()
@user_passes_test(isplanmember, login_url="/rowers/paidplans/",
message="This functionality requires a Self-coach plan or higher",
redirect_field_name=None)
def plannedsession_intervalsimport_view(request, message="", userid=0):
r = getrequestrower(request, userid=userid)
if r.user != request.user:
messages.error(
request, 'You can only access your own workouts on Intervals.icu, not those of your athletes')
url = reverse('plannedsession_intervalsimport_view',
kwargs={'userid': request.user.id})
return HttpResponseRedirect(url)
integration = importsources['intervals'](request.user)
sessions_list = integration.get_plannedsessions_list()
if request.method == 'POST': # pragma: no cover
try:
tdict = dict(request.POST.lists())
print(tdict)
ids = tdict['session']
sessionids = [int(id) for id in ids]
for sessionid in sessionids:
try:
_ = integration.get_plannedsession(sessionid)
except NoTokenError:
pass
messages.info(
request,
'Your Intervals.icu planned sessions will be imported in the background.'
' It may take a few minutes before they appear.')
url = reverse('plannedsessions_view')
return HttpResponseRedirect(url)
except KeyError:
pass
return render(request, 'intervals_list_import.html',
{
'folders': sessions_list,
'rower': r,
'active': 'nav-plans',
})
# The page where you select which Strava workout to import
@login_required()
@user_passes_test(isplanmember, login_url="/rowers/paidplans/",
message="This functionality requires a Self-coach plan or higher",