Fix content blocks in `dummy_data` command

This commit is contained in:
Ramon Wenger 2023-12-12 15:43:12 +01:00
parent 8c9dfaf98c
commit 75ecaedd29
1 changed files with 14 additions and 8 deletions

View File

@ -209,8 +209,8 @@ class ModuleTypeFactory(factory.django.DjangoModelFactory):
block_types = [
"text_block",
"basic_knowledge",
"student_entry",
# "basic_knowledge",
# "student_entry",
"image_url_block",
"solution",
]
@ -224,7 +224,7 @@ class ContentBlockFactory(BasePageFactory):
lambda x: random.choice(
[
"normal",
"instrument",
# "instrument",
"task",
]
)
@ -233,7 +233,7 @@ class ContentBlockFactory(BasePageFactory):
contents = wagtail_factories.StreamFieldFactory(
{
"text_block": factory.SubFactory(TextBlockFactory),
"basic_knowledge": factory.SubFactory(BasicKnowledgeBlockFactory),
# "basic_knowledge": factory.SubFactory(BasicKnowledgeBlockFactory),
"assignment": factory.SubFactory(AssignmentBlockFactory),
"image_block": factory.SubFactory(
wagtail_factories.ImageChooserBlockFactory
@ -248,6 +248,7 @@ class ContentBlockFactory(BasePageFactory):
@classmethod
def stream_field_magic(cls, module, kwargs, stream_field_name):
user = get_user_model().objects.first()
if stream_field_name in kwargs:
"""
stream_field_name is most likely 'contents'
@ -259,7 +260,6 @@ class ContentBlockFactory(BasePageFactory):
block_type = resource["type"]
if block_type == "assignment":
user = get_user_model().objects.first()
assignment = Assignment.objects.create(
title=value["title"],
assignment=value["assignment"],
@ -268,7 +268,7 @@ class ContentBlockFactory(BasePageFactory):
)
kwargs[
"{}__{}__{}__{}".format(
stream_field_name, idx, block_type, "assignment"
stream_field_name, idx, block_type, "assignment_id"
)
] = assignment
elif block_type == "survey":
@ -338,9 +338,15 @@ class ContentBlockFactory(BasePageFactory):
)
] = RichText(fake_paragraph())
elif block_type == "assignment":
assignment = Assignment.objects.create(
title=fake_title(),
assignment=fake_paragraph(),
owner=user,
module=module,
)
kwargs[
"{}__{}__{}__{}".format(
stream_field_name, i, "assignment", "task_text"
stream_field_name, i, "assignment_id", assignment
)
] = RichText(fake_paragraph())
elif block_type == "image_url_block":
@ -365,5 +371,5 @@ class ContentBlockFactory(BasePageFactory):
@classmethod
def create(cls, module, **kwargs):
# cls.stream_field_magic(module, kwargs, "contents")
cls.stream_field_magic(module, kwargs, "contents")
return cls._generate(CREATE_STRATEGY, kwargs)