From ef4fb4b20e93408f165b4b375c1ea22fa246a01d Mon Sep 17 00:00:00 2001 From: Pawel Kowalski Date: Thu, 16 Aug 2018 15:48:46 +0200 Subject: [PATCH] Generate all types of content --- server/book/blocks.py | 6 +++--- server/book/factories.py | 24 ++++++++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/server/book/blocks.py b/server/book/blocks.py index 24b28dac..c6849198 100644 --- a/server/book/blocks.py +++ b/server/book/blocks.py @@ -10,13 +10,13 @@ class TextBlock(blocks.StructBlock): # 'modal_text' class ModalTextBlock(blocks.StructBlock): - description = blocks.CharBlock() - modal_content = blocks.CharBlock() + description = blocks.RichTextBlock() + url = blocks.URLBlock() # 'student_entry' class StudentEntryBlock(blocks.StructBlock): - task_text = blocks.CharBlock() + task_text = blocks.RichTextBlock() # 'text_block' 'task' 'modal_text' 'student_entry' 'image_block' diff --git a/server/book/factories.py b/server/book/factories.py index e0066b6e..d6f64df2 100644 --- a/server/book/factories.py +++ b/server/book/factories.py @@ -6,7 +6,7 @@ import wagtail_factories from factory import CREATE_STRATEGY from wagtail.core.rich_text import RichText -from book.blocks import ModalTextBlock +from book.blocks import ModalTextBlock, StudentEntryBlock from book.models import Book, Topic, Module, Chapter, ContentBlock, TextBlock from core.factories import BasePageFactory, fake, DummyImageFactory, fake_title, fake_title_noparam @@ -51,12 +51,18 @@ class TextBlockFactory(wagtail_factories.StructBlockFactory): class ModalTextBlockFactory(wagtail_factories.StructBlockFactory): description = factory.LazyAttribute(fake_title) - modal_content = factory.LazyAttribute(fake_title) + url = factory.LazyAttribute(lambda x: fake.uri()) class Meta: model = ModalTextBlock +class StudentEntryBlockFactory(wagtail_factories.StructBlockFactory): + + class Meta: + model = StudentEntryBlock + + block_types = ['text_block', 'modal_text', 'student_entry', 'image_block', 'task'] @@ -69,7 +75,9 @@ class ContentBlockFactory(BasePageFactory): contents = wagtail_factories.StreamFieldFactory({ 'text_block': TextBlockFactory, 'modal_text': ModalTextBlockFactory, - 'image_block': wagtail_factories.ImageChooserBlockFactory + 'student_entry': StudentEntryBlockFactory, + 'image_block': wagtail_factories.ImageChooserBlockFactory, + 'task': TextBlockFactory }) @classmethod @@ -85,11 +93,15 @@ class ContentBlockFactory(BasePageFactory): block_type = random.choice(block_types) if block_type == 'text_block': kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'text_block', 'text')] = RichText(fake_title_noparam()) + elif block_type == 'modal_text': + kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'modal_text', 'description')] = RichText(fake_title_noparam()) + # kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'modal_text', 'description')] = ..url.. + elif block_type == 'student_entry': + kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'student_entry', 'task_text')] = RichText(fake_title_noparam()) elif block_type == 'image_block': kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'image_block', 'image__title')] = fake_title_noparam() - - # for i in range(4, 6): - # kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'image_block', 'image')] = '' + elif block_type == 'task': + kwargs['{}__{}__{}__{}'.format(stream_field_name, i, 'task', 'text')] = RichText(fake_title_noparam()) @classmethod def create(cls, **kwargs):