Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • feat-more-blocks
  • feat-rework-election-page
  • feat/custom-css
  • feat/dary-improvements
  • feat/geo-feature-collections
  • feat/hideable-tweets
  • feat/instagram-feed
  • feat/people-octopus-imports
  • feat/pirstan-changes
  • feat/redesign-fixes-3
  • feat/redesign-improvements-10
  • feat/redesign-improvements-8
  • feat/separate-import-thread
  • feature/crypto-widget
  • features/add-custom-numbering-for-candidates
  • features/add-dynamic-candidate-numbers
  • features/add-embed-to-articles
  • features/add-feature-enlarging-sub-block
  • features/add-link-to-images
  • features/add-pdf-page
  • features/add-redirects
  • features/add-thumbnail-principle-to-uniweb-and-senate
  • features/add-timeline
  • features/add-typed-table
  • features/create-collapsible-extra-legal-info
  • features/create-mastodon-feed-block
  • features/create-wordcloud-from-article-page
  • features/donation-panel-should-be-optional
  • features/extend-hero-banner
  • features/fix-broken-calendar-categories
  • master
  • test
32 results

Target

Select target project
  • to/majak
  • b1242/majak
2 results
Select Git revision
  • fix1
  • localwebs
  • master
  • pdp
  • seo1
  • target-groups
  • test
7 results
Show changes
Showing
with 65873 additions and 0 deletions
# Generated by Django 5.0.4 on 2024-05-27 16:22
from django.db import migrations
from maps_utils.blocks import MapPointBlock
def migrate_map_blocks(apps, schema_editor):
DistrictCenterPage = apps.get_model("district", "DistrictCenterPage")
for center_page in DistrictCenterPage.objects.all():
for sidebar_block in center_page.sidebar_content.get_prep_value():
if sidebar_block["type"] == "map":
block_data = {**sidebar_block["value"]}
block_data["height"] = 400
center_page.map_area_content.append(
("map", MapPointBlock().to_python(block_data))
)
center_page.save()
break
class Migration(migrations.Migration):
dependencies = [
("district", "0204_districtcenterpage_map_area_content"),
]
operations = [migrations.RunPython(migrate_map_blocks)]
# Generated by Django 5.0.4 on 2024-05-27 17:12
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0205_auto_20240527_1822"),
]
operations = [
migrations.AlterField(
model_name="districtcenterpage",
name="sidebar_content",
field=wagtail.fields.StreamField(
[
(
"map",
wagtail.blocks.StructBlock(
[
(
"lat",
wagtail.blocks.DecimalBlock(
help_text="Např. 50.04075",
label="Zeměpisná šířka",
),
),
(
"lon",
wagtail.blocks.DecimalBlock(
help_text="Např. 15.77659",
label="Zeměpisná délka",
),
),
(
"hex_color",
wagtail.blocks.CharBlock(
default="000000",
help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).",
label="Barva špendlíku (HEX)",
),
),
(
"zoom",
wagtail.blocks.IntegerBlock(
default=15,
label="Výchozí zoom",
max_value=18,
min_value=1,
),
),
(
"style",
wagtail.blocks.ChoiceBlock(
choices=[
("osm-mapnik", "OSM Mapnik"),
("stadia-osm-bright", "Stadia OSM Bright"),
("stadia-outdoors", "Stadia Outdoors"),
("mapbox-streets", "Mapbox Streets"),
("mapbox-outdoors", "Mapbox Outdoors"),
("mapbox-light", "Mapbox Light"),
("mapbox-dark", "Mapbox Dark"),
("mapbox-satellite", "Mapbox Satellite"),
("mapbox-pirate", "Mapbox Pirate Theme"),
],
label="Styl",
),
),
(
"height",
wagtail.blocks.IntegerBlock(
label="Výška v px",
max_value=1000,
min_value=100,
),
),
]
),
),
(
"figure",
wagtail.blocks.StructBlock(
[
(
"img",
wagtail.images.blocks.ImageChooserBlock(
label="Obrázek", required=True
),
),
(
"caption",
wagtail.blocks.TextBlock(
label="Popisek", required=False
),
),
]
),
),
(
"youtube",
wagtail.blocks.StructBlock(
[
(
"poster_image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.",
label="Náhled videa (automatické pole)",
required=False,
),
),
(
"video_url",
wagtail.blocks.URLBlock(
help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.",
label="Odkaz na video",
required=False,
),
),
(
"video_id",
wagtail.blocks.CharBlock(
help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.",
label="ID videa (automatické pole)",
required=False,
),
),
],
label="YouTube video",
),
),
(
"address",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"map_link",
wagtail.blocks.URLBlock(
label="Odkaz na detail mapy", required=False
),
),
(
"address",
wagtail.blocks.TextBlock(
label="Adresa", required=True
),
),
(
"address_info",
wagtail.blocks.TextBlock(
label="Info k adrese", required=False
),
),
]
),
),
(
"contact",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"contact_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=[
"district.DistrictPersonPage"
],
),
),
]
)
),
),
]
),
),
(
"badge",
wagtail.blocks.StructBlock(
[
(
"person",
wagtail.blocks.PageChooserBlock(
label="Osoba",
page_type=["district.DistrictPersonPage"],
required=True,
),
),
(
"wrap_in_card",
wagtail.blocks.BooleanBlock(
default=False,
label="Zabalit do karty",
required=False,
),
),
(
"caption",
wagtail.blocks.CharBlock(
help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.",
label="Popisek",
required=False,
),
),
]
),
),
],
blank=True,
verbose_name="Obsah bočního panelu",
),
),
]
# Generated by Django 5.0.4 on 2024-05-27 17:22
import wagtail
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0206_alter_districtcenterpage_sidebar_content"),
]
operations = [
migrations.AddField(
model_name="districtcenterpage",
name="map_address_content",
field=wagtail.fields.StreamField(
[
(
"address",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"map_link",
wagtail.blocks.URLBlock(
label="Odkaz na detail mapy", required=False
),
),
(
"address",
wagtail.blocks.TextBlock(
label="Adresa", required=True
),
),
(
"address_info",
wagtail.blocks.TextBlock(
label="Info k adrese", required=False
),
),
]
),
)
],
blank=True,
verbose_name="Adresa u mapy",
),
),
migrations.AlterField(
model_name="districtcenterpage",
name="map_area_content",
field=wagtail.fields.StreamField(
[
(
"map",
wagtail.blocks.StructBlock(
[
(
"lat",
wagtail.blocks.DecimalBlock(
help_text="Např. 50.04075",
label="Zeměpisná šířka",
),
),
(
"lon",
wagtail.blocks.DecimalBlock(
help_text="Např. 15.77659",
label="Zeměpisná délka",
),
),
(
"hex_color",
wagtail.blocks.CharBlock(
default="000000",
help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).",
label="Barva špendlíku (HEX)",
),
),
(
"zoom",
wagtail.blocks.IntegerBlock(
default=15,
label="Výchozí zoom",
max_value=18,
min_value=1,
),
),
(
"style",
wagtail.blocks.ChoiceBlock(
choices=[
("osm-mapnik", "OSM Mapnik"),
("stadia-osm-bright", "Stadia OSM Bright"),
("stadia-outdoors", "Stadia Outdoors"),
("mapbox-streets", "Mapbox Streets"),
("mapbox-outdoors", "Mapbox Outdoors"),
("mapbox-light", "Mapbox Light"),
("mapbox-dark", "Mapbox Dark"),
("mapbox-satellite", "Mapbox Satellite"),
("mapbox-pirate", "Mapbox Pirate Theme"),
],
label="Styl",
),
),
(
"height",
wagtail.blocks.IntegerBlock(
label="Výška v px",
max_value=1000,
min_value=100,
),
),
]
),
)
],
blank=True,
verbose_name="Mapa",
),
),
]
# Generated by Django 5.0.4 on 2024-05-27 18:49
from django.db import migrations
from district.blocks import AddressBlock
def migrate_address_blocks(apps, schema_editor):
DistrictCenterPage = apps.get_model("district", "DistrictCenterPage")
for center_page in DistrictCenterPage.objects.all():
for sidebar_block in center_page.sidebar_content.get_prep_value():
if sidebar_block["type"] == "address":
print(sidebar_block)
center_page.map_address_content.append(
("address", AddressBlock().to_python(sidebar_block["value"]))
)
center_page.save()
break
class Migration(migrations.Migration):
dependencies = [
("district", "0207_auto_20240527_1922"),
]
operations = [migrations.RunPython(migrate_address_blocks)]
Source diff could not be displayed: it is too large. Options to address this: view the blob.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
# Generated by Django 5.0.4 on 2024-05-28 11:54
import django.db.models.deletion
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
import wagtailmetadata.models
from django.db import migrations, models
import shared.models.main
class Migration(migrations.Migration):
dependencies = [
("district", "0210_remove_districtcenterpage_sidebar_content_and_more"),
("wagtailcore", "0093_uploadedfile"),
("wagtailimages", "0026_delete_uploadedimage"),
]
operations = [
migrations.AlterField(
model_name="districtcrossroadpage",
name="cards_content",
field=wagtail.fields.StreamField(
[
(
"cards",
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=[
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
# "district.DistrictProgramPage",
# "district.DistrictInteractiveProgramPage",
"district.DistrictGeoFeatureCollectionPage",
"district.DistrictCalendarPage",
"district.DistrictPdfPage",
"district.DistrictNewProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
],
template="styleguide2/includes/molecules/boxes/card_box_block.html",
),
label="Karty s odkazy",
),
),
]
),
)
],
blank=True,
verbose_name="Karty rozcestníku",
),
),
migrations.AlterField(
model_name="districtpeoplepage",
name="people",
field=wagtail.fields.StreamField(
[
(
"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=["district.DistrictPersonPage"],
),
label="Skupina osob",
),
),
],
label="Seznam osob",
),
),
(
"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=[
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
# "district.DistrictProgramPage",
# "district.DistrictInteractiveProgramPage",
"district.DistrictGeoFeatureCollectionPage",
"district.DistrictCalendarPage",
"district.DistrictPdfPage",
"district.DistrictNewProgramPage",
],
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="Lidé a týmy",
),
),
migrations.CreateModel(
name="DistrictNewProgramPage",
fields=[
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
(
"program",
wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
],
blank=True,
verbose_name="Program",
),
),
(
"search_image",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to="wagtailimages.image",
verbose_name="Search image",
),
),
],
options={
"verbose_name": "Program",
"abstract": False,
},
bases=(
shared.models.main.SubpageMixin,
wagtailmetadata.models.WagtailImageMetadataMixin,
"wagtailcore.page",
models.Model,
),
),
]
# Generated by Django 5.0.4 on 2024-05-28 12:44
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0211_alter_districtcrossroadpage_cards_content_and_more"),
]
operations = [
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
)
]
),
),
],
blank=True,
verbose_name="Program",
),
),
]
# Generated by Django 5.0.4 on 2024-05-28 13:26
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0212_alter_districtnewprogrampage_program"),
]
operations = [
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.PageChooserBlock(
"district.DistrictPersonPage",
label="Osoba",
required=True,
),
label="Kandidáti",
required=True,
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Program",
),
),
]
# Generated by Django 5.0.4 on 2024-05-29 09:49
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0213_alter_districtnewprogrampage_program"),
]
operations = [
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.PageChooserBlock(
"district.DistrictPersonPage",
label="Osoba",
required=True,
),
label="Kandidáti",
required=True,
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Program",
),
),
]
# Generated by Django 5.0.4 on 2024-05-29 11:26
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0214_alter_districtnewprogrampage_program"),
]
operations = [
migrations.AlterField(
model_name="districtelectioncampaignpage",
name="candidates",
field=wagtail.fields.StreamField(
[
(
"candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label="Kandidáti",
),
)
]
),
)
],
blank=True,
verbose_name="Kandidátní listina",
),
),
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"primary_candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label="Kandidáti",
),
)
],
label="Čelo kandidátky",
),
),
(
"secondary_candidates",
wagtail.blocks.StructBlock(
[
(
"heading",
wagtail.blocks.CharBlock(
label="Nadpis"
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.CharBlock(
label="Číslo"
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
]
),
label="Kandidáti",
),
),
],
label="Ostatní kandidáti",
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Program",
),
),
]
# Generated by Django 5.0.4 on 2024-05-29 12:28
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0215_alter_districtelectioncampaignpage_candidates_and_more"),
]
operations = [
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"primary_candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label="Kandidáti",
),
)
],
label="Čelo kandidátky",
),
),
(
"secondary_candidates",
wagtail.blocks.StructBlock(
[
(
"heading",
wagtail.blocks.CharBlock(
label="Nadpis"
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.CharBlock(
label="Číslo"
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
]
),
label="Kandidáti",
),
),
],
label="Ostatní kandidáti",
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek části programu"
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Programy",
),
),
]
# Generated by Django 5.0.4 on 2024-06-01 11:31
import wagtail.blocks
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0216_alter_districtnewprogrampage_program"),
]
operations = [
migrations.AlterField(
model_name="districthomepage",
name="menu",
field=wagtail.fields.StreamField(
[
(
"menu_item",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
label="Titulek",
required=True,
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka", required=False
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
),
(
"menu_parent",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"menu_items",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
label="Titulek",
required=True,
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka", required=False
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Položky menu",
),
),
]
),
),
],
blank=True,
verbose_name="Položky",
),
),
]
# Generated by Django 5.0.4 on 2024-06-01 13:30
import wagtail
from django.apps import apps as base_apps
from django.contrib.contenttypes.management import create_contenttypes
from django.db import migrations, transaction
from wagtail.blocks import CharBlock, RichTextBlock, StreamBlock, StructBlock
from district.blocks import (
CandidateListBlock,
CandidateSecondaryListBlock,
CarouselProgramBlock,
ProgramGroupBlock,
ProgramGroupBlockCrossroad,
ProgramGroupBlockPopout,
)
from shared.blocks import SocialLinkBlock
def migrate_programs(apps, schema_editor):
try:
with transaction.atomic():
# Copy this block manually here, as it has been changed in future migrations.
class ProgramGroupWithCandidatesBlock(StructBlock):
title = CharBlock(
label="Název programu",
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
)
preamble_content = RichTextBlock(
label="Preambule",
help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.",
required=False,
)
primary_candidates = CandidateListBlock(
label="Osoby na čele kandidátky",
help_text="Zobrazí se ve velkých blocích na začátku stránky.",
)
secondary_candidates = CandidateSecondaryListBlock(
label="Ostatní osoby na kandidátce",
help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.",
)
program = StreamBlock(
[
("program_group", ProgramGroupBlock()),
("program_group_crossroad", ProgramGroupBlockCrossroad()),
("program_group_popout", ProgramGroupBlockPopout()),
(
"carousel_program",
CarouselProgramBlock(
template="styleguide2/includes/molecules/program/program_block.html"
),
),
]
)
# Get the models
DistrictHomePage = apps.get_model("district", "DistrictHomePage")
# Update content types, as they may not yet have been created.
# This is very ugly, but must be done.
create_contenttypes(base_apps.get_app_config("district"))
DistrictElectionRootPage = apps.get_model(
"district", "DistrictElectionRootPage"
)
DistrictElectionCampaignPage = apps.get_model(
"district", "DistrictElectionCampaignPage"
)
DistrictElectionProgramPage = apps.get_model(
"district", "DistrictElectionProgramPage"
)
DistrictPostElectionStrategyPage = apps.get_model(
"district", "DistrictPostElectionStrategyPage"
)
DistrictNewProgramPage = apps.get_model(
"district", "DistrictNewProgramPage"
)
Locale = apps.get_model("wagtailcore", "Locale")
DistrictPersonPage = apps.get_model("district", "DistrictPersonPage")
DistrictPeoplePage = apps.get_model("district", "DistrictPeoplePage")
# Get the default locale
default_locale = Locale.objects.first()
Page = apps.get_model("wagtailcore", "Page")
ContentType = apps.get_model("contenttypes", "ContentType")
try:
root_page_content_type = ContentType.objects.get(
app_label="district", model="districtelectionrootpage"
)
campaign_page_content_type = ContentType.objects.get(
app_label="district", model="districtelectioncampaignpage"
)
people_page_content_type = ContentType.objects.get(
app_label="district", model="districtpeoplepage"
)
program_page_content_type = ContentType.objects.get(
app_label="district", model="districtelectionprogrampage"
)
program_post_election_strategy_content_type = ContentType.objects.get(
app_label="district", model="districtpostelectionstrategypage"
)
new_program_page_content_type = ContentType.objects.get(
app_label="district", model="districtnewprogrampage"
)
except ContentType.DoesNotExist:
# This is a fresh instance and old models don't need to be migrated.
# Not beautiful, but shouldn't cause any trouble.
return
# Function to get children of a certain type
def get_children_of_type(model, parent_page, content_type):
return model.objects.filter(
path__startswith=parent_page.path,
depth=parent_page.depth + 1,
content_type=content_type,
)
for home_page in DistrictHomePage.objects.all():
# Create a new program page, even if this DistrictHomePage will
# end up having no programs.
max_path_page = (
Page.objects.filter(
path__startswith=home_page.path, depth=home_page.depth + 1
)
.order_by("-path")
.first()
)
if max_path_page:
max_path = max_path_page.path
next_path_suffix = (
int(max_path[-4:], 36) + 1
) # Base-36 to handle alphanumeric paths
next_path = (
max_path[:-4] + f"{next_path_suffix:04X}"
) # Convert back to base-36
else:
next_path = home_page.path + "0001"
# Create the new program page
with transaction.atomic():
new_program_page = DistrictNewProgramPage(
title="Programy",
slug="programy", # Make sure the slug is unique among siblings
path=next_path,
depth=home_page.depth + 1,
numchild=0,
content_type_id=new_program_page_content_type.id,
locale_id=default_locale.id,
)
new_program_page.save()
# Update numchild on the home page
home_page.numchild = home_page.numchild + 1
home_page.save(update_fields=["numchild"])
# Iterate over all child DistrictElectionRootPage instances
for election_root_page in get_children_of_type(
DistrictElectionRootPage, home_page, root_page_content_type
):
# Get the children of type DistrictElectionCampaignPage
campaign_pages = get_children_of_type(
DistrictElectionCampaignPage,
election_root_page,
campaign_page_content_type,
)
for campaign_page in campaign_pages:
# Data for a single program
program_data = {
# Title
"title": "", # Done
"order": 0,
# Post-election
"post_election_strategies": [],
# Candidates
"candidate_list_number": "",
"candidate_list_title": "", # Done
"candidate_pages": [], # Done
"candidate_blocks": [], # Done
"combined_candidates": [], # Done
"primary_candidate_count": 0, # Done
# Program
"program_title": "",
"program_points": [],
"program_is_inline": False,
"program_content_before": "", # Done
# Misc.
"funding_info": "",
}
program_data["title"] = (
election_root_page.title
if election_root_page.title
else campaign_page.title
)
program_data["order"] = campaign_page.order
program_data["candidate_list_number"] = campaign_page.number
program_data["candidate_list_title"] = (
campaign_page.candidate_list_title
if campaign_page.candidate_list_title
else campaign_page.title
)
program_data["program_title"] = (
campaign_page.program_point_list_title
if campaign_page.program_point_list_title
else campaign_page.title
)
program_data[
"program_is_inline"
] = campaign_page.show_program_points_inline
program_data[
"funding_info"
] = campaign_page.campaign_funding_info
position = 0
# Parse candidates from blocks
for (
candidate_list_block
) in campaign_page.candidates.get_prep_value():
candidate_list = candidate_list_block["value"]
program_data["primary_candidate_count"] = candidate_list[
"candidate_list_big_count"
]
for candidate in candidate_list["candidate_list"]:
if candidate["type"] == "person_page":
if (
DistrictPersonPage.objects.filter(
id=candidate["value"]
).first()
is None
):
# We have nothing to do here, this page ID is either unfilled or points to a missing page
continue
position = position + 1
candidate_data = {
"position": position,
"page": DistrictPersonPage.objects.filter(
id=candidate["value"]
).first(),
}
program_data["candidate_pages"].append(
candidate_data
)
program_data["combined_candidates"].append(
candidate_data
)
continue
elif candidate["type"] == "person_blocks":
position = position + 1
program_data["candidate_blocks"].append(
{
"position": position,
"data": candidate["value"],
}
)
# Parse program points
program_pages = get_children_of_type(
DistrictElectionProgramPage,
campaign_page,
program_page_content_type,
)
for program_page in program_pages:
program_data["program_points"].append(
{
"title": program_page.title, # Done
"guarantor_page": program_page.guarantor, # Done
"image": program_page.image, # Ignoring
"perex": program_page.perex, # Done
"content": program_page.content, # Done
"funding_info": program_page.campaign_funding_info, # TODO: Ignoring?
}
)
# Parse post-election strategies
post_election_strategy_pages = get_children_of_type(
DistrictPostElectionStrategyPage,
election_root_page,
program_post_election_strategy_content_type,
)
for post_election_strategy_page in post_election_strategy_pages:
program_data["post_election_strategies"].append(
{
"perex": post_election_strategy_page.perex,
}
)
# If there's no program data, skip this iteration.
if (
len(program_data["candidate_pages"]) == 0
and len(program_data["candidate_blocks"]) == 0
and len(program_data["program_points"]) == 0
):
continue # Do nothing for these
parent_people_page = get_children_of_type(
DistrictPeoplePage, home_page, people_page_content_type
)
parent_people_page = parent_people_page.first()
# Create corresponding pages for candidate blocks with no pages
for candidate_block in program_data["candidate_blocks"]:
if parent_people_page is None:
break # We can't do anything here
social_links = []
if candidate_block["data"]["facebook_url"]:
social_links.append(
SocialLinkBlock().to_python(
{
"icon": "ico--facebook",
"text": "Facebook",
"link": candidate_block["data"][
"facebook_url"
],
}
)
)
if candidate_block["data"]["instagram_url"]:
social_links.append(
SocialLinkBlock().to_python(
{
"icon": "ico--instagram",
"text": "Instagram",
"link": candidate_block["data"][
"instagram_url"
],
}
)
)
if candidate_block["data"]["twitter_url"]:
social_links.append(
SocialLinkBlock().to_python(
{
"icon": "ico--twitter",
"text": "Twitter",
"link": candidate_block["data"][
"twitter_url"
],
}
)
)
if candidate_block["data"]["youtube_url"]:
social_links.append(
SocialLinkBlock().to_python(
{
"icon": "ico--youtube",
"text": "YouTube",
"link": candidate_block["data"][
"youtube_url"
],
}
)
)
if candidate_block["data"]["flickr_url"]:
social_links.append(
SocialLinkBlock().to_python(
{
"icon": "ico--flickr",
"text": "Flickr",
"link": candidate_block["data"][
"flickr_url"
],
}
)
)
max_path_page = (
Page.objects.filter(
path__startswith=people_page.path,
depth=parent_people_page.depth + 1,
)
.order_by("-path")
.first()
)
if max_path_page:
max_path = max_path_page.path
next_path_suffix = (
int(max_path[-4:], 36) + 1
) # Base-36 to handle alphanumeric paths
next_path = (
max_path[:-4] + f"{next_path_suffix:04X}"
) # Convert back to base-36
else:
next_path = parent_people_page.path + "0001"
with transaction.atomic():
candidate_page = DistrictPersonPage(
title=candidate_block["data"]["title"],
job=candidate_block["data"]["job"],
profile_image_id=candidate_block["data"][
"profile_photo"
],
email=candidate_block["data"]["email"],
city=candidate_block["data"]["city"],
age=candidate_block["data"]["age"],
is_pirate=candidate_block["data"]["is_pirate"],
other_party=candidate_block["data"]["other_party"],
other_party_logo_id=candidate_block["data"][
"other_party_logo"
],
social_links=social_links,
content_type_id=people_page_content_type.id,
locale_id=default_locale.id,
)
candidate_page.numchild = candidate_page.numchild + 1
candidate_page.save(update_fields=["numchild"])
program_data["combined_candidates"].append(
{
"position": candidate_block["position"],
"page": candidate_page,
}
)
# Sort candidates
program_data["combined_candidates"] = sorted(
program_data["combined_candidates"],
key=lambda value: value["position"],
)
# Create candidate blocks
primary_candidates = []
secondary_candidates = []
for position, candidate in enumerate(
program_data["combined_candidates"]
):
if position <= program_data["primary_candidate_count"]:
primary_candidates.append(
{ # CandidateBlock value for CandidateListBlock
"page": candidate["page"].id,
"description": (
candidate["page"].perex
if len(candidate["page"].perex) > 32
else (
candidate["page"].job
if candidate["page"].job
else candidate["page"].position
)
),
"image": (
candidate["page"].profile_image.id
# Not sure why there is a need to check for the second condition.
# But, without it, the migration crashes on some images.
if candidate["page"].profile_image
is not None
else 0
),
}
)
else:
secondary_candidates.append(
{ # SecondaryCandidateBlock value for CandidateSecondaryListBlock
"number": candidate["position"],
"page": candidate["page"].id,
}
)
primary_candidates_block = {
# Acts as CandidateListBlock
"candidates": primary_candidates,
}
secondary_candidates_block = {
# Acts as CandidateSecondaryListBlock
"heading": "Další kandidáti",
"candidates": secondary_candidates,
}
# if program_data["program_is_inline"]:
# There's no time left to set this up properly. We'll just use
# inline points for everything, at least for now.
# Create program point blocks
program_points = []
for program_point in program_data["program_points"]:
program_points.append(
{ # Act as ProgramBlockPopout
"title": program_point["title"],
"content": str(program_point["content"]),
"guarantor": (
program_point["guarantor_page"].id
if program_point["guarantor_page"]
else None
),
}
)
program_categories = [
{ # Act as ProgramPopoutCategory
"name": program_data["candidate_list_title"],
"point_list": program_points,
}
]
program_block = {
"type": "program_group_popout",
"value": {
"title": program_data["program_title"],
"categories": program_categories,
},
}
# Finally, create a block for this program
new_program_block = ProgramGroupWithCandidatesBlock().to_python(
{
"title": program_data["title"],
"preamble_content": program_data[
"program_content_before"
],
"primary_candidates": primary_candidates_block,
"secondary_candidates": secondary_candidates_block,
"program": [program_block],
}
)
new_program_page.program.append(
("program_group_with_candidates", new_program_block)
)
new_program_page.save()
except Exception as e:
print(f"Ignoring exception during program page migration: {e}")
class Migration(migrations.Migration):
dependencies = [
("district", "0217_alter_districthomepage_menu"),
]
operations = [
migrations.AlterField(
model_name="districtelectioncampaignpage",
name="candidates",
field=wagtail.fields.StreamField(
[
(
"candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label=" ",
),
)
]
),
)
],
blank=True,
verbose_name="Kandidátní listina",
),
),
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"preamble_content",
wagtail.blocks.RichTextBlock(
help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.",
label="Preambule",
required=False,
),
),
(
"primary_candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label=" ",
),
)
],
help_text="Zobrazí se ve velkých blocích na začátku stránky.",
label="Osoby na čele kandidátky",
),
),
(
"secondary_candidates",
wagtail.blocks.StructBlock(
[
(
"heading",
wagtail.blocks.CharBlock(
default="Ostatní kandidátky",
label="Nadpis zbytku kandidátky",
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.CharBlock(
label="Číslo"
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
]
),
label="Zbylí kandidáti na listině",
),
),
],
help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.",
label="Ostatní osoby na kandidátce",
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
# "district.DistrictElectionRootPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Programy",
),
),
migrations.RunPython(migrate_programs),
]
# Generated by Django 5.0.4 on 2024-06-04 13:40
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0218_auto_20240601_1530"),
]
operations = [
migrations.AlterModelOptions(
name="districtelectioncampaignpage",
options={},
),
migrations.AlterModelOptions(
name="districtelectionprogrampage",
options={},
),
migrations.AlterModelOptions(
name="districtelectionrootpage",
options={},
),
migrations.AlterModelOptions(
name="districtinteractiveprogrampage",
options={},
),
migrations.AlterModelOptions(
name="districtpostelectionstrategypage",
options={},
),
migrations.AlterModelOptions(
name="districtprogrampage",
options={},
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="campaign_funding_info",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="candidate_list_title",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="candidates",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="content",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="hero_candidates_image",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="hero_cta_buttons",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="hero_headline",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="hero_image",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="hero_motto",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="number",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="order",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="program_point_list_title",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="search_image",
),
migrations.RemoveField(
model_name="districtelectioncampaignpage",
name="show_program_points_inline",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="campaign_funding_info",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="content",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="guarantor",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="image",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="perex",
),
migrations.RemoveField(
model_name="districtelectionprogrampage",
name="search_image",
),
migrations.RemoveField(
model_name="districtinteractiveprogrampage",
name="content",
),
migrations.RemoveField(
model_name="districtinteractiveprogrampage",
name="perex",
),
migrations.RemoveField(
model_name="districtinteractiveprogrampage",
name="search_image",
),
migrations.RemoveField(
model_name="districtpostelectionstrategypage",
name="campaign_funding_info",
),
migrations.RemoveField(
model_name="districtpostelectionstrategypage",
name="content",
),
migrations.RemoveField(
model_name="districtpostelectionstrategypage",
name="perex",
),
migrations.RemoveField(
model_name="districtpostelectionstrategypage",
name="search_image",
),
migrations.RemoveField(
model_name="districtprogrampage",
name="content",
),
migrations.RemoveField(
model_name="districtprogrampage",
name="perex",
),
migrations.RemoveField(
model_name="districtprogrampage",
name="search_image",
),
migrations.AlterField(
model_name="districtcrossroadpage",
name="cards_content",
field=wagtail.fields.StreamField(
[
(
"cards",
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=[
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
"district.DistrictPeoplePage",
# "district.DistrictProgramPage",
# "district.DistrictInteractiveProgramPage",
"district.DistrictGeoFeatureCollectionPage",
"district.DistrictCalendarPage",
"district.DistrictPdfPage",
"district.DistrictNewProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
],
template="styleguide2/includes/molecules/boxes/card_box_block.html",
),
label="Karty s odkazy",
),
),
]
),
)
],
blank=True,
verbose_name="Karty rozcestníku",
),
),
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"preamble_content",
wagtail.blocks.RichTextBlock(
help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.",
label="Preambule",
required=False,
),
),
(
"primary_candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label=" ",
),
)
],
help_text="Zobrazí se ve velkých blocích na začátku stránky.",
label="Osoby na čele kandidátky",
),
),
(
"secondary_candidates",
wagtail.blocks.StructBlock(
[
(
"heading",
wagtail.blocks.CharBlock(
default="Ostatní kandidátky",
label="Nadpis zbytku kandidátky",
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.CharBlock(
label="Číslo"
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
]
),
label="Zbylí kandidáti na listině",
),
),
],
help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.",
label="Ostatní osoby na kandidátce",
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Programy",
),
),
migrations.AlterField(
model_name="districtpeoplepage",
name="people",
field=wagtail.fields.StreamField(
[
(
"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=["district.DistrictPersonPage"],
),
label="Skupina osob",
),
),
],
label="Seznam osob",
),
),
(
"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=[
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
"district.DistrictPeoplePage",
# "district.DistrictProgramPage",
# "district.DistrictInteractiveProgramPage",
"district.DistrictGeoFeatureCollectionPage",
"district.DistrictCalendarPage",
"district.DistrictPdfPage",
"district.DistrictNewProgramPage",
],
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="Lidé a týmy",
),
),
]
# Generated by Django 5.0.6 on 2024-06-11 08:39
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
import shared.blocks
class Migration(migrations.Migration):
dependencies = [
("district", "0219_alter_districtelectioncampaignpage_options_and_more"),
]
operations = [
migrations.AlterField(
model_name="districthomepage",
name="content",
field=wagtail.fields.StreamField(
[
(
"fullscreen_header_block",
wagtail.blocks.StructBlock(
[
(
"desktop_image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybráno video, ukáže se na desktopu.",
label="Obrázek na pozadí (desktop)",
required=False,
),
),
(
"mobile_image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybráno video, ukáže se na mobilu.",
label="Obrázek na pozadí (mobil)",
required=False,
),
),
(
"desktop_video_url",
wagtail.blocks.URLBlock(
help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.",
label="Video (desktop)",
required=False,
),
),
(
"mobile_video_url",
wagtail.blocks.URLBlock(
help_text="Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.",
label="Video (mobil)",
required=False,
),
),
(
"desktop_line_1",
wagtail.blocks.TextBlock(
label="Desktop první řádek"
),
),
(
"desktop_line_2",
wagtail.blocks.TextBlock(
label="Desktop druhý řádek", required=False
),
),
(
"mobile_line_1",
wagtail.blocks.TextBlock(
label="První mobilní řádek"
),
),
(
"mobile_line_2",
wagtail.blocks.TextBlock(
label="Druhý mobilní řádek", required=False
),
),
(
"mobile_line_3",
wagtail.blocks.TextBlock(
label="Třetí mobilní řádek", required=False
),
),
(
"button_url",
wagtail.blocks.URLBlock(
help_text="Bez odkazu tlačítko nebude viditelné.",
label="Odkaz tlačítka",
required=False,
),
),
(
"button_text",
wagtail.blocks.CharBlock(
label="Text tlačítka", required=False
),
),
]
),
),
(
"news_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Nejnovější články se načtou automaticky",
label="Titulek",
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis", required=False
),
),
],
template="styleguide2/includes/organisms/articles/district/articles_section.html",
),
),
(
"elections_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"text_before_countdown",
wagtail.blocks.CharBlock(
default="Aktuálně zbývá",
label="Text před odpočtem",
required=True,
),
),
(
"countdown_timestamp",
wagtail.blocks.DateTimeBlock(
label="Datum & čas voleb", required=True
),
),
(
"buttons",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek",
max_length=128,
required=True,
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka", required=False
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Tlačítka",
required=False,
),
),
]
),
),
(
"people_block",
wagtail.blocks.StructBlock(
[
(
"title_line_1",
wagtail.blocks.CharBlock(
label="První řádek titulku"
),
),
(
"title_line_2",
wagtail.blocks.CharBlock(
label="Druhý řádek titulku"
),
),
(
"description",
wagtail.blocks.TextBlock(label="Popis"),
),
(
"list",
wagtail.blocks.ListBlock(
shared.blocks.PersonBoxBlock, label="Boxíky"
),
),
],
template="styleguide2/includes/organisms/main_section/district/representatives_section.html",
),
),
(
"calendar_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=False
),
)
]
),
),
("newsletter_block", wagtail.blocks.StructBlock([])),
],
blank=True,
verbose_name="Obsah",
),
),
]
# Generated by Django 5.0.6 on 2024-06-11 08:50
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
from django.db import migrations
import shared.blocks
class Migration(migrations.Migration):
dependencies = [
("district", "0220_alter_districthomepage_content"),
]
operations = [
migrations.AlterField(
model_name="districthomepage",
name="content",
field=wagtail.fields.StreamField(
[
(
"fullscreen_header_block",
wagtail.blocks.StructBlock(
[
(
"desktop_image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybráno video, ukáže se na desktopu.",
label="Obrázek na pozadí (desktop)",
required=False,
),
),
(
"mobile_image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybráno video, ukáže se na mobilu.",
label="Obrázek na pozadí (mobil)",
required=False,
),
),
(
"desktop_video_url",
wagtail.blocks.URLBlock(
help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.",
label="Video (desktop)",
required=False,
),
),
(
"mobile_video_url",
wagtail.blocks.URLBlock(
help_text="Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.",
label="Video (mobil)",
required=False,
),
),
(
"desktop_line_1",
wagtail.blocks.TextBlock(
label="Desktop první řádek"
),
),
(
"desktop_line_2",
wagtail.blocks.TextBlock(
label="Desktop druhý řádek", required=False
),
),
(
"mobile_line_1",
wagtail.blocks.TextBlock(
label="První mobilní řádek"
),
),
(
"mobile_line_2",
wagtail.blocks.TextBlock(
label="Druhý mobilní řádek", required=False
),
),
(
"mobile_line_3",
wagtail.blocks.TextBlock(
label="Třetí mobilní řádek", required=False
),
),
(
"button_url",
wagtail.blocks.URLBlock(
help_text="Bez odkazu tlačítko nebude viditelné.",
label="Odkaz tlačítka",
required=False,
),
),
(
"button_text",
wagtail.blocks.CharBlock(
label="Text tlačítka", required=False
),
),
]
),
),
(
"news_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Nejnovější články se načtou automaticky",
label="Titulek",
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis", required=False
),
),
],
template="styleguide2/includes/organisms/articles/district/articles_section.html",
),
),
(
"elections_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"text_before_countdown",
wagtail.blocks.CharBlock(
default="Aktuálně zbývá",
label="Text před odpočtem",
required=True,
),
),
(
"countdown_timestamp",
wagtail.blocks.DateTimeBlock(
label="Datum & čas voleb", required=True
),
),
(
"buttons",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek",
max_length=128,
required=True,
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka", required=False
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Tlačítka",
required=False,
),
),
]
),
),
(
"people_block",
wagtail.blocks.StructBlock(
[
(
"title_line_1",
wagtail.blocks.CharBlock(
label="První řádek titulku"
),
),
(
"title_line_2",
wagtail.blocks.CharBlock(
label="Druhý řádek titulku"
),
),
(
"description",
wagtail.blocks.TextBlock(label="Popis"),
),
(
"list",
wagtail.blocks.ListBlock(
shared.blocks.PersonBoxBlock, label="Boxíky"
),
),
],
template="styleguide2/includes/organisms/main_section/district/representatives_section.html",
),
),
(
"calendar_block",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek", required=False
),
)
]
),
),
(
"carousel_program",
wagtail.blocks.StructBlock(
[
(
"label",
wagtail.blocks.CharBlock(
default="Program",
help_text="Např. 'Program'",
label="Nadpis",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.IntegerBlock(
label="Číslo"
),
),
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"points",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"content",
wagtail.blocks.TextBlock(
label="Obsah"
),
)
]
),
label="Body",
),
),
]
),
label="Kategorie",
),
),
(
"long_version_url",
wagtail.blocks.URLBlock(
help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.",
label="Odkaz na celou verzi programu",
required=False,
),
),
(
"long_version_text",
wagtail.blocks.CharBlock(
label="Nadpis odkazu na celou verzi programu",
required=False,
),
),
]
),
),
("newsletter_block", wagtail.blocks.StructBlock([])),
],
blank=True,
verbose_name="Obsah",
),
),
migrations.AlterField(
model_name="districtnewprogrampage",
name="program",
field=wagtail.fields.StreamField(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz", required=False
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona", required=False
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis", required=False
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"program_group_with_candidates",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"preamble_content",
wagtail.blocks.RichTextBlock(
help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.",
label="Preambule",
required=False,
),
),
(
"primary_candidates",
wagtail.blocks.StructBlock(
[
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
(
"description",
wagtail.blocks.TextBlock(
label="Popis"
),
),
]
),
label=" ",
),
)
],
help_text="Zobrazí se ve velkých blocích na začátku stránky.",
label="Osoby na čele kandidátky",
),
),
(
"secondary_candidates",
wagtail.blocks.StructBlock(
[
(
"heading",
wagtail.blocks.CharBlock(
default="Ostatní kandidátky",
label="Nadpis zbytku kandidátky",
),
),
(
"candidates",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.CharBlock(
label="Číslo"
),
),
(
"page",
wagtail.blocks.PageChooserBlock(
label="Stránka",
page_type=[
"district.DistrictPersonPage"
],
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
label="Obrázek",
required=False,
),
),
]
),
label="Zbylí kandidáti na listině",
),
),
],
help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.",
label="Ostatní osoby na kandidátce",
),
),
(
"program",
wagtail.blocks.StreamBlock(
[
(
"program_group",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"url",
wagtail.blocks.URLBlock(
label="Odkaz pokrývající celou tuto část",
required=False,
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"title",
wagtail.blocks.CharBlock(
label="Titulek článku programu"
),
),
(
"text",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
]
),
label="Jednotlivé články programu",
),
),
]
),
),
(
"program_group_crossroad",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"point_list",
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=[
"district.DistrictArticlePage",
"district.DistrictArticlesPage",
"district.DistrictCenterPage",
"district.DistrictContactPage",
"district.DistrictCrossroadPage",
"district.DistrictCustomPage",
# "district.DistrictElectionCampaignPage",
# "district.DistrictElectionProgramPage",
"district.DistrictPeoplePage",
"district.DistrictPersonPage",
# "district.DistrictPostElectionStrategyPage",
# "district.DistrictProgramPage",
],
required=False,
),
),
(
"link",
wagtail.blocks.URLBlock(
label="Odkaz",
required=False,
),
),
]
),
label="Karty programu",
),
),
]
),
),
(
"program_group_popout",
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
label="Název programu",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"icon",
wagtail.images.blocks.ImageChooserBlock(
label="Ikona",
required=False,
),
),
(
"description",
wagtail.blocks.RichTextBlock(
label="Popis",
required=False,
),
),
(
"point_list",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"title",
wagtail.blocks.CharBlock(
label="Titulek vyskakovacího bloku"
),
),
(
"content",
wagtail.blocks.RichTextBlock(
features=[
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
"embed",
],
label="Obsah",
),
),
(
"guarantor",
wagtail.blocks.PageChooserBlock(
label="Garant",
page_type=[
"district.DistrictPersonPage"
],
required=False,
),
),
]
),
label="Jednotlivé bloky programu",
),
),
]
),
label="Kategorie programu",
),
),
]
),
),
(
"carousel_program",
wagtail.blocks.StructBlock(
[
(
"label",
wagtail.blocks.CharBlock(
default="Program",
help_text="Např. 'Program'",
label="Nadpis",
),
),
(
"categories",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"number",
wagtail.blocks.IntegerBlock(
label="Číslo"
),
),
(
"name",
wagtail.blocks.CharBlock(
label="Název"
),
),
(
"points",
wagtail.blocks.ListBlock(
wagtail.blocks.StructBlock(
[
(
"content",
wagtail.blocks.TextBlock(
label="Obsah"
),
)
]
),
label="Body",
),
),
]
),
label="Kategorie",
),
),
(
"long_version_url",
wagtail.blocks.URLBlock(
help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.",
label="Odkaz na celou verzi programu",
required=False,
),
),
(
"long_version_text",
wagtail.blocks.CharBlock(
label="Nadpis odkazu na celou verzi programu",
required=False,
),
),
],
template="styleguide2/includes/molecules/program/program_block.html",
),
),
]
),
),
]
),
),
],
blank=True,
verbose_name="Programy",
),
),
]
# Generated by Django 3.0.6 on 2020-05-14 11:00
# Generated by Django 5.0.6 on 2024-06-11 09:23
import django.db.models.deletion
import wagtail.core.fields
import wagtailmetadata.models
from django.db import migrations, models
import shared.models.main
class Migration(migrations.Migration):
initial = True
class Migration(migrations.Migration):
dependencies = [
("wagtailcore", "0045_assign_unlock_grouppagepermission"),
("district", "0221_alter_districthomepage_content_and_more"),
("wagtailcore", "0093_uploadedfile"),
("wagtailimages", "0026_delete_uploadedimage"),
]
operations = [
migrations.CreateModel(
name="HomeIndexPage",
name="DistrictSearchPage",
fields=[
(
"page_ptr",
......@@ -25,14 +26,30 @@ class Migration(migrations.Migration):
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.Page",
to="wagtailcore.page",
),
),
(
"search_image",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to="wagtailimages.image",
verbose_name="Search image",
),
),
("body", wagtail.core.fields.RichTextField(verbose_name="obsah")),
],
options={
"verbose_name": "Maják homepage",
"verbose_name": "Vyhledávací stránka",
"abstract": False,
},
bases=("wagtailcore.page",),
bases=(
shared.models.main.SubpageMixin,
wagtailmetadata.models.WagtailImageMetadataMixin,
"wagtailcore.page",
models.Model,
),
),
]
# Generated by Django 5.0.6 on 2024-06-12 14:12
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0222_districtsearchpage"),
]
operations = [
migrations.RemoveField(
model_name="districthomepage",
name="gdpr_and_cookies_page",
),
]
# Generated by Django 5.0.6 on 2024-06-12 14:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("district", "0223_remove_districthomepage_gdpr_and_cookies_page"),
]
operations = [
migrations.AlterField(
model_name="districtpeoplepage",
name="perex_col_1",
field=models.TextField(
blank=True, null=True, verbose_name="Perex - první sloupec"
),
),
migrations.AlterField(
model_name="districtpeoplepage",
name="perex_col_2",
field=models.TextField(
blank=True, null=True, verbose_name="Perex - druhý sloupec"
),
),
migrations.AlterField(
model_name="districtpersonpage",
name="perex",
field=models.TextField(blank=True, null=True),
),
]