# Generated by Django 5.0.6 on 2024-07-03 10:23

import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations


def migrate_people_blocks(apps, schema_editor):
    UniwebPeoplePage = apps.get_model("uniweb", "UniwebPeoplePage")

    for page in UniwebPeoplePage.objects.all():
        new_blocks = []

        for block in page.content:
            if block.block_type == "people_group_2":
                new_blocks.append(("people_group", block.value))
            else:
                new_blocks.append((block.block_type, block.value))

        page.content = new_blocks
        page.save()


class Migration(migrations.Migration):
    dependencies = [
        ("uniweb", "0078_auto_20240703_1110"),
    ]

    operations = [
        migrations.AlterField(
            model_name="uniwebpeoplepage",
            name="content",
            field=wagtail.fields.StreamField(
                [
                    (
                        "text",
                        wagtail.blocks.RichTextBlock(
                            features=[
                                "h2",
                                "h3",
                                "h4",
                                "h5",
                                "bold",
                                "italic",
                                "ol",
                                "ul",
                                "hr",
                                "link",
                                "document-link",
                                "image",
                                "superscript",
                                "subscript",
                                "strikethrough",
                                "blockquote",
                                "embed",
                            ],
                            label="Textový editor",
                            template="styleguide2/includes/atoms/text/prose_richtext.html",
                        ),
                    ),
                    (
                        "people_group",
                        wagtail.blocks.StructBlock(
                            [
                                ("title", wagtail.blocks.CharBlock(label="Titulek")),
                                (
                                    "slug",
                                    wagtail.blocks.CharBlock(
                                        help_text="Není třeba vyplňovat, bude automaticky vyplněno",
                                        label="Slug skupiny",
                                        required=False,
                                    ),
                                ),
                                (
                                    "person_list",
                                    wagtail.blocks.ListBlock(
                                        wagtail.blocks.PageChooserBlock(
                                            label="Detail osoby",
                                            page_type=[
                                                "uniweb.UniwebPersonPage",
                                                "district.DistrictPersonPage",
                                            ],
                                        ),
                                        default=[],
                                        help_text="S pozicemi z jejich podstránek",
                                        label="Osoby",
                                    ),
                                ),
                                (
                                    "person_list_with_custom_positions",
                                    wagtail.blocks.ListBlock(
                                        wagtail.blocks.StructBlock(
                                            [
                                                (
                                                    "page",
                                                    wagtail.blocks.PageChooserBlock(
                                                        label="Detail osoby",
                                                        page_type=[
                                                            "uniweb.UniwebPersonPage",
                                                            "district.DistrictPersonPage",
                                                        ],
                                                    ),
                                                ),
                                                (
                                                    "position",
                                                    wagtail.blocks.CharBlock(
                                                        help_text="Pokud není pozice vyplněná, použije se pozice ze stránky osoby.",
                                                        label="Pozice",
                                                        required=False,
                                                    ),
                                                ),
                                            ]
                                        ),
                                        default=[],
                                        help_text="S nastavitelnými pozicemi",
                                        label="Osoby",
                                    ),
                                ),
                            ]
                        ),
                    ),
                    (
                        "people_group_2",
                        wagtail.blocks.StructBlock(
                            [
                                ("title", wagtail.blocks.CharBlock(label="Titulek")),
                                (
                                    "slug",
                                    wagtail.blocks.CharBlock(
                                        help_text="Není třeba vyplňovat, bude automaticky vyplněno",
                                        label="Slug skupiny",
                                        required=False,
                                    ),
                                ),
                                (
                                    "person_list",
                                    wagtail.blocks.ListBlock(
                                        wagtail.blocks.PageChooserBlock(
                                            label="Detail osoby",
                                            page_type=[
                                                "uniweb.UniwebPersonPage",
                                                "district.DistrictPersonPage",
                                            ],
                                        ),
                                        default=[],
                                        help_text="S pozicemi z jejich podstránek",
                                        label="Osoby",
                                    ),
                                ),
                                (
                                    "person_list_with_custom_positions",
                                    wagtail.blocks.ListBlock(
                                        wagtail.blocks.StructBlock(
                                            [
                                                (
                                                    "page",
                                                    wagtail.blocks.PageChooserBlock(
                                                        label="Detail osoby",
                                                        page_type=[
                                                            "uniweb.UniwebPersonPage",
                                                            "district.DistrictPersonPage",
                                                        ],
                                                    ),
                                                ),
                                                (
                                                    "position",
                                                    wagtail.blocks.CharBlock(
                                                        help_text="Pokud není pozice vyplněná, použije se pozice ze stránky osoby.",
                                                        label="Pozice",
                                                        required=False,
                                                    ),
                                                ),
                                            ]
                                        ),
                                        default=[],
                                        help_text="S nastavitelnými pozicemi",
                                        label="Osoby",
                                    ),
                                ),
                            ]
                        ),
                    ),
                    (
                        "team_group",
                        wagtail.blocks.StructBlock(
                            [
                                (
                                    "title",
                                    wagtail.blocks.CharBlock(label="Název sekce týmů"),
                                ),
                                (
                                    "slug",
                                    wagtail.blocks.CharBlock(
                                        help_text="Není třeba vyplňovat, bude automaticky vyplněno",
                                        label="Slug sekce",
                                        required=False,
                                    ),
                                ),
                                (
                                    "team_list",
                                    wagtail.blocks.ListBlock(
                                        wagtail.blocks.StructBlock(
                                            [
                                                (
                                                    "headline",
                                                    wagtail.blocks.CharBlock(
                                                        label="Titulek bloku",
                                                        required=False,
                                                    ),
                                                ),
                                                (
                                                    "card_items",
                                                    wagtail.blocks.ListBlock(
                                                        wagtail.blocks.StructBlock(
                                                            [
                                                                (
                                                                    "image",
                                                                    wagtail.images.blocks.ImageChooserBlock(
                                                                        label="Obrázek"
                                                                    ),
                                                                ),
                                                                (
                                                                    "title",
                                                                    wagtail.blocks.CharBlock(
                                                                        label="Titulek",
                                                                        required=True,
                                                                    ),
                                                                ),
                                                                (
                                                                    "text",
                                                                    wagtail.blocks.RichTextBlock(
                                                                        label="Krátký text pod nadpisem",
                                                                        required=False,
                                                                    ),
                                                                ),
                                                                (
                                                                    "page",
                                                                    wagtail.blocks.PageChooserBlock(
                                                                        label="Stránka",
                                                                        page_type=[
                                                                            "uniweb.UniwebFlexiblePage",
                                                                            "uniweb.UniwebArticlesIndexPage",
                                                                            "uniweb.UniwebFormPage",
                                                                            "uniweb.UniwebPeoplePage",
                                                                            "uniweb.UniwebCalendarPage",
                                                                            "uniweb.UniwebSearchPage",
                                                                        ],
                                                                        required=False,
                                                                    ),
                                                                ),
                                                                (
                                                                    "link",
                                                                    wagtail.blocks.URLBlock(
                                                                        label="Odkaz",
                                                                        required=False,
                                                                    ),
                                                                ),
                                                            ],
                                                            template="styleguide2/includes/molecules/boxes/card_box_block.html",
                                                        ),
                                                        label="Karty s odkazy",
                                                    ),
                                                ),
                                            ],
                                            label="Karta týmu",
                                        ),
                                        label="Týmy",
                                    ),
                                ),
                            ]
                        ),
                    ),
                ],
                blank=True,
                verbose_name="Obsah stránky",
            ),
        ),
        migrations.RunPython(migrate_people_blocks),
    ]