diff --git a/server/books/schema/connections.py b/server/books/schema/connections.py index 49e034aa..735f2c6c 100644 --- a/server/books/schema/connections.py +++ b/server/books/schema/connections.py @@ -1,7 +1,7 @@ import graphene from graphene import relay -from books.schema.nodes import ModuleNode, TopicNode +from books.schema.nodes import ModuleNode, TopicNode, ChapterNode, SnapshotChapterNode class NodeConnection(relay.Connection): @@ -20,6 +20,7 @@ class NodeConnection(relay.Connection): # nodes = graphene.List(TopicNode) """ + class Meta: abstract = True @@ -42,3 +43,27 @@ class TopicConnection(NodeConnection): class ModuleConnection(NodeConnection): class Meta: node = ModuleNode + + +class SnapshotChapterEdge: + description_visible = graphene.Boolean() + title_visible = graphene.Boolean() + + @staticmethod + def resolve_description_visible(parent, info, **kwargs): + return parent.node.description_visible + + @staticmethod + def resolve_title_visible(parent, info, **kwargs): + return parent.node.title_visible + + @staticmethod + def resolve_node(parent, info, **kwargs): + return parent.node.chapter + + +class ChapterSnapshotConnection(NodeConnection): + class Meta: + node = SnapshotChapterNode + + Edge = SnapshotChapterEdge diff --git a/server/books/schema/queries.py b/server/books/schema/queries.py index 7099beed..2e82d215 100644 --- a/server/books/schema/queries.py +++ b/server/books/schema/queries.py @@ -6,7 +6,7 @@ from api.utils import get_object from core.logger import get_logger from ..models import Book, Topic, Module, Chapter -from .nodes import ContentBlockNode, ChapterNode, ModuleNode, TopicNode, BookNode +from .nodes import ContentBlockNode, ChapterNode, ModuleNode, TopicNode from .connections import TopicConnection, ModuleConnection logger = get_logger(__name__) @@ -14,17 +14,13 @@ logger = get_logger(__name__) class BookQuery(object): node = relay.Node.Field() - book = relay.Node.Field(BookNode) topic = graphene.Field(TopicNode, slug=graphene.String()) module = graphene.Field(ModuleNode, slug=graphene.String(), id=graphene.ID()) chapter = relay.Node.Field(ChapterNode) content_block = relay.Node.Field(ContentBlockNode) - books = DjangoFilterConnectionField(BookNode) - topics = DjangoFilterConnectionField(TopicNode) - # topics = relay.ConnectionField(TopicConnection) - # modules = relay.ConnectionField(ModuleConnection) - modules = DjangoFilterConnectionField(ModuleNode) + topics = relay.ConnectionField(TopicConnection) + modules = relay.ConnectionField(ModuleConnection) chapters = DjangoFilterConnectionField(ChapterNode) def resolve_books(self, *args, **kwargs):