Restrict objective groups for students

This commit is contained in:
Ramon Wenger 2018-11-01 10:57:45 +01:00
parent 6e5b829ea1
commit d372905d7b
1 changed files with 16 additions and 5 deletions

View File

@ -56,11 +56,6 @@ class ChapterNode(DjangoObjectType):
return publisher_content_blocks.union(user_created_content_blocks)
# if user.has_perm('users.can_manage_school_class_content'):
# return ContentBlock.get_by_parent(self)
# else:
# return ContentBlock.get_by_parent(self)
class ModuleNode(DjangoObjectType):
pk = graphene.Int()
@ -88,6 +83,22 @@ class ModuleNode(DjangoObjectType):
def resolve_chapters(self, info, **kwargs):
return Chapter.get_by_parent(self)
def resolve_objective_groups(self, info, **kwargs):
user = info.context.user
school_classes = user.school_classes.values_list('pk')
if user.has_perm('users.can_manage_school_class_content'): # teacher
publisher_objective_groups = self.objective_groups.filter(owner=None)
user_created_objective_groups = self.objective_groups.filter(owner=user)
else: # student
publisher_objective_groups = self.objective_groups.filter(owner=None).exclude(
hidden_for__in=school_classes)
user_created_objective_groups = self.objective_groups.filter(owner__isnull=False,
visible_for__in=school_classes)
return publisher_objective_groups.union(user_created_objective_groups)
class TopicNode(DjangoObjectType):
pk = graphene.Int()