Private
Public Access
1
0

adding athlete selector for coaches when creating target/plan

This commit is contained in:
Sander Roosendaal
2018-11-12 11:50:52 +01:00
parent 7a39e42575
commit dae9c80f6f
2 changed files with 38 additions and 21 deletions

View File

@@ -973,18 +973,24 @@ class TrainingTargetForm(ModelForm):
}
def __init__(self,*args, **kwargs):
user = kwargs.pop('user',None)
super(TrainingTargetForm, self).__init__(*args, **kwargs)
try:
teams = Team.objects.filter(manager=self.instance.manager.user)
if not teams:
self.fields.pop('rowers')
else:
self.fields['rowers'].queryset = Rower.objects.filter(
team__in=teams
).distinct().order_by("user__last_name","user__first_name")
except AttributeError:
if user:
teams = Team.objects.filter(manager=user)
else:
teams = []
if not teams:
self.fields.pop('rowers')
else:
self.fields['rowers'].queryset = Rower.objects.filter(
team__in=teams
).distinct().order_by("user__last_name","user__first_name")
# SportTracks has a TrainingGoal like this
@@ -1095,6 +1101,7 @@ class TrainingPlanForm(ModelForm):
def __init__(self,*args, **kwargs):
targets = kwargs.pop('targets',None)
user = kwargs.pop('user',None)
super(TrainingPlanForm, self).__init__(*args, **kwargs)
if targets:
@@ -1110,15 +1117,18 @@ class TrainingPlanForm(ModelForm):
try:
teams = Team.objects.filter(manager=self.instance.manager.user)
if not teams:
self.fields.pop('rowers')
else:
self.fields['rowers'].queryset = Rower.objects.filter(
team__in=teams
).distinct().order_by("user__last_name","user__first_name")
except AttributeError:
if user:
teams = Team.objects.filter(manager=user)
else:
teams = []
if not teams:
self.fields.pop('rowers')
else:
self.fields['rowers'].queryset = Rower.objects.filter(
team__in=teams
).distinct().order_by("user__last_name","user__first_name")
cycletypechoices = (
('filler','System Defined'),

View File

@@ -16263,7 +16263,7 @@ def rower_create_trainingplan(request,userid=0):
themanager = getrower(request.user)
if request.method == 'POST' and 'date' in request.POST:
targetform = TrainingTargetForm(request.POST)
targetform = TrainingTargetForm(request.POST,user=request.user)
if targetform.is_valid():
name = targetform.cleaned_data['name']
date = targetform.cleaned_data['date']
@@ -16281,22 +16281,26 @@ def rower_create_trainingplan(request,userid=0):
t.save()
elif request.method == 'POST' and 'startdate' in request.POST:
form = TrainingPlanForm(request.POST)
form = TrainingPlanForm(request.POST,user=request.user)
if form.is_valid():
name = form.cleaned_data['name']
try:
target = form.cleaned_data['target']
except KeyError:
try:
targetid = request.POST['target']
target = TrainingTarget.objects.get(id=targetid)
if targetid != '':
target = TrainingTarget.objects.get(id=int(targetid))
else:
target = None
except KeyError:
target = None
startdate = form.cleaned_data['startdate']
enddate = form.cleaned_data['enddate']
athletes = form.cleaned_data['rowers']
p = TrainingPlan(
name=name,
@@ -16307,20 +16311,23 @@ def rower_create_trainingplan(request,userid=0):
)
p.save()
p.rowers.add(therower)
for athlete in athletes:
p.rowers.add(athlete)
targets = TrainingTarget.objects.filter(
rowers=therower,
date__gte=datetime.date.today(),
).order_by("date")
targetform = TrainingTargetForm()
targetform = TrainingTargetForm(user=request.user)
plans = TrainingPlan.objects.filter(rowers=therower).order_by("-startdate")
form = TrainingPlanForm(targets=targets,initial={'status':False})
form = TrainingPlanForm(targets=targets,
initial={'status':False,'rowers':[therower]},
user=request.user)
breadcrumbs = [
{