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 graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
from api.utils import get_object
|
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
|
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):
|
class ContentBlockNode(DjangoObjectType):
|
||||||
mine = graphene.Boolean()
|
mine = graphene.Boolean()
|
||||||
|
|
||||||
|
|
@ -30,8 +25,7 @@ class ContentBlockNode(DjangoObjectType):
|
||||||
return self.owner is not None and self.owner.pk == info.context.user.pk
|
return self.owner is not None and self.owner.pk == info.context.user.pk
|
||||||
|
|
||||||
def resolve_contents(self, info, **kwargs):
|
def resolve_contents(self, info, **kwargs):
|
||||||
if 'users.can_manage_school_class_content' not in info.context.user.get_role_permissions() \
|
if not are_solutions_enabled_for(info.context.user, self.module):
|
||||||
and not are_solutions_enabled_for(info.context.user, self.module):
|
|
||||||
self.contents.stream_data = [content for content in self.contents.stream_data if
|
self.contents.stream_data = [content for content in self.contents.stream_data if
|
||||||
content['type'] != 'solution']
|
content['type'] != 'solution']
|
||||||
return self.contents
|
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'
|
'class': 'django.utils.log.AdminEmailHandler'
|
||||||
},
|
},
|
||||||
'console': {
|
'console': {
|
||||||
'level': 'DEBUG',
|
'level': 'INFO',
|
||||||
'class': 'logging.StreamHandler',
|
'class': 'logging.StreamHandler',
|
||||||
'stream': sys.stdout,
|
'stream': sys.stdout,
|
||||||
'formatter': 'simple_format'
|
'formatter': 'simple_format'
|
||||||
|
|
@ -288,14 +288,9 @@ LOGGING = {
|
||||||
'loggers': {
|
'loggers': {
|
||||||
'': {
|
'': {
|
||||||
'handlers': ['console'],
|
'handlers': ['console'],
|
||||||
'level': 'DEBUG',
|
'level': 'INFO',
|
||||||
'propagate': True,
|
'propagate': True,
|
||||||
},
|
},
|
||||||
'skillbox': {
|
|
||||||
'handlers': ['console'],
|
|
||||||
'level': 'DEBUG',
|
|
||||||
'propagate': False,
|
|
||||||
},
|
|
||||||
'django.security.DisallowedHost': {
|
'django.security.DisallowedHost': {
|
||||||
'handlers': ['mail_admins'],
|
'handlers': ['mail_admins'],
|
||||||
'level': 'CRITICAL',
|
'level': 'CRITICAL',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue