Add basic knowledge queries on server

This commit is contained in:
Ramon Wenger 2018-10-25 12:30:17 +02:00
parent 1cd31eb95a
commit 7044ccb1b9
2 changed files with 34 additions and 1 deletions

View File

@ -7,6 +7,7 @@ from graphene_django.debug import DjangoDebug
from api import graphene_wagtail # Keep this import exactly here, it's necessary for StreamField conversion
from assignments.schema.mutations import AssignmentMutations
from assignments.schema.queries import AssignmentsQuery, StudentSubmissionQuery
from basicknowledge.queries import BasicKnowledgeQuery
from books.schema.mutations.main import BookMutations
from books.schema.queries import BookQuery
from core.schema.mutations.main import CoreMutations
@ -18,7 +19,7 @@ from users.schema import UsersQuery
class Query(UsersQuery, RoomsQuery, ObjectivesQuery, BookQuery, AssignmentsQuery, StudentSubmissionQuery,
graphene.ObjectType):
BasicKnowledgeQuery, graphene.ObjectType):
node = relay.Node.Field()
if settings.DEBUG:

View File

@ -0,0 +1,32 @@
import graphene
from graphene import relay
from graphene_django import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField
from api.utils import get_object
from .models import BasicKnowledge
class BasicKnowledgeNode(DjangoObjectType):
class Meta:
model = BasicKnowledge
filter_fields = ['slug']
interfaces = (relay.Node,)
only_fields = [
'slug', 'title', 'type', 'contents',
]
class BasicKnowledgeQuery(object):
basic_knowledge = graphene.Field(BasicKnowledgeNode, slug=graphene.String(), id=graphene.ID())
basic_knowledge_pages = DjangoFilterConnectionField(BasicKnowledgeNode)
def resolve_basic_knowledge(self, info, **kwargs):
slug = kwargs.get('slug')
room_id = kwargs.get('id')
if room_id is not None:
return get_object(BasicKnowledge, room_id)
if slug is not None:
return BasicKnowledge.objects.get(slug=slug)
return None