From 025999969587240ca4bec7168195b3fd28fb64e5 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 20 Jun 2022 21:27:53 +0200 Subject: [PATCH] fixing auto import for coachees --- rowers/management/commands/processemail.py | 8 ++++---- rowers/rower_rules.py | 4 ++++ rowers/tests/test_permissions.py | 5 ++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 591ab34c..55b4fc32 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -34,7 +34,7 @@ import rowers.stravastuff as stravastuff import rowers.nkstuff as nkstuff from rowers.opaque import encoder -from rowers.rower_rules import user_is_not_basic +from rowers.rower_rules import user_is_not_basic, user_is_coachee from rowers.utils import dologging # If you find a solution that does not need the two paths, please comment! @@ -90,7 +90,7 @@ class Command(BaseCommand): try: rowers = Rower.objects.filter(c2_auto_import=True) for r in rowers: # pragma: no cover - if user_is_not_basic(r.user): + if user_is_not_basic(r.user) or user_is_coachee(r.user): c2stuff.get_c2_workouts(r) except: # pragma: no cover exc_type, exc_value, exc_traceback = sys.exc_info() @@ -100,7 +100,7 @@ class Command(BaseCommand): try: rowers = Rower.objects.filter(rp3_auto_import=True) for r in rowers: # pragma: no cover - if user_is_not_basic(r.user): + if user_is_not_basic(r.user) or user_is_coachee(r.user): _ = rp3stuff.get_rp3_workouts(r) except: # pragma: no cover exc_type, exc_value, exc_traceback = sys.exc_info() @@ -111,7 +111,7 @@ class Command(BaseCommand): rowers = Rower.objects.filter(nk_auto_import=True) for r in rowers: # pragma: no cover dologging("nklog.log","NK Auto import set for rower {id}".format(id=r.user.id)) - if user_is_not_basic(r.user): + if user_is_not_basic(r.user) or user_is_coachee(r.user): dologging("nklog.log","User is not basic") _ = nkstuff.get_nk_workouts(r) except: # pragma: no cover diff --git a/rowers/rower_rules.py b/rowers/rower_rules.py index b93d42ef..33724ef2 100644 --- a/rowers/rower_rules.py +++ b/rowers/rower_rules.py @@ -84,6 +84,10 @@ def user_is_not_basic(user): if user.rower.protrialexpires >= timezone.now().date(): return True # pragma: no cover + return False + +@rules.predicate +def user_is_coachee(user): coaches = user.rower.get_coaches() for coach in coaches: if coach.rowerplan == 'coach': diff --git a/rowers/tests/test_permissions.py b/rowers/tests/test_permissions.py index 5f4bcdd2..0f5a8c3e 100644 --- a/rowers/tests/test_permissions.py +++ b/rowers/tests/test_permissions.py @@ -13,7 +13,7 @@ from django.db import transaction import rowers.teams as teams import rowers.plannedsessions as plannedsessions -from rowers.rower_rules import is_coach_user +from rowers.rower_rules import is_coach_user, user_is_coachee @override_settings(TESTING=True) class PlanningPermissionsCoach(TestCase): @@ -94,6 +94,9 @@ class PlanningPermissionsCoach(TestCase): athletes = plan.rowers.all() self.assertTrue(self.rgroupmember in athletes) + def test_coachee_can_sync(self): + self.assertTrue(user_is_coachee(self.ucoachee)) + @override_settings(TESTING=True) class PermissionsFreeCoach(TestCase):