From fe59ead06b6fdb5414e08947f39745fbe72f2316 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 21 Feb 2019 19:56:33 +0100 Subject: [PATCH] reinstated club sizes --- rowers/teams.py | 25 +++++++++++++++++++------ rowers/tests/test_permissions.py | 6 +++--- rowers/tests/testdata/testdata.csv.gz | Bin 12537 -> 12537 bytes 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/rowers/teams.py b/rowers/teams.py index d934b446..72efb3d4 100644 --- a/rowers/teams.py +++ b/rowers/teams.py @@ -111,16 +111,20 @@ def remove_team(id): def add_coach(coach,rower): # get coaching group + coachgroup = coach.mycoachgroup if coachgroup is None: coachgroup = CoachingGroup(name=coach.user.first_name) coachgroup.save() coach.mycoachgroup = coachgroup coach.save() - - rower.coachinggroups.add(coach.mycoachgroup) - return (1,"Added Coach") + if get_coach_club_size(coach)<=coach.clubsize: + rower.coachinggroups.add(coach.mycoachgroup) + + return (1,"Added Coach") + else: + return (0,"Maximum number of athletes reached") def add_member(id,rower): t= Team.objects.get(id=id) @@ -287,6 +291,15 @@ def create_request(team,user): return (0,'Something went wrong in create_request') +def get_coach_club_size(coach): + rs = Rower.objects.filter(coachinggroups__in=[coach.mycoachgroup]) + rekwests = CoachOffer.objects.filter(coach=coach) + + result = len(rs)+len(rekwests) + + return result + + # request by coach to coach user def create_coaching_offer(coach,user): r = user.rower @@ -299,7 +312,7 @@ def create_coaching_offer(coach,user): while code in codes: code = uuid.uuid4().hex[:10].upper() - if coach.rowerplan == 'coach': + if coach.rowerplan == 'coach' and get_coach_club_size(coach)<=coach.clubsize: rekwest = CoachOffer(coach=coach,user=user,code=code) rekwest.save() @@ -634,7 +647,7 @@ def process_coachrequest_code(coach,code): result = add_coach(coach,rekwest.user.rower) if not result: - return (result,"Something went wrong") + return result else: send_coachrequest_accepted_email(rekwest) @@ -655,7 +668,7 @@ def process_coachoffer_code(user,code): result = add_coach(rekwest.coach,rekwest.user.rower) if not result: - return (result,"Something went wrong") + return result else: send_coachoffer_accepted_email(rekwest) diff --git a/rowers/tests/test_permissions.py b/rowers/tests/test_permissions.py index 4b1122fd..a902d2fb 100644 --- a/rowers/tests/test_permissions.py +++ b/rowers/tests/test_permissions.py @@ -20,7 +20,7 @@ class PermissionsBasicsTests(TestCase): self.rcoach = Rower.objects.create(user=self.ucoach, birthdate=faker.profile()['birthdate'], gdproptin=True,gdproptindate=timezone.now(), - rowerplan='coach') + rowerplan='coach',clubsize=10) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.coachinggroup = CoachingGroup.objects.create() @@ -280,7 +280,7 @@ class PermissionsViewTests(TestCase): self.rcoach = Rower.objects.create(user=self.ucoach, birthdate=faker.profile()['birthdate'], gdproptin=True,gdproptindate=timezone.now(), - rowerplan='coach') + rowerplan='coach',clubsize=10) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.coachinggroup = CoachingGroup.objects.create() @@ -1009,7 +1009,7 @@ class PermissionsCoachingTests(TestCase): self.rcoach = Rower.objects.create(user=self.ucoach, birthdate=faker.profile()['birthdate'], gdproptin=True,gdproptindate=timezone.now(), - rowerplan='coach') + rowerplan='coach',clubsize=10) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.coachinggroup = CoachingGroup.objects.create() diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index ea8b8ca53a54a56f6bdc4e91cfa734f6e3cacd88..ab9bd8a4a3e7c24ea36b8ebb3f3f57365c5542f7 100644 GIT binary patch delta 15 WcmeyF_%o4BzMF&N$fu2LpA7&yHU|X& delta 15 WcmeyF_%o4BzMF&N{H={_pA7&y00#H~