Select Git revision
0078_auto_20240703_1110.py 14.19 KiB
# Generated by Django 5.0.6 on 2024-07-03 09:10
import wagtail
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":
person_list_with_custom_positions = []
for person in block.value["person_list"]:
person_list_with_custom_positions.append(
{"page": person["person"], "position": person["position"]}
)
new_blocks.append(
(
"people_group_2",
{
"title": block.value["group_title"],
"person_list": [],
"person_list_with_custom_positions": person_list_with_custom_positions,
},
)
)
else:
new_blocks.append((block.block_type, block.value))
page.content = new_blocks
page.save()
class Migration(migrations.Migration):
dependencies = [
("uniweb", "0077_alter_uniwebarticlepage_content_and_more"),
]
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(
[
(
"group_title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"person_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"position",
wagtail.blocks.CharBlock(
label="Název pozice",
required=False,
),
),
(
"person",
wagtail.blocks.PageChooserBlock(
label="Osoba",
page_type=[
"uniweb.UniwebPersonPage",
"district.DistrictPersonPage",
],
),
),
]
),
label="List osob",
),
),
]
),
),
(
"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),
]