diff --git a/server/users/models.py b/server/users/models.py index 5fb2f2ea..0edc869d 100644 --- a/server/users/models.py +++ b/server/users/models.py @@ -37,6 +37,14 @@ class User(AbstractUser): def users_in_same_school_class(self): return User.objects.filter(school_classes__users=self.pk) + def get_teacher(self): + if self.user_roles.filter(role__key='teacher').exists(): + return self + elif self.school_classes.count()>0: + return self.school_classes.first().get_teacher() + else: + return None + def selected_class(self): try: settings = UserSetting.objects.get(user=self) @@ -65,6 +73,9 @@ class SchoolClass(models.Model): def is_user_in_schoolclass(self, user): return user.is_superuser or user.school_classes.filter(pk=self.id).count() > 0 + def get_teacher(self): + return self.users.filter(user_roles__role__key='teacher').first() + class Role(models.Model): key = models.CharField(_('Key'), max_length=100, blank=False, null=False, unique=True)