diff --git a/rowers/models.py b/rowers/models.py index 92af3718..fb2567cf 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1571,9 +1571,11 @@ class TrainingTargetForm(ModelForm): if not teams: self.fields.pop('rowers') else: - self.fields['rowers'].queryset = Rower.objects.filter( + qs1 = Rower.objects.filter( team__in=teams ).distinct().order_by("user__last_name","user__first_name") + + self.fields['rowers'].queryset = qs1 class InstantPlan(models.Model): diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 14efce52..585087f5 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -1050,6 +1050,7 @@ def get_workouts_session(r,ps): def create_sessions_from_json(plansteps,rower,startdate,manager): trainingdays = plansteps['trainingDays'] + planstartdate = startdate for day in trainingdays: for workout in day['workouts']: sessionsport = 'water' @@ -1058,10 +1059,12 @@ def create_sessions_from_json(plansteps,rower,startdate,manager): except KeyError: pass + preferreddate = planstartdate+timedelta(days=day['order']) + print(preferreddate) ps = PlannedSession( - startdate = startdate+timedelta(days=day['order']), - enddate = startdate, - preferreddate = startdate, + startdate = preferreddate-timedelta(days=preferreddate.weekday()), + enddate = preferreddate+timedelta(days=-preferreddate.weekday(),weeks=1), + preferreddate = preferreddate, sessionsport = sessionsport, # change this name = workout['workoutName'], steps = workout, diff --git a/rowers/templates/plannedsessions.html b/rowers/templates/plannedsessions.html index 2f9f48e8..160abda7 100644 --- a/rowers/templates/plannedsessions.html +++ b/rowers/templates/plannedsessions.html @@ -47,6 +47,7 @@ Status + Date On or After On or Before Name @@ -78,6 +79,7 @@ href="/rowers/virtualevent/{{ ps.id }}/submit">  {% endif %} + {{ ps.preferreddate|date:"Y-m-d"}} {{ ps.startdate|date:"Y-m-d" }} {{ ps.enddate|date:"Y-m-d" }} diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py index c93fbceb..6a7a7b0f 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -95,6 +95,11 @@ def buy_trainingplan_view(request,id=0): r = request.user.rower + targets = TrainingTarget.objects.filter( + rowers=r, + date__gte=timezone.now(), + ).order_by("-date") + plan = get_object_or_404(InstantPlan,pk=id) if r.paymentprocessor != 'braintree': # pragma: no cover @@ -110,7 +115,7 @@ def buy_trainingplan_view(request,id=0): if request.method == 'POST': billingaddressform = RowerBillingAddressForm(instance=r) - form = InstantPlanSelectForm(request.POST) + form = InstantPlanSelectForm(request.POST,targets=targets) if billingaddressform.is_valid(): # pragma: no cover cd = billingaddressform.cleaned_data for attr, value in cd.items(): @@ -129,7 +134,8 @@ def buy_trainingplan_view(request,id=0): # get target and set enddate try: - target = cd['target'] + targetid = cd['target'] + target = TrainingTarget.objects.get(id=int(targetid)) except KeyError: try: targetid = request.POST['target']