Restrict objective groups for students
This commit is contained in:
parent
6e5b829ea1
commit
d372905d7b
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue