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): def __init__(self,*args, **kwargs):
user = kwargs.pop('user',None)
super(TrainingTargetForm, self).__init__(*args, **kwargs) super(TrainingTargetForm, self).__init__(*args, **kwargs)
try: try:
teams = Team.objects.filter(manager=self.instance.manager.user) 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: except AttributeError:
if user:
teams = Team.objects.filter(manager=user)
else:
teams = []
if not teams:
self.fields.pop('rowers') 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 # SportTracks has a TrainingGoal like this
@@ -1095,6 +1101,7 @@ class TrainingPlanForm(ModelForm):
def __init__(self,*args, **kwargs): def __init__(self,*args, **kwargs):
targets = kwargs.pop('targets',None) targets = kwargs.pop('targets',None)
user = kwargs.pop('user',None)
super(TrainingPlanForm, self).__init__(*args, **kwargs) super(TrainingPlanForm, self).__init__(*args, **kwargs)
if targets: if targets:
@@ -1110,15 +1117,18 @@ class TrainingPlanForm(ModelForm):
try: try:
teams = Team.objects.filter(manager=self.instance.manager.user) 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: except AttributeError:
if user:
teams = Team.objects.filter(manager=user)
else:
teams = []
if not teams:
self.fields.pop('rowers') 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 = ( cycletypechoices = (
('filler','System Defined'), ('filler','System Defined'),

View File

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