corrected training plan permissions and form
This commit is contained in:
@@ -914,7 +914,7 @@ def check_teams_on_change(sender, **kwargs):
|
|||||||
team = Team.objects.get(id=id)
|
team = Team.objects.get(id=id)
|
||||||
if team.manager.rower.rowerplan not in ['coach']:
|
if team.manager.rower.rowerplan not in ['coach']:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
"You cannot join a team led by a Pro or Self-Coach user"
|
"You cannot join a team led by a Pro, Free Coach Plan or Self-Coach user"
|
||||||
)
|
)
|
||||||
|
|
||||||
m2m_changed.connect(check_teams_on_change, sender=Rower.team.through)
|
m2m_changed.connect(check_teams_on_change, sender=Rower.team.through)
|
||||||
@@ -1075,7 +1075,7 @@ def checkaccessplanuser(user,rower):
|
|||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if rower == r:
|
if rower == r:
|
||||||
return True
|
return True
|
||||||
team_managers = [t.manager for t in rower.team.all() if t.manager.rower.rowerplan in ['plan','coach']]
|
team_managers = [t.manager for t in rower.team.all() if t.manager.rower.rowerplan in ['plan','coach','freecoach']]
|
||||||
if user.rower.rowerplan != 'basic':
|
if user.rower.rowerplan != 'basic':
|
||||||
return user in team_managers
|
return user in team_managers
|
||||||
else:
|
else:
|
||||||
@@ -3271,7 +3271,7 @@ class AccountRowerForm(ModelForm):
|
|||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(AccountRowerForm, self).__init__(*args, **kwargs)
|
super(AccountRowerForm, self).__init__(*args, **kwargs)
|
||||||
if self.instance.rowerplan != 'coach':
|
if 'coach' not in self.instance.rowerplan:
|
||||||
self.fields.pop('offercoaching')
|
self.fields.pop('offercoaching')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -904,7 +904,7 @@ def plannedsessions_coach_view(request,
|
|||||||
else:
|
else:
|
||||||
theteam = False
|
theteam = False
|
||||||
|
|
||||||
if request.user.rower.rowerplan == 'coach':
|
if 'coach' in request.user.rower.rowerplan:
|
||||||
sps = get_sessions_manager(request.user,teamid=teamid,
|
sps = get_sessions_manager(request.user,teamid=teamid,
|
||||||
enddate=enddate,
|
enddate=enddate,
|
||||||
startdate=startdate)
|
startdate=startdate)
|
||||||
@@ -914,7 +914,7 @@ def plannedsessions_coach_view(request,
|
|||||||
|
|
||||||
rowers = [therower]
|
rowers = [therower]
|
||||||
for ps in sps:
|
for ps in sps:
|
||||||
if request.user.rower.rowerplan == 'coach':
|
if 'coach' in request.user.rower.rowerplan:
|
||||||
rowers += ps.rower.all()
|
rowers += ps.rower.all()
|
||||||
else:
|
else:
|
||||||
rowers += ps.rower.filter(team__in=rteams)
|
rowers += ps.rower.filter(team__in=rteams)
|
||||||
@@ -1569,7 +1569,7 @@ def plannedsession_view(request,id=0,userid=0):
|
|||||||
mm = Rower.objects.get(user=m)
|
mm = Rower.objects.get(user=m)
|
||||||
|
|
||||||
if ps.manager != request.user:
|
if ps.manager != request.user:
|
||||||
if r.rowerplan == 'coach' and r not in ps.rower.all():
|
if 'coach' in r.rowerplan and r not in ps.rower.all():
|
||||||
teams = Team.objects.filter(manager=request.user)
|
teams = Team.objects.filter(manager=request.user)
|
||||||
members = Rower.objects.filter(team__in=teams).distinct()
|
members = Rower.objects.filter(team__in=teams).distinct()
|
||||||
teamusers = [m.user for m in members]
|
teamusers = [m.user for m in members]
|
||||||
@@ -1808,6 +1808,10 @@ def rower_create_trainingplan(request,userid=0):
|
|||||||
name = targetform.cleaned_data['name']
|
name = targetform.cleaned_data['name']
|
||||||
date = targetform.cleaned_data['date']
|
date = targetform.cleaned_data['date']
|
||||||
notes = targetform.cleaned_data['notes']
|
notes = targetform.cleaned_data['notes']
|
||||||
|
try:
|
||||||
|
rowers = targetform.cleaned_data['rowers']
|
||||||
|
except KeyError:
|
||||||
|
rowers = [therower]
|
||||||
|
|
||||||
t = TrainingTarget(
|
t = TrainingTarget(
|
||||||
name=name,
|
name=name,
|
||||||
@@ -1817,7 +1821,8 @@ def rower_create_trainingplan(request,userid=0):
|
|||||||
|
|
||||||
|
|
||||||
t.save()
|
t.save()
|
||||||
t.rowers.add(therower)
|
for athlete in rowers:
|
||||||
|
t.rowers.add(athlete)
|
||||||
t.save()
|
t.save()
|
||||||
|
|
||||||
elif request.method == 'POST' and 'startdate' in request.POST:
|
elif request.method == 'POST' and 'startdate' in request.POST:
|
||||||
@@ -2589,7 +2594,7 @@ class TrainingPlanUpdate(UpdateView):
|
|||||||
obj = super(TrainingPlanUpdate, self).get_object(*args, **kwargs)
|
obj = super(TrainingPlanUpdate, self).get_object(*args, **kwargs)
|
||||||
if obj.manager is not None and self.request.user.rower != obj.manager:
|
if obj.manager is not None and self.request.user.rower != obj.manager:
|
||||||
raise PermissionDenied('You are not allowed to edit this training plan cycle')
|
raise PermissionDenied('You are not allowed to edit this training plan cycle')
|
||||||
if obj.manager.rowerplan not in ['coach','plan']:
|
if obj.manager.rowerplan not in ['coach','freecoach','plan']:
|
||||||
raise PermissionDenied('You are not allowed to edit this training plan')
|
raise PermissionDenied('You are not allowed to edit this training plan')
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|||||||
Reference in New Issue
Block a user