# Generated by Django 5.0.2 on 2024-04-05 16:56 import json import wagtail.blocks import wagtail.embeds.blocks import wagtail.fields import wagtail.images.blocks from django.core.serializers.json import DjangoJSONEncoder from django.db import migrations def convert_to_streamfield(apps, schema_editor): HomePage = apps.get_model("home", "HomePage") for page in HomePage.objects.all(): page.body = json.dumps( [{"type": "paragraph", "value": page.body}], cls=DjangoJSONEncoder ) page.save() def convert_to_richtext(apps, schema_editor): HomePage = apps.get_model("home", "HomePage") for page in HomePage.objects.all(): if page.body: stream = json.loads(page.body) page.body = "".join([ child["value"] for child in stream if child["type"] == "paragraph" ]) page.save() class Migration(migrations.Migration): dependencies = [ ('home', '0005_homepage_canonical_url_homepage_og_image_and_more'), ] operations = [ migrations.RunPython( convert_to_streamfield, convert_to_richtext, ), migrations.AlterField( model_name='homepage', name='body', field=wagtail.fields.StreamField([('heading_block', wagtail.blocks.StructBlock( [('heading_text', wagtail.blocks.CharBlock(form_classname='title', required=True)), ('size', wagtail.blocks.ChoiceBlock( blank=True, choices=[('', 'Select a heading size'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4')], required=False))])), ('paragraph', wagtail.blocks.RichTextBlock(blank=True)), ('code', wagtail.blocks.StructBlock( [( 'language', wagtail.blocks.ChoiceBlock( choices=[ ( 'bash', 'Bash/Shell'), ( 'css', 'CSS'), ( 'dart', 'Dart'), ( 'docker', 'Docker'), ( 'elixir', 'Elixir'), ( 'go', 'Go'), ( 'html', 'HTML'), ( 'javascript', 'Javascript'), ( 'json', 'JSON'), ( 'kotlin', 'Kotlin'), ( 'python', 'Python'), ( 'rust', 'Rust'), ( 'swift', 'Swift'), ( 'toml', 'TOML'), ( 'yaml', 'YAML')], help_text='Coding language', identifier='language', label='Language')), ('code', wagtail.blocks.TextBlock( identifier='code', label='Code'))], label='Code snippet')), ('blockquote', wagtail.blocks.BlockQuoteBlock()), ('image_block', wagtail.blocks.StructBlock( [('image', wagtail.images.blocks.ImageChooserBlock( required=True)), ('caption', wagtail.blocks.CharBlock( required=False)), ('attribution', wagtail.blocks.CharBlock( required=False))])), ('embed_block', wagtail.embeds.blocks.EmbedBlock( help_text='Insert a URL to embed. For example, https://www.youtube.com/watch?v=SGJFWirQ3ks', icon='media'))], blank=True, help_text='Write anything'), ), ]