Private
Public Access
1
0

corrected training plan permissions and form

This commit is contained in:
Sander Roosendaal
2019-05-16 16:02:50 +02:00
parent 3f1c456054
commit 304b2559c7
2 changed files with 13 additions and 8 deletions

View File

@@ -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')

View File

@@ -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