diff --git a/server/books/factories.py b/server/books/factories.py index 00e3951b..09c22649 100644 --- a/server/books/factories.py +++ b/server/books/factories.py @@ -4,6 +4,7 @@ import factory import wagtail_factories from django.contrib.auth import get_user_model from factory import CREATE_STRATEGY +from wagtail.core import blocks from wagtail.core.models import Page from wagtail.core.rich_text import RichText @@ -96,6 +97,17 @@ class AssignmentBlockFactory(wagtail_factories.StructBlockFactory): class Meta: model = AssignmentBlock + @classmethod + def _build(cls, model_class, *args, **kwargs): + block = model_class() + return blocks.StructValue( + block, + # todo: build in a more generic fashion + [ + (name, kwargs['assignment']) for name, child_block in block.child_blocks.items() + ], + ) + class VideoBlockFactory(wagtail_factories.StructBlockFactory): url = factory.LazyAttribute(lambda x: 'https://www.youtube.com/watch?v=lO9d-AJai8Q') @@ -139,7 +151,7 @@ class ContentBlockFactory(BasePageFactory): owner=user, module=module ) - kwargs['{}__{}__{}__{}'.format(stream_field_name, idx, block_type, 'assignment_id')] = assignment.id + kwargs['{}__{}__{}__{}'.format(stream_field_name, idx, block_type, 'assignment')] = assignment else: diff --git a/server/core/management/commands/data/module_data.py b/server/core/management/commands/data/module_data.py index 76e364b1..44ff137d 100644 --- a/server/core/management/commands/data/module_data.py +++ b/server/core/management/commands/data/module_data.py @@ -49,6 +49,19 @@ module_1_chapter_1 = { 'title': '1.1 Lehrbeginn', 'description': 'Wie sieht Ihr Konsumverhalten aus?', 'content_blocks': [ + { + 'type': 'normal', + 'title': 'Assignment', + 'contents': [ + { + 'type': 'assignment', + 'value': { + 'assignment': 'Ein Auftrag', + 'title': 'Ein Auftragstitel' + } + }, + ] + }, { 'type': 'task', 'title': 'Auftrag 1', diff --git a/server/rooms/schema.py b/server/rooms/schema.py index e9bc1306..4ea816ad 100644 --- a/server/rooms/schema.py +++ b/server/rooms/schema.py @@ -86,7 +86,6 @@ class RoomsQuery(object): class ModuleRoomsQuery(object): - module_room = graphene.Field(RoomNode, slug=graphene.String(), class_id=graphene.ID()) def resolve_module_room(self, info, **kwargs):