diff --git a/.isort.cfg b/.isort.cfg
index 767d641d06e0c7b0c8246661ba2c3c9f72fcc044..788c750516986be0dcd5ea66c92872605b99f43c 100644
--- a/.isort.cfg
+++ b/.isort.cfg
@@ -3,4 +3,4 @@
 line_length = 88
 multi_line_output = 3
 include_trailing_comma = true
-known_third_party = PyPDF2,arrow,bleach,bs4,captcha,celery,dateutil,django,environ,faker,fastjsonschema,icalevents,instaloader,markdown,modelcluster,pirates,pytest,pytz,requests,sentry_sdk,taggit,wagtail,wagtailmetadata,weasyprint,willow,yaml
+known_third_party = PyPDF2,arrow,bleach,bs4,captcha,celery,dateutil,django,environ,faker,fastjsonschema,httplib2,icalendar,instaloader,markdown,modelcluster,pirates,pytest,pytz,requests,sentry_sdk,taggit,wagtail,wagtailmetadata,weasyprint,willow,yaml
diff --git a/elections/migrations/0021_alter_electionshomepage_content.py b/elections/migrations/0021_alter_electionshomepage_content.py
index b94c6cf0ea003a3a3d5ab22ae54bcf5e77f5ca6d..f192d87085b5ee318f808c6f9d05aeb9b9ea95b9 100644
--- a/elections/migrations/0021_alter_electionshomepage_content.py
+++ b/elections/migrations/0021_alter_electionshomepage_content.py
@@ -1,21 +1,235 @@
 # Generated by Django 4.1.13 on 2024-03-09 18:06
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('elections', '0020_alter_electionshomepage_content'),
+        ("elections", "0020_alter_electionshomepage_content"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='electionshomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('carousel', 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)')), ('mobile_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud je vybrán, ukáže se místo videa na mobilu.', label='Obrázek (mobil)')), ('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='URL videa', required=False)), ('mobile_line_1', wagtail.blocks.TextBlock(label='První mobilní řádek')), ('mobile_line_2', wagtail.blocks.TextBlock(label='Druhý mobilní řádek'))])), ('candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['elections.ElectionsCandidatePage'])), ('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'))])), ('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=['elections.ElectionsCandidatePage'])), ('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'))])), ('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))])), ('news', 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'))], template='styleguide2/includes/organisms/articles/elections/articles_section.html'))], blank=True, use_json_field=True, verbose_name='Hlavní obsah'),
+            model_name="electionshomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "carousel",
+                        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)",
+                                    ),
+                                ),
+                                (
+                                    "mobile_image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="Pokud je vybrán, ukáže se místo videa na mobilu.",
+                                        label="Obrázek (mobil)",
+                                    ),
+                                ),
+                                (
+                                    "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="URL videa",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_1",
+                                    wagtail.blocks.TextBlock(
+                                        label="První mobilní řádek"
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_2",
+                                    wagtail.blocks.TextBlock(
+                                        label="Druhý mobilní řádek"
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "candidates",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "candidates",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "page",
+                                                    wagtail.blocks.PageChooserBlock(
+                                                        label="Stránka",
+                                                        page_type=[
+                                                            "elections.ElectionsCandidatePage"
+                                                        ],
+                                                    ),
+                                                ),
+                                                (
+                                                    "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",
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "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=[
+                                                            "elections.ElectionsCandidatePage"
+                                                        ],
+                                                    ),
+                                                ),
+                                                (
+                                                    "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",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "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,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news",
+                        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"),
+                                ),
+                            ],
+                            template="styleguide2/includes/organisms/articles/elections/articles_section.html",
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Hlavní obsah",
+            ),
         ),
     ]
diff --git a/elections2021/migrations/0058_alter_elections2021homepage_gdpr_and_cookies_page.py b/elections2021/migrations/0058_alter_elections2021homepage_gdpr_and_cookies_page.py
index 5f4146a98c3217f3af844c98ff3df0b284b31756..3fbe78e980b2d8b656120b6707ecb65f368692d3 100644
--- a/elections2021/migrations/0058_alter_elections2021homepage_gdpr_and_cookies_page.py
+++ b/elections2021/migrations/0058_alter_elections2021homepage_gdpr_and_cookies_page.py
@@ -1,20 +1,26 @@
 # Generated by Django 4.1.13 on 2024-03-04 16:16
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0077_alter_mainresultspage_content'),
-        ('elections2021', '0057_rename_date_elections2021articlepage_timestamp'),
+        ("main", "0077_alter_mainresultspage_content"),
+        ("elections2021", "0057_rename_date_elections2021articlepage_timestamp"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='elections2021homepage',
-            name='gdpr_and_cookies_page',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='main.mainsimplepage', verbose_name='stránka GDPR a Cookies'),
+            model_name="elections2021homepage",
+            name="gdpr_and_cookies_page",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to="main.mainsimplepage",
+                verbose_name="stránka GDPR a Cookies",
+            ),
         ),
     ]
diff --git a/elections2021/migrations/0059_alter_elections2021homepage_gdpr_and_cookies_page.py b/elections2021/migrations/0059_alter_elections2021homepage_gdpr_and_cookies_page.py
index 928c90cb3c2d66e6cb4411741ee42297039180c1..ab73bb424576edd7a7f5a04a8dfa6a6944ebb17b 100644
--- a/elections2021/migrations/0059_alter_elections2021homepage_gdpr_and_cookies_page.py
+++ b/elections2021/migrations/0059_alter_elections2021homepage_gdpr_and_cookies_page.py
@@ -1,20 +1,26 @@
 # Generated by Django 4.1.13 on 2024-03-04 16:19
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0077_alter_mainresultspage_content'),
-        ('elections2021', '0058_alter_elections2021homepage_gdpr_and_cookies_page'),
+        ("main", "0077_alter_mainresultspage_content"),
+        ("elections2021", "0058_alter_elections2021homepage_gdpr_and_cookies_page"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='elections2021homepage',
-            name='gdpr_and_cookies_page',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='main.mainsimplepage', verbose_name='Stránka GDPR a Cookies'),
+            model_name="elections2021homepage",
+            name="gdpr_and_cookies_page",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to="main.mainsimplepage",
+                verbose_name="Stránka GDPR a Cookies",
+            ),
         ),
     ]
diff --git a/uniweb/migrations/0059_alter_uniwebflexiblepage_content_and_more.py b/uniweb/migrations/0059_alter_uniwebflexiblepage_content_and_more.py
index 4fa87b64b335d9f11f42d1e30552784f9e501f23..7b329a831033036e49f027f8bfb7a556e44ba9a0 100644
--- a/uniweb/migrations/0059_alter_uniwebflexiblepage_content_and_more.py
+++ b/uniweb/migrations/0059_alter_uniwebflexiblepage_content_and_more.py
@@ -1,44 +1,3261 @@
 # Generated by Django 4.1.13 on 2024-03-04 16:16
 
-from django.db import migrations
-import shared.blocks.base
 import wagtail.blocks
 import wagtail.blocks.static_block
 import wagtail.contrib.table_block.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
+import shared.blocks.base
 
-class Migration(migrations.Migration):
 
+class Migration(migrations.Migration):
     dependencies = [
-        ('uniweb', '0058_alter_uniwebflexiblepage_content_and_more'),
+        ("uniweb", "0058_alter_uniwebflexiblepage_content_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='uniwebflexiblepage',
-            name='content',
-            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, use_json_field=True, verbose_name='obsah stránky'),
+            model_name="uniwebflexiblepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "title",
+                        wagtail.blocks.CharBlock(
+                            group="nadpisy",
+                            icon="title",
+                            label="nadpis",
+                            template="uniweb/blocks/title.html",
+                        ),
+                    ),
+                    (
+                        "advanced_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "picture_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            features=[
+                                "h2",
+                                "h3",
+                                "h4",
+                                "h5",
+                                "bold",
+                                "italic",
+                                "ol",
+                                "ul",
+                                "hr",
+                                "link",
+                                "document-link",
+                                "image",
+                                "superscript",
+                                "subscript",
+                                "strikethrough",
+                                "blockquote",
+                                "embed",
+                            ],
+                            group="texty",
+                            label="text",
+                            template="uniweb/blocks/text.html",
+                        ),
+                    ),
+                    (
+                        "advanced_text",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="text",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "advanced_text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "gallery",
+                        wagtail.blocks.ListBlock(
+                            wagtail.images.blocks.ImageChooserBlock(label="obrázek"),
+                            group="ostatní",
+                            icon="image",
+                            label="galerie",
+                            template="uniweb/blocks/gallery.html",
+                        ),
+                    ),
+                    (
+                        "picture_list",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "items",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.RichTextBlock(
+                                            features=[
+                                                "h2",
+                                                "h3",
+                                                "h4",
+                                                "h5",
+                                                "bold",
+                                                "italic",
+                                                "ol",
+                                                "ul",
+                                                "hr",
+                                                "link",
+                                                "document-link",
+                                                "image",
+                                                "superscript",
+                                                "subscript",
+                                                "strikethrough",
+                                                "blockquote",
+                                                "embed",
+                                            ],
+                                            label="odstavec",
+                                        ),
+                                        label="odstavce",
+                                    ),
+                                ),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "aligned_table",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "alignment",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "Vlevo"),
+                                            ("center", "Vprostřed"),
+                                            ("right", "Vpravo"),
+                                            ("full", "Celá šířka obrazovky"),
+                                        ],
+                                        label="Zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "table",
+                                    wagtail.contrib.table_block.blocks.TableBlock(
+                                        label="Tabulka"
+                                    ),
+                                ),
+                            ],
+                            group="ostatní",
+                            template="uniweb/blocks/aligned_table.html",
+                        ),
+                    ),
+                    (
+                        "table",
+                        wagtail.contrib.table_block.blocks.TableBlock(
+                            group="ostatní",
+                            label="Tabulka",
+                            template="uniweb/blocks/table.html",
+                        ),
+                    ),
+                    (
+                        "articles",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="sekce článků",
+                                        page_type=["uniweb.UniwebArticlesIndexPage"],
+                                    ),
+                                ),
+                                (
+                                    "lines",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=1,
+                                        help_text="zobrazí se tři články na řádek",
+                                        label="počet řádků",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "calendar_agenda",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "info",
+                                    wagtail.blocks.static_block.StaticBlock(
+                                        admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu",
+                                        label="volba kalendáře",
+                                    ),
+                                ),
+                                (
+                                    "count",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=10, label="maximum událostí k zobrazení"
+                                    ),
+                                ),
+                                (
+                                    "event_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("future", "budoucí"),
+                                            ("past", "proběhlé"),
+                                        ],
+                                        label="druh událostí",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "button",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je odkaz vyplněný, není nutno vyplňovat stránku.",
+                                        label="Odkaz",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        help_text="Pokud je stránka vyplněná, není nutno vyplňovat odkaz.",
+                                        label="Stránka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "chart",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Název", max_length=120
+                                    ),
+                                ),
+                                (
+                                    "chart_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("bar", "Graf se sloupci"),
+                                            (
+                                                "horizontalBar",
+                                                "Graf s vodorovnými sloupci",
+                                            ),
+                                            ("pie", "Koláčový graf"),
+                                            ("doughnut", "Donutový graf"),
+                                            ("polarArea", "Graf polární oblasti"),
+                                            ("radar", "Radarový graf"),
+                                            ("line", "Graf s liniemi"),
+                                        ],
+                                        label="Typ",
+                                    ),
+                                ),
+                                (
+                                    "hide_points",
+                                    wagtail.blocks.BooleanBlock(
+                                        help_text="Mění vzhled pouze u linových grafů.",
+                                        label="Schovat body",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_labels",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.CharBlock(
+                                            label="Skupina", max_length=40
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místně definované skupiny",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení zdroje dat",
+                                                        max_length=120,
+                                                    ),
+                                                ),
+                                                (
+                                                    "data",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.IntegerBlock(),
+                                                        default=[0],
+                                                        label="Data",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místní zdroje dat",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "redmine_issue_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "projects",
+                                                    wagtail.blocks.MultipleChoiceBlock(
+                                                        choices=shared.blocks.base.get_redmine_projects,
+                                                        label="Projekty",
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_open",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen otevřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_closed",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen uzavřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_min_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Min. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_max_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Max. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "updated_on",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api",
+                                                        label="Filtr pro datum aktualizace",
+                                                        max_length=128,
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "issue_label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení úkolů uvnitř grafu",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "split_per_project",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Rozdělit podle projektu",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "only_grow",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Pouze růst nahoru",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Redmine úkoly",
+                                        ),
+                                        blank=True,
+                                        default=[],
+                                        help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.",
+                                        label="Zdroje dat z Redmine (úkoly)",
+                                        required=False,
+                                    ),
+                                ),
+                            ],
+                            template="uniweb/blocks/chart.html",
+                        ),
+                    ),
+                    (
+                        "newsletter",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "list_id",
+                                    wagtail.blocks.CharBlock(
+                                        label="ID newsletteru", required=True
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.CharBlock(
+                                        default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!",
+                                        label="Popis newsletteru",
+                                        required=True,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="obsah stránky",
+            ),
         ),
         migrations.AlterField(
-            model_name='uniwebformpage',
-            name='content_after',
-            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky za formulářem'),
+            model_name="uniwebformpage",
+            name="content_after",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "title",
+                        wagtail.blocks.CharBlock(
+                            group="nadpisy",
+                            icon="title",
+                            label="nadpis",
+                            template="uniweb/blocks/title.html",
+                        ),
+                    ),
+                    (
+                        "advanced_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "picture_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            features=[
+                                "h2",
+                                "h3",
+                                "h4",
+                                "h5",
+                                "bold",
+                                "italic",
+                                "ol",
+                                "ul",
+                                "hr",
+                                "link",
+                                "document-link",
+                                "image",
+                                "superscript",
+                                "subscript",
+                                "strikethrough",
+                                "blockquote",
+                                "embed",
+                            ],
+                            group="texty",
+                            label="text",
+                            template="uniweb/blocks/text.html",
+                        ),
+                    ),
+                    (
+                        "advanced_text",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="text",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "advanced_text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "gallery",
+                        wagtail.blocks.ListBlock(
+                            wagtail.images.blocks.ImageChooserBlock(label="obrázek"),
+                            group="ostatní",
+                            icon="image",
+                            label="galerie",
+                            template="uniweb/blocks/gallery.html",
+                        ),
+                    ),
+                    (
+                        "picture_list",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "items",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.RichTextBlock(
+                                            features=[
+                                                "h2",
+                                                "h3",
+                                                "h4",
+                                                "h5",
+                                                "bold",
+                                                "italic",
+                                                "ol",
+                                                "ul",
+                                                "hr",
+                                                "link",
+                                                "document-link",
+                                                "image",
+                                                "superscript",
+                                                "subscript",
+                                                "strikethrough",
+                                                "blockquote",
+                                                "embed",
+                                            ],
+                                            label="odstavec",
+                                        ),
+                                        label="odstavce",
+                                    ),
+                                ),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "aligned_table",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "alignment",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "Vlevo"),
+                                            ("center", "Vprostřed"),
+                                            ("right", "Vpravo"),
+                                            ("full", "Celá šířka obrazovky"),
+                                        ],
+                                        label="Zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "table",
+                                    wagtail.contrib.table_block.blocks.TableBlock(
+                                        label="Tabulka"
+                                    ),
+                                ),
+                            ],
+                            group="ostatní",
+                            template="uniweb/blocks/aligned_table.html",
+                        ),
+                    ),
+                    (
+                        "table",
+                        wagtail.contrib.table_block.blocks.TableBlock(
+                            group="ostatní",
+                            label="Tabulka",
+                            template="uniweb/blocks/table.html",
+                        ),
+                    ),
+                    (
+                        "articles",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="sekce článků",
+                                        page_type=["uniweb.UniwebArticlesIndexPage"],
+                                    ),
+                                ),
+                                (
+                                    "lines",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=1,
+                                        help_text="zobrazí se tři články na řádek",
+                                        label="počet řádků",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "calendar_agenda",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "info",
+                                    wagtail.blocks.static_block.StaticBlock(
+                                        admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu",
+                                        label="volba kalendáře",
+                                    ),
+                                ),
+                                (
+                                    "count",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=10, label="maximum událostí k zobrazení"
+                                    ),
+                                ),
+                                (
+                                    "event_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("future", "budoucí"),
+                                            ("past", "proběhlé"),
+                                        ],
+                                        label="druh událostí",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "button",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je odkaz vyplněný, není nutno vyplňovat stránku.",
+                                        label="Odkaz",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        help_text="Pokud je stránka vyplněná, není nutno vyplňovat odkaz.",
+                                        label="Stránka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "chart",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Název", max_length=120
+                                    ),
+                                ),
+                                (
+                                    "chart_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("bar", "Graf se sloupci"),
+                                            (
+                                                "horizontalBar",
+                                                "Graf s vodorovnými sloupci",
+                                            ),
+                                            ("pie", "Koláčový graf"),
+                                            ("doughnut", "Donutový graf"),
+                                            ("polarArea", "Graf polární oblasti"),
+                                            ("radar", "Radarový graf"),
+                                            ("line", "Graf s liniemi"),
+                                        ],
+                                        label="Typ",
+                                    ),
+                                ),
+                                (
+                                    "hide_points",
+                                    wagtail.blocks.BooleanBlock(
+                                        help_text="Mění vzhled pouze u linových grafů.",
+                                        label="Schovat body",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_labels",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.CharBlock(
+                                            label="Skupina", max_length=40
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místně definované skupiny",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení zdroje dat",
+                                                        max_length=120,
+                                                    ),
+                                                ),
+                                                (
+                                                    "data",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.IntegerBlock(),
+                                                        default=[0],
+                                                        label="Data",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místní zdroje dat",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "redmine_issue_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "projects",
+                                                    wagtail.blocks.MultipleChoiceBlock(
+                                                        choices=shared.blocks.base.get_redmine_projects,
+                                                        label="Projekty",
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_open",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen otevřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_closed",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen uzavřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_min_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Min. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_max_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Max. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "updated_on",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api",
+                                                        label="Filtr pro datum aktualizace",
+                                                        max_length=128,
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "issue_label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení úkolů uvnitř grafu",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "split_per_project",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Rozdělit podle projektu",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "only_grow",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Pouze růst nahoru",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Redmine úkoly",
+                                        ),
+                                        blank=True,
+                                        default=[],
+                                        help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.",
+                                        label="Zdroje dat z Redmine (úkoly)",
+                                        required=False,
+                                    ),
+                                ),
+                            ],
+                            template="uniweb/blocks/chart.html",
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="obsah stránky za formulářem",
+            ),
         ),
         migrations.AlterField(
-            model_name='uniwebformpage',
-            name='content_before',
-            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky před formulářem'),
+            model_name="uniwebformpage",
+            name="content_before",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "title",
+                        wagtail.blocks.CharBlock(
+                            group="nadpisy",
+                            icon="title",
+                            label="nadpis",
+                            template="uniweb/blocks/title.html",
+                        ),
+                    ),
+                    (
+                        "advanced_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "picture_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            features=[
+                                "h2",
+                                "h3",
+                                "h4",
+                                "h5",
+                                "bold",
+                                "italic",
+                                "ol",
+                                "ul",
+                                "hr",
+                                "link",
+                                "document-link",
+                                "image",
+                                "superscript",
+                                "subscript",
+                                "strikethrough",
+                                "blockquote",
+                                "embed",
+                            ],
+                            group="texty",
+                            label="text",
+                            template="uniweb/blocks/text.html",
+                        ),
+                    ),
+                    (
+                        "advanced_text",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="text",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "advanced_text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "gallery",
+                        wagtail.blocks.ListBlock(
+                            wagtail.images.blocks.ImageChooserBlock(label="obrázek"),
+                            group="ostatní",
+                            icon="image",
+                            label="galerie",
+                            template="uniweb/blocks/gallery.html",
+                        ),
+                    ),
+                    (
+                        "picture_list",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "items",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.RichTextBlock(
+                                            features=[
+                                                "h2",
+                                                "h3",
+                                                "h4",
+                                                "h5",
+                                                "bold",
+                                                "italic",
+                                                "ol",
+                                                "ul",
+                                                "hr",
+                                                "link",
+                                                "document-link",
+                                                "image",
+                                                "superscript",
+                                                "subscript",
+                                                "strikethrough",
+                                                "blockquote",
+                                                "embed",
+                                            ],
+                                            label="odstavec",
+                                        ),
+                                        label="odstavce",
+                                    ),
+                                ),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "aligned_table",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "alignment",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "Vlevo"),
+                                            ("center", "Vprostřed"),
+                                            ("right", "Vpravo"),
+                                            ("full", "Celá šířka obrazovky"),
+                                        ],
+                                        label="Zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "table",
+                                    wagtail.contrib.table_block.blocks.TableBlock(
+                                        label="Tabulka"
+                                    ),
+                                ),
+                            ],
+                            group="ostatní",
+                            template="uniweb/blocks/aligned_table.html",
+                        ),
+                    ),
+                    (
+                        "table",
+                        wagtail.contrib.table_block.blocks.TableBlock(
+                            group="ostatní",
+                            label="Tabulka",
+                            template="uniweb/blocks/table.html",
+                        ),
+                    ),
+                    (
+                        "articles",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="sekce článků",
+                                        page_type=["uniweb.UniwebArticlesIndexPage"],
+                                    ),
+                                ),
+                                (
+                                    "lines",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=1,
+                                        help_text="zobrazí se tři články na řádek",
+                                        label="počet řádků",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "calendar_agenda",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "info",
+                                    wagtail.blocks.static_block.StaticBlock(
+                                        admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu",
+                                        label="volba kalendáře",
+                                    ),
+                                ),
+                                (
+                                    "count",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=10, label="maximum událostí k zobrazení"
+                                    ),
+                                ),
+                                (
+                                    "event_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("future", "budoucí"),
+                                            ("past", "proběhlé"),
+                                        ],
+                                        label="druh událostí",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "button",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je odkaz vyplněný, není nutno vyplňovat stránku.",
+                                        label="Odkaz",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        help_text="Pokud je stránka vyplněná, není nutno vyplňovat odkaz.",
+                                        label="Stránka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "chart",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Název", max_length=120
+                                    ),
+                                ),
+                                (
+                                    "chart_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("bar", "Graf se sloupci"),
+                                            (
+                                                "horizontalBar",
+                                                "Graf s vodorovnými sloupci",
+                                            ),
+                                            ("pie", "Koláčový graf"),
+                                            ("doughnut", "Donutový graf"),
+                                            ("polarArea", "Graf polární oblasti"),
+                                            ("radar", "Radarový graf"),
+                                            ("line", "Graf s liniemi"),
+                                        ],
+                                        label="Typ",
+                                    ),
+                                ),
+                                (
+                                    "hide_points",
+                                    wagtail.blocks.BooleanBlock(
+                                        help_text="Mění vzhled pouze u linových grafů.",
+                                        label="Schovat body",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_labels",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.CharBlock(
+                                            label="Skupina", max_length=40
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místně definované skupiny",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení zdroje dat",
+                                                        max_length=120,
+                                                    ),
+                                                ),
+                                                (
+                                                    "data",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.IntegerBlock(),
+                                                        default=[0],
+                                                        label="Data",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místní zdroje dat",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "redmine_issue_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "projects",
+                                                    wagtail.blocks.MultipleChoiceBlock(
+                                                        choices=shared.blocks.base.get_redmine_projects,
+                                                        label="Projekty",
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_open",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen otevřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_closed",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen uzavřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_min_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Min. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_max_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Max. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "updated_on",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api",
+                                                        label="Filtr pro datum aktualizace",
+                                                        max_length=128,
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "issue_label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení úkolů uvnitř grafu",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "split_per_project",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Rozdělit podle projektu",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "only_grow",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Pouze růst nahoru",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Redmine úkoly",
+                                        ),
+                                        blank=True,
+                                        default=[],
+                                        help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.",
+                                        label="Zdroje dat z Redmine (úkoly)",
+                                        required=False,
+                                    ),
+                                ),
+                            ],
+                            template="uniweb/blocks/chart.html",
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="obsah stránky před formulářem",
+            ),
         ),
         migrations.AlterField(
-            model_name='uniwebformpage',
-            name='content_landing',
-            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky zobrazené po odeslání formuláře'),
+            model_name="uniwebformpage",
+            name="content_landing",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "title",
+                        wagtail.blocks.CharBlock(
+                            group="nadpisy",
+                            icon="title",
+                            label="nadpis",
+                            template="uniweb/blocks/title.html",
+                        ),
+                    ),
+                    (
+                        "advanced_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "picture_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            features=[
+                                "h2",
+                                "h3",
+                                "h4",
+                                "h5",
+                                "bold",
+                                "italic",
+                                "ol",
+                                "ul",
+                                "hr",
+                                "link",
+                                "document-link",
+                                "image",
+                                "superscript",
+                                "subscript",
+                                "strikethrough",
+                                "blockquote",
+                                "embed",
+                            ],
+                            group="texty",
+                            label="text",
+                            template="uniweb/blocks/text.html",
+                        ),
+                    ),
+                    (
+                        "advanced_text",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="text",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "advanced_text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "gallery",
+                        wagtail.blocks.ListBlock(
+                            wagtail.images.blocks.ImageChooserBlock(label="obrázek"),
+                            group="ostatní",
+                            icon="image",
+                            label="galerie",
+                            template="uniweb/blocks/gallery.html",
+                        ),
+                    ),
+                    (
+                        "picture_list",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "items",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.RichTextBlock(
+                                            features=[
+                                                "h2",
+                                                "h3",
+                                                "h4",
+                                                "h5",
+                                                "bold",
+                                                "italic",
+                                                "ol",
+                                                "ul",
+                                                "hr",
+                                                "link",
+                                                "document-link",
+                                                "image",
+                                                "superscript",
+                                                "subscript",
+                                                "strikethrough",
+                                                "blockquote",
+                                                "embed",
+                                            ],
+                                            label="odstavec",
+                                        ),
+                                        label="odstavce",
+                                    ),
+                                ),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "aligned_table",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "alignment",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "Vlevo"),
+                                            ("center", "Vprostřed"),
+                                            ("right", "Vpravo"),
+                                            ("full", "Celá šířka obrazovky"),
+                                        ],
+                                        label="Zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "table",
+                                    wagtail.contrib.table_block.blocks.TableBlock(
+                                        label="Tabulka"
+                                    ),
+                                ),
+                            ],
+                            group="ostatní",
+                            template="uniweb/blocks/aligned_table.html",
+                        ),
+                    ),
+                    (
+                        "table",
+                        wagtail.contrib.table_block.blocks.TableBlock(
+                            group="ostatní",
+                            label="Tabulka",
+                            template="uniweb/blocks/table.html",
+                        ),
+                    ),
+                    (
+                        "articles",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="sekce článků",
+                                        page_type=["uniweb.UniwebArticlesIndexPage"],
+                                    ),
+                                ),
+                                (
+                                    "lines",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=1,
+                                        help_text="zobrazí se tři články na řádek",
+                                        label="počet řádků",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "calendar_agenda",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "info",
+                                    wagtail.blocks.static_block.StaticBlock(
+                                        admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu",
+                                        label="volba kalendáře",
+                                    ),
+                                ),
+                                (
+                                    "count",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=10, label="maximum událostí k zobrazení"
+                                    ),
+                                ),
+                                (
+                                    "event_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("future", "budoucí"),
+                                            ("past", "proběhlé"),
+                                        ],
+                                        label="druh událostí",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "button",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je odkaz vyplněný, není nutno vyplňovat stránku.",
+                                        label="Odkaz",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        help_text="Pokud je stránka vyplněná, není nutno vyplňovat odkaz.",
+                                        label="Stránka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "chart",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Název", max_length=120
+                                    ),
+                                ),
+                                (
+                                    "chart_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("bar", "Graf se sloupci"),
+                                            (
+                                                "horizontalBar",
+                                                "Graf s vodorovnými sloupci",
+                                            ),
+                                            ("pie", "Koláčový graf"),
+                                            ("doughnut", "Donutový graf"),
+                                            ("polarArea", "Graf polární oblasti"),
+                                            ("radar", "Radarový graf"),
+                                            ("line", "Graf s liniemi"),
+                                        ],
+                                        label="Typ",
+                                    ),
+                                ),
+                                (
+                                    "hide_points",
+                                    wagtail.blocks.BooleanBlock(
+                                        help_text="Mění vzhled pouze u linových grafů.",
+                                        label="Schovat body",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_labels",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.CharBlock(
+                                            label="Skupina", max_length=40
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místně definované skupiny",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení zdroje dat",
+                                                        max_length=120,
+                                                    ),
+                                                ),
+                                                (
+                                                    "data",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.IntegerBlock(),
+                                                        default=[0],
+                                                        label="Data",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místní zdroje dat",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "redmine_issue_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "projects",
+                                                    wagtail.blocks.MultipleChoiceBlock(
+                                                        choices=shared.blocks.base.get_redmine_projects,
+                                                        label="Projekty",
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_open",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen otevřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_closed",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen uzavřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_min_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Min. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_max_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Max. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "updated_on",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api",
+                                                        label="Filtr pro datum aktualizace",
+                                                        max_length=128,
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "issue_label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení úkolů uvnitř grafu",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "split_per_project",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Rozdělit podle projektu",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "only_grow",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Pouze růst nahoru",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Redmine úkoly",
+                                        ),
+                                        blank=True,
+                                        default=[],
+                                        help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.",
+                                        label="Zdroje dat z Redmine (úkoly)",
+                                        required=False,
+                                    ),
+                                ),
+                            ],
+                            template="uniweb/blocks/chart.html",
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="obsah stránky zobrazené po odeslání formuláře",
+            ),
         ),
         migrations.AlterField(
-            model_name='uniwebhomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, use_json_field=True, verbose_name='obsah stránky'),
+            model_name="uniwebhomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "title",
+                        wagtail.blocks.CharBlock(
+                            group="nadpisy",
+                            icon="title",
+                            label="nadpis",
+                            template="uniweb/blocks/title.html",
+                        ),
+                    ),
+                    (
+                        "advanced_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "picture_title",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                ("title", wagtail.blocks.CharBlock(label="nadpis")),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            features=[
+                                "h2",
+                                "h3",
+                                "h4",
+                                "h5",
+                                "bold",
+                                "italic",
+                                "ol",
+                                "ul",
+                                "hr",
+                                "link",
+                                "document-link",
+                                "image",
+                                "superscript",
+                                "subscript",
+                                "strikethrough",
+                                "blockquote",
+                                "embed",
+                            ],
+                            group="texty",
+                            label="text",
+                            template="uniweb/blocks/text.html",
+                        ),
+                    ),
+                    (
+                        "advanced_text",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="text",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "advanced_text_columns",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "align",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "vlevo"),
+                                            ("center", "uprostřed"),
+                                            ("right", "vpravo"),
+                                        ],
+                                        label="zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "left_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="levý sloupec",
+                                    ),
+                                ),
+                                (
+                                    "right_text",
+                                    wagtail.blocks.RichTextBlock(
+                                        features=[
+                                            "h2",
+                                            "h3",
+                                            "h4",
+                                            "h5",
+                                            "bold",
+                                            "italic",
+                                            "ol",
+                                            "ul",
+                                            "hr",
+                                            "link",
+                                            "document-link",
+                                            "image",
+                                            "superscript",
+                                            "subscript",
+                                            "strikethrough",
+                                            "blockquote",
+                                            "embed",
+                                        ],
+                                        label="pravý sloupec",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "gallery",
+                        wagtail.blocks.ListBlock(
+                            wagtail.images.blocks.ImageChooserBlock(label="obrázek"),
+                            group="ostatní",
+                            icon="image",
+                            label="galerie",
+                            template="uniweb/blocks/gallery.html",
+                        ),
+                    ),
+                    (
+                        "picture_list",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "color",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("black_on_white", "černá na bílé"),
+                                            ("white_on_black", "bílá na černé"),
+                                            ("white_on_blue", "bílá na modré"),
+                                            ("white_on_cyan", "bílá na tyrkysové"),
+                                            ("white_on_violet", "bílá na fialové"),
+                                        ],
+                                        label="barva",
+                                    ),
+                                ),
+                                (
+                                    "items",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.RichTextBlock(
+                                            features=[
+                                                "h2",
+                                                "h3",
+                                                "h4",
+                                                "h5",
+                                                "bold",
+                                                "italic",
+                                                "ol",
+                                                "ul",
+                                                "hr",
+                                                "link",
+                                                "document-link",
+                                                "image",
+                                                "superscript",
+                                                "subscript",
+                                                "strikethrough",
+                                                "blockquote",
+                                                "embed",
+                                            ],
+                                            label="odstavec",
+                                        ),
+                                        label="odstavce",
+                                    ),
+                                ),
+                                (
+                                    "picture",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
+                                        label="obrázek",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "aligned_table",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "alignment",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("left", "Vlevo"),
+                                            ("center", "Vprostřed"),
+                                            ("right", "Vpravo"),
+                                            ("full", "Celá šířka obrazovky"),
+                                        ],
+                                        label="Zarovnání",
+                                    ),
+                                ),
+                                (
+                                    "table",
+                                    wagtail.contrib.table_block.blocks.TableBlock(
+                                        label="Tabulka"
+                                    ),
+                                ),
+                            ],
+                            group="ostatní",
+                            template="uniweb/blocks/aligned_table.html",
+                        ),
+                    ),
+                    (
+                        "table",
+                        wagtail.contrib.table_block.blocks.TableBlock(
+                            group="ostatní",
+                            label="Tabulka",
+                            template="uniweb/blocks/table.html",
+                        ),
+                    ),
+                    (
+                        "articles",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="sekce článků",
+                                        page_type=["uniweb.UniwebArticlesIndexPage"],
+                                    ),
+                                ),
+                                (
+                                    "lines",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=1,
+                                        help_text="zobrazí se tři články na řádek",
+                                        label="počet řádků",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "calendar_agenda",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "info",
+                                    wagtail.blocks.static_block.StaticBlock(
+                                        admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu",
+                                        label="volba kalendáře",
+                                    ),
+                                ),
+                                (
+                                    "count",
+                                    wagtail.blocks.IntegerBlock(
+                                        default=10, label="maximum událostí k zobrazení"
+                                    ),
+                                ),
+                                (
+                                    "event_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("future", "budoucí"),
+                                            ("past", "proběhlé"),
+                                        ],
+                                        label="druh událostí",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "button",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je odkaz vyplněný, není nutno vyplňovat stránku.",
+                                        label="Odkaz",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        help_text="Pokud je stránka vyplněná, není nutno vyplňovat odkaz.",
+                                        label="Stránka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "chart",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Název", max_length=120
+                                    ),
+                                ),
+                                (
+                                    "chart_type",
+                                    wagtail.blocks.ChoiceBlock(
+                                        choices=[
+                                            ("bar", "Graf se sloupci"),
+                                            (
+                                                "horizontalBar",
+                                                "Graf s vodorovnými sloupci",
+                                            ),
+                                            ("pie", "Koláčový graf"),
+                                            ("doughnut", "Donutový graf"),
+                                            ("polarArea", "Graf polární oblasti"),
+                                            ("radar", "Radarový graf"),
+                                            ("line", "Graf s liniemi"),
+                                        ],
+                                        label="Typ",
+                                    ),
+                                ),
+                                (
+                                    "hide_points",
+                                    wagtail.blocks.BooleanBlock(
+                                        help_text="Mění vzhled pouze u linových grafů.",
+                                        label="Schovat body",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_labels",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.CharBlock(
+                                            label="Skupina", max_length=40
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místně definované skupiny",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "local_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení zdroje dat",
+                                                        max_length=120,
+                                                    ),
+                                                ),
+                                                (
+                                                    "data",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.IntegerBlock(),
+                                                        default=[0],
+                                                        label="Data",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        blank=True,
+                                        collapsed=True,
+                                        default=[],
+                                        label="Místní zdroje dat",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "redmine_issue_datasets",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "projects",
+                                                    wagtail.blocks.MultipleChoiceBlock(
+                                                        choices=shared.blocks.base.get_redmine_projects,
+                                                        label="Projekty",
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_open",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen otevřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "is_closed",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Jen uzavřené",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_min_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Min. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "created_on_max_date",
+                                                    wagtail.blocks.DateBlock(
+                                                        label="Max. datum vytvoření",
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "updated_on",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api",
+                                                        label="Filtr pro datum aktualizace",
+                                                        max_length=128,
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "issue_label",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Označení úkolů uvnitř grafu",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "split_per_project",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Rozdělit podle projektu",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "only_grow",
+                                                    wagtail.blocks.BooleanBlock(
+                                                        label="Pouze růst nahoru",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Redmine úkoly",
+                                        ),
+                                        blank=True,
+                                        default=[],
+                                        help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.",
+                                        label="Zdroje dat z Redmine (úkoly)",
+                                        required=False,
+                                    ),
+                                ),
+                            ],
+                            template="uniweb/blocks/chart.html",
+                        ),
+                    ),
+                    (
+                        "newsletter",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "list_id",
+                                    wagtail.blocks.CharBlock(
+                                        label="ID newsletteru", required=True
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.CharBlock(
+                                        default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!",
+                                        label="Popis newsletteru",
+                                        required=True,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="obsah stránky",
+            ),
         ),
     ]