first working version of exported session to intervals.icu
This commit is contained in:
@@ -7,6 +7,7 @@ from rowers.views.statements import *
|
||||
from rowers.plannedsessions import get_dates_timeperiod
|
||||
from rowers.tasks import fetch_strava_workout
|
||||
from rowers.utils import NoTokenError
|
||||
from rowers.models import PlannedSession
|
||||
|
||||
import rowers.integrations.strava as strava
|
||||
from rowers.integrations import importsources
|
||||
|
||||
@@ -2052,6 +2052,41 @@ def plannedsession_templateedit_view(request, id=0):
|
||||
'steps': steps,
|
||||
})
|
||||
|
||||
@permission_required('plannedsession.change_session', fn=get_session_by_pk, raise_exception=True)
|
||||
@user_passes_test(can_plan, login_url="/rowers/paidplans/",
|
||||
message="This functionality requires a Coach or Self-Coach plan",
|
||||
redirect_field_name=None)
|
||||
def plannedsession_tointervals_view(request, id=0):
|
||||
|
||||
r = getrequestplanrower(request)
|
||||
|
||||
startdate, enddate = get_dates_timeperiod(request)
|
||||
startdate = startdate.date()
|
||||
enddate = enddate.date()
|
||||
|
||||
ps = get_object_or_404(PlannedSession, pk=id)
|
||||
|
||||
intervals = IntervalsIntegration(request.user)
|
||||
result = intervals.plannedsession_create(ps)
|
||||
|
||||
if not result: # pragma: no cover
|
||||
messages.error(
|
||||
request, 'You failed to export your session to Intervals')
|
||||
else:
|
||||
messages.info(
|
||||
request, 'Session is now on Intervals.')
|
||||
|
||||
url = reverse(plannedsession_view, kwargs={'userid': r.user.id,
|
||||
'id': ps.id, })
|
||||
|
||||
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||
enddatestring = enddate.strftime('%Y-%m-%d')
|
||||
url += '?when='+startdatestring+'/'+enddatestring
|
||||
|
||||
next = request.GET.get('next', url)
|
||||
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
|
||||
@permission_required('plannedsession.change_session', fn=get_session_by_pk, raise_exception=True)
|
||||
@user_passes_test(can_plan, login_url="/rowers/paidplans/",
|
||||
@@ -2486,6 +2521,7 @@ def plannedsession_view(request, id=0, userid=0):
|
||||
if ps.steps: # pragma: no cover
|
||||
d = ps.steps
|
||||
steps = ps_dict_get_description_html(d, short=False)
|
||||
steps_intervals = ps.steps_intervals()
|
||||
|
||||
return render(request, 'plannedsessionview.html',
|
||||
{
|
||||
@@ -2516,6 +2552,7 @@ def plannedsession_view(request, id=0, userid=0):
|
||||
'coursediv': coursediv,
|
||||
'comments': comments,
|
||||
'steps': steps,
|
||||
'steps_intervals': steps_intervals,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2707,6 +2744,7 @@ def rower_view_instantplan(request, id='', userid=0):
|
||||
startdate = form.cleaned_data['startdate']
|
||||
notes = form.cleaned_data['notes']
|
||||
datechoice = form.cleaned_data['datechoice']
|
||||
plan_past_days = form.cleaned_data['plan_past_days']
|
||||
status = True
|
||||
|
||||
if target and datechoice == 'target': # pragma: no cover
|
||||
@@ -2726,10 +2764,14 @@ def rower_view_instantplan(request, id='', userid=0):
|
||||
notes=notes,
|
||||
)
|
||||
|
||||
if not plan_past_days:
|
||||
p.startdate = timezone.now().date()
|
||||
|
||||
p.save()
|
||||
p.rowers.add(r)
|
||||
|
||||
create_sessions_from_json(plansteps, r, startdate, r.user, planbyrscore=byrscore, plan=p, asynchronous=True)
|
||||
create_sessions_from_json(plansteps, r, startdate, r.user, planbyrscore=byrscore,
|
||||
plan=p, plan_past_days = plan_past_days, asynchronous=True)
|
||||
|
||||
messages.info(request, 'Your Sessions have been added')
|
||||
|
||||
@@ -3336,8 +3378,8 @@ class TrainingPlanDelete(DeleteView):
|
||||
success_url = reverse_lazy(rower_create_trainingplan)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
delete_sessions = request.POST.get('delete_sessions')
|
||||
delete_all_sessions = request.POST.get('delete_all_sessions')
|
||||
delete_sessions = request.POST.get('delete_sessions',0)
|
||||
delete_all_sessions = request.POST.get('delete_all_sessions',0)
|
||||
self.object = self.get_object()
|
||||
self.object.delete(delete_sessions=delete_sessions, delete_all_sessions=delete_all_sessions)
|
||||
return HttpResponseRedirect(self.get_success_url())
|
||||
|
||||
Reference in New Issue
Block a user