Move solution check to utils

This commit is contained in:
Ramon Wenger 2019-02-13 16:20:29 +01:00
parent 4c5a786e7d
commit 0b75e14393
3 changed files with 11 additions and 15 deletions

View File

@ -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

7
server/books/utils.py Normal file
View File

@ -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())

View File

@ -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',