Move solution check to utils
This commit is contained in:
parent
4c5a786e7d
commit
0b75e14393
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in New Issue