From 0b75e143933a1d969ac930d116c34f4030132ecf Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Wed, 13 Feb 2019 16:20:29 +0100 Subject: [PATCH] Move solution check to utils --- server/books/schema/queries.py | 10 ++-------- server/books/utils.py | 7 +++++++ server/core/settings.py | 9 ++------- 3 files changed, 11 insertions(+), 15 deletions(-) create mode 100644 server/books/utils.py diff --git a/server/books/schema/queries.py b/server/books/schema/queries.py index 1ad58f69..1c993b7a 100644 --- a/server/books/schema/queries.py +++ b/server/books/schema/queries.py @@ -4,15 +4,10 @@ from graphene_django import DjangoObjectType from graphene_django.filter import DjangoFilterConnectionField from api.utils import get_object -from users.models import User, Role +from books.utils import are_solutions_enabled_for from ..models import Book, Topic, Module, Chapter, ContentBlock -def are_solutions_enabled_for(user: User, module: Module): - teacher = user.users_in_same_school_class().filter(user_roles__role=Role.objects.get_default_teacher_role()).first() - return teacher is not None and module.solutions_enabled_by.filter(pk=teacher.pk).exists() - - class ContentBlockNode(DjangoObjectType): mine = graphene.Boolean() @@ -30,8 +25,7 @@ class ContentBlockNode(DjangoObjectType): return self.owner is not None and self.owner.pk == info.context.user.pk def resolve_contents(self, info, **kwargs): - if 'users.can_manage_school_class_content' not in info.context.user.get_role_permissions() \ - and not are_solutions_enabled_for(info.context.user, self.module): + if not are_solutions_enabled_for(info.context.user, self.module): self.contents.stream_data = [content for content in self.contents.stream_data if content['type'] != 'solution'] return self.contents diff --git a/server/books/utils.py b/server/books/utils.py new file mode 100644 index 00000000..b1049d8b --- /dev/null +++ b/server/books/utils.py @@ -0,0 +1,7 @@ +from books.models import Module +from users.models import User, Role + + +def are_solutions_enabled_for(user: User, module: Module): + teacher = user.users_in_same_school_class().filter(user_roles__role=Role.objects.get_default_teacher_role()).first() + return 'users.can_manage_school_class_content' in user.get_role_permissions() or (teacher is not None and module.solutions_enabled_by.filter(pk=teacher.pk).exists()) diff --git a/server/core/settings.py b/server/core/settings.py index 8e78efc2..9a4c40c7 100644 --- a/server/core/settings.py +++ b/server/core/settings.py @@ -279,7 +279,7 @@ LOGGING = { 'class': 'django.utils.log.AdminEmailHandler' }, 'console': { - 'level': 'DEBUG', + 'level': 'INFO', 'class': 'logging.StreamHandler', 'stream': sys.stdout, 'formatter': 'simple_format' @@ -288,14 +288,9 @@ LOGGING = { 'loggers': { '': { 'handlers': ['console'], - 'level': 'DEBUG', + 'level': 'INFO', 'propagate': True, }, - 'skillbox': { - 'handlers': ['console'], - 'level': 'DEBUG', - 'propagate': False, - }, 'django.security.DisallowedHost': { 'handlers': ['mail_admins'], 'level': 'CRITICAL',