From a81e2117895a838f162485b9489a8114feb5628f Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 15 Aug 2019 14:27:58 +0200 Subject: [PATCH] Fix nested modlue slug --- server/books/schema/queries.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/server/books/schema/queries.py b/server/books/schema/queries.py index 2eae1eab..e31119f0 100644 --- a/server/books/schema/queries.py +++ b/server/books/schema/queries.py @@ -9,6 +9,19 @@ from rooms.models import ModuleRoomSlug from ..models import Book, Topic, Module, Chapter, ContentBlock +def process_module_room_slug_block(content): + if content['type'] == 'module_room_slug': + try: + module_room_slug = ModuleRoomSlug.objects.get(title=content['value']['title']) + content['value'] = { + 'title': content['value']['title'], + 'slug': module_room_slug.slug + } + except ModuleRoomSlug.DoesNotExist: + pass + return content + + class ContentBlockNode(DjangoObjectType): mine = graphene.Boolean() @@ -31,15 +44,11 @@ class ContentBlockNode(DjangoObjectType): if not are_solutions_enabled_for(info.context.user, self.module) and content['type'] == 'solution': continue - if content['type'] == 'module_room_slug': - try: - module_room_slug = ModuleRoomSlug.objects.get(title=content['value']['title']) - content['value'] = { - 'title': content['value']['title'], - 'slug': module_room_slug.slug - } - except ModuleRoomSlug.DoesNotExist: - pass + if content['type'] == 'content_list_item': + for index, list_block in enumerate(content['value']): + content['value'][index] = process_module_room_slug_block(list_block) + + content = process_module_room_slug_block(content) updated_stream_data.append(content) self.contents.stream_data = updated_stream_data @@ -108,7 +117,6 @@ class ModuleNode(DjangoObjectType): return Chapter.get_by_parent(self) def resolve_topic(self, info, **kwargs): - some = self.get_parent().specific return self.get_parent().specific def resolve_solutions_enabled(self, info, **kwargs):