diff --git a/.isort.cfg b/.isort.cfg
index 788c750516986be0dcd5ea66c92872605b99f43c..1c7eceb8c4e1f20b53e6ee04d88e2ee64d8cba91 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,httplib2,icalendar,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,nh3,pirates,pytest,pytz,requests,sentry_sdk,taggit,wagtail,wagtailmetadata,weasyprint,willow,yaml
diff --git a/base.txt b/base.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/calendar_utils/parser.py b/calendar_utils/parser.py
index 1ae18f193a2ecfceba6aa3e0f299438a5570b7e9..a454bbd06ba3a7734d27e0f88b8da6247b9dcdc0 100644
--- a/calendar_utils/parser.py
+++ b/calendar_utils/parser.py
@@ -4,6 +4,7 @@ from zoneinfo import ZoneInfo
 
 import arrow
 import bleach
+import nh3
 from django.conf import settings
 from django.utils.timezone import is_naive
 
@@ -61,6 +62,12 @@ def process_event(event: "Event") -> dict:
     event = set_event_timezone(event)
     event = set_event_duration(event)
     event = set_event_description(event)
+
+    event.description = nh3.clean(
+        event.description,
+        tags={"h1", "h2", "h3", "h4", "h5", "h6", "a", "em", "p", "b", "strong", "br"},
+    )
+
     # for event in sorted(cal.events, key=attrgetter("start"), reverse=True): TODO check
     return {key: getattr(event, key) for key in EVENT_KEYS}
 
diff --git a/requirements/base.in b/requirements/base.in
index b3a5d534b5f4cbaa8fe98af8b36bb634bd726ccb..66fca59cee8725cc5eeb90fe346366315d89d68a 100644
--- a/requirements/base.in
+++ b/requirements/base.in
@@ -31,3 +31,4 @@ wand
 httplib2<0.21.0,>=0.20.4
 icalendar==4.0.9
 pytz<2022.0,>=2021.3
+nh3
diff --git a/requirements/base.txt b/requirements/base.txt
index 90d9e4f539892a6ecb5df317fd3eee4d7e3bbe2f..6588abe8f5e1776824cf1eafa9fdd6b3a7a149d1 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -12,7 +12,7 @@ arrow==1.3.0
     # via
     #   -r base.in
     #   ics
-asgiref==3.7.2
+asgiref==3.8.1
     # via django
 asttokens==2.4.1
     # via stack-data
@@ -35,7 +35,7 @@ brotli==1.1.0
     # via fonttools
 cattrs==23.2.3
     # via requests-cache
-celery==5.3.6
+celery==5.4.0
     # via -r base.in
 certifi==2024.2.2
     # via
@@ -53,13 +53,13 @@ click==8.1.7
     #   click-didyoumean
     #   click-plugins
     #   click-repl
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
     # via celery
 click-plugins==1.1.1
     # via celery
 click-repl==0.3.0
     # via celery
-cryptography==42.0.4
+cryptography==42.0.5
     # via
     #   josepy
     #   mozilla-django-oidc
@@ -108,7 +108,7 @@ django-treebeard==4.7.1
     # via wagtail
 django-widget-tweaks==1.5.0
     # via -r base.in
-djangorestframework==3.14.0
+djangorestframework==3.15.1
     # via wagtail
 draftjs-exporter==2.1.7
     # via wagtail
@@ -118,7 +118,7 @@ executing==2.0.1
     # via stack-data
 fastjsonschema==2.19.1
     # via -r base.in
-fonttools[woff]==4.49.0
+fonttools[woff]==4.51.0
     # via weasyprint
 html5lib==1.1
     # via
@@ -130,24 +130,26 @@ icalendar==4.0.9
     # via -r base.in
 ics==0.7.2
     # via -r base.in
-idna==3.6
+idna==3.7
     # via requests
-ipython==8.21.0
+ipython==8.23.0
     # via -r base.in
 jedi==0.19.1
     # via ipython
 josepy==1.14.0
     # via mozilla-django-oidc
-kombu==5.3.5
+kombu==5.3.7
     # via celery
 l18n==2021.3
     # via wagtail
-markdown==3.5.2
+markdown==3.6
     # via -r base.in
-matplotlib-inline==0.1.6
+matplotlib-inline==0.1.7
     # via ipython
 mozilla-django-oidc==3.0.0
     # via pirates
+nh3==0.2.17
+    # via -r base.in
 numpy==1.26.4
     # via opencv-python
 oauthlib==3.2.2
@@ -158,7 +160,7 @@ opencv-python==4.9.0.80
     # via -r base.in
 openpyxl==3.1.2
     # via wagtail
-parso==0.8.3
+parso==0.8.4
     # via jedi
 pexpect==4.9.0
     # via ipython
@@ -181,21 +183,21 @@ ptyprocess==0.7.0
     # via pexpect
 pure-eval==0.2.2
     # via stack-data
-pycparser==2.21
+pycparser==2.22
     # via cffi
-pydyf==0.8.0
+pydyf==0.9.0
     # via weasyprint
 pygments==2.17.2
     # via ipython
-pyopenssl==24.0.0
+pyopenssl==24.1.0
     # via josepy
-pyparsing==3.1.1
+pyparsing==3.1.2
     # via httplib2
 pypdf2==3.0.1
     # via -r base.in
 pyphen==0.14.0
     # via weasyprint
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   arrow
     #   celery
@@ -205,12 +207,11 @@ pytz==2021.3
     # via
     #   -r base.in
     #   django-modelcluster
-    #   djangorestframework
     #   icalendar
     #   l18n
 pyyaml==6.0.1
     # via -r base.in
-redis==5.0.1
+redis==5.0.3
     # via django-redis
 requests==2.31.0
     # via
@@ -224,7 +225,7 @@ requests-cache==1.2.0
     # via -r base.in
 requests-oauthlib==1.3.1
     # via tweepy
-sentry-sdk==1.40.5
+sentry-sdk==1.45.0
     # via -r base.in
 six==1.16.0
     # via
@@ -237,11 +238,11 @@ six==1.16.0
     #   url-normalize
 soupsieve==2.5
     # via beautifulsoup4
-sqlparse==0.4.4
+sqlparse==0.5.0
     # via django
 stack-data==0.6.3
     # via ipython
-tatsu==5.11.3
+tatsu==5.12.0
     # via ics
 telepath==0.3.1
     # via wagtail
@@ -249,14 +250,16 @@ tinycss2==1.2.1
     # via
     #   cssselect2
     #   weasyprint
-traitlets==5.14.1
+traitlets==5.14.2
     # via
     #   ipython
     #   matplotlib-inline
 tweepy==4.14.0
     # via -r base.in
-types-python-dateutil==2.8.19.20240106
+types-python-dateutil==2.9.0.20240316
     # via arrow
+typing-extensions==4.11.0
+    # via ipython
 tzdata==2024.1
     # via celery
 url-normalize==1.4.3
@@ -284,7 +287,7 @@ wand==0.6.13
     # via -r base.in
 wcwidth==0.2.13
     # via prompt-toolkit
-weasyprint==61.0
+weasyprint==61.2
     # via -r base.in
 webencodings==0.5.1
     # via
diff --git a/requirements/dev.txt b/requirements/dev.txt
index c4562fce41c3f6512ab53e72615cffe5af54639b..a527f403b31026de1dbcaf1ad12afdfe8edfecf2 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -4,9 +4,9 @@
 #
 #    pip-compile dev.in
 #
-asgiref==3.7.2
+asgiref==3.8.1
     # via django
-coverage[toml]==7.4.2
+coverage[toml]==7.4.4
     # via pytest-cov
 django==4.1.13
     # via
@@ -16,7 +16,7 @@ django-debug-toolbar==4.3.0
     # via -r dev.in
 factory-boy==3.3.0
     # via pytest-factoryboy
-faker==23.2.1
+faker==24.11.0
     # via factory-boy
 fastdiff==0.3.0
     # via snapshottest
@@ -26,13 +26,14 @@ inflection==0.5.1
     # via pytest-factoryboy
 iniconfig==2.0.0
     # via pytest
-packaging==23.2
+packaging==24.0
     # via
     #   pytest
+    #   pytest-factoryboy
     #   pytest-sugar
 pluggy==1.4.0
     # via pytest
-pytest==8.0.1
+pytest==8.1.1
     # via
     #   -r dev.in
     #   pytest-cov
@@ -41,19 +42,19 @@ pytest==8.0.1
     #   pytest-freezegun
     #   pytest-mock
     #   pytest-sugar
-pytest-cov==4.1.0
+pytest-cov==5.0.0
     # via -r dev.in
 pytest-django==4.8.0
     # via -r dev.in
-pytest-factoryboy==2.6.0
+pytest-factoryboy==2.7.0
     # via -r dev.in
 pytest-freezegun==0.4.2
     # via -r dev.in
-pytest-mock==3.12.0
+pytest-mock==3.14.0
     # via -r dev.in
 pytest-sugar==1.0.0
     # via -r dev.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   faker
     #   freezegun
@@ -63,7 +64,7 @@ six==1.16.0
     #   snapshottest
 snapshottest==0.6.0
     # via -r dev.in
-sqlparse==0.4.4
+sqlparse==0.5.0
     # via
     #   django
     #   django-debug-toolbar
@@ -71,7 +72,7 @@ termcolor==2.4.0
     # via
     #   pytest-sugar
     #   snapshottest
-typing-extensions==4.9.0
+typing-extensions==4.11.0
     # via pytest-factoryboy
 wasmer==1.1.0
     # via fastdiff
diff --git a/requirements/production.txt b/requirements/production.txt
index 74278924de31427cd843cb614e39cdeb8a461afd..dd49e7bd479eee29364f50a22416e3665fbd3d6b 100644
--- a/requirements/production.txt
+++ b/requirements/production.txt
@@ -4,7 +4,7 @@
 #
 #    pip-compile production.in
 #
-gunicorn==21.2.0
+gunicorn==22.0.0
     # via -r production.in
-packaging==23.2
+packaging==24.0
     # via gunicorn
diff --git a/uniweb/migrations/0061_alter_uniwebflexiblepage_content_and_more.py b/uniweb/migrations/0061_alter_uniwebflexiblepage_content_and_more.py
index c54fe144e111ca56d120e761efa962fe567e07b2..861fa4a44218199823ec439f479dfb7ed7f45f3a 100644
--- a/uniweb/migrations/0061_alter_uniwebflexiblepage_content_and_more.py
+++ b/uniweb/migrations/0061_alter_uniwebflexiblepage_content_and_more.py
@@ -1,44 +1,3586 @@
 # Generated by Django 4.1.13 on 2024-04-11 12:10
 
-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', '0060_alter_uniwebflexiblepage_content_and_more'),
+        ("uniweb", "0060_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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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",
+                        ),
+                    ),
+                    (
+                        "cards",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "cards",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "bg_color",
+                                                    wagtail.blocks.CharBlock(
+                                                        default="FEC900",
+                                                        label="Barva pozadí",
+                                                    ),
+                                                ),
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.TextBlock(
+                                                        help_text="Řádkování je manuální.",
+                                                        label="Nadpis",
+                                                    ),
+                                                ),
+                                                (
+                                                    "content",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Obsah"
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_text",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Pokud není vyplněn, tlačítko se neukáže.",
+                                                        label="Nadpis tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_url",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Odkaz tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Karta",
+                                        ),
+                                        label="Karty",
+                                    ),
+                                )
+                            ],
+                            template="uniweb/blocks/flip_cards.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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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",
+                        ),
+                    ),
+                    (
+                        "cards",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "cards",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "bg_color",
+                                                    wagtail.blocks.CharBlock(
+                                                        default="FEC900",
+                                                        label="Barva pozadí",
+                                                    ),
+                                                ),
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.TextBlock(
+                                                        help_text="Řádkování je manuální.",
+                                                        label="Nadpis",
+                                                    ),
+                                                ),
+                                                (
+                                                    "content",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Obsah"
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_text",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Pokud není vyplněn, tlačítko se neukáže.",
+                                                        label="Nadpis tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_url",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Odkaz tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Karta",
+                                        ),
+                                        label="Karty",
+                                    ),
+                                )
+                            ],
+                            template="uniweb/blocks/flip_cards.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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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",
+                        ),
+                    ),
+                    (
+                        "cards",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "cards",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "bg_color",
+                                                    wagtail.blocks.CharBlock(
+                                                        default="FEC900",
+                                                        label="Barva pozadí",
+                                                    ),
+                                                ),
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.TextBlock(
+                                                        help_text="Řádkování je manuální.",
+                                                        label="Nadpis",
+                                                    ),
+                                                ),
+                                                (
+                                                    "content",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Obsah"
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_text",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Pokud není vyplněn, tlačítko se neukáže.",
+                                                        label="Nadpis tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_url",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Odkaz tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Karta",
+                                        ),
+                                        label="Karty",
+                                    ),
+                                )
+                            ],
+                            template="uniweb/blocks/flip_cards.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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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",
+                        ),
+                    ),
+                    (
+                        "cards",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "cards",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "bg_color",
+                                                    wagtail.blocks.CharBlock(
+                                                        default="FEC900",
+                                                        label="Barva pozadí",
+                                                    ),
+                                                ),
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.TextBlock(
+                                                        help_text="Řádkování je manuální.",
+                                                        label="Nadpis",
+                                                    ),
+                                                ),
+                                                (
+                                                    "content",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Obsah"
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_text",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Pokud není vyplněn, tlačítko se neukáže.",
+                                                        label="Nadpis tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_url",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Odkaz tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Karta",
+                                        ),
+                                        label="Karty",
+                                    ),
+                                )
+                            ],
+                            template="uniweb/blocks/flip_cards.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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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é'), ('black_on_yellow', 'černá na žluté'), ('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')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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é"),
+                                            ("black_on_yellow", "černá na žluté"),
+                                            ("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",
+                        ),
+                    ),
+                    (
+                        "cards",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "cards",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "bg_color",
+                                                    wagtail.blocks.CharBlock(
+                                                        default="FEC900",
+                                                        label="Barva pozadí",
+                                                    ),
+                                                ),
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.TextBlock(
+                                                        help_text="Řádkování je manuální.",
+                                                        label="Nadpis",
+                                                    ),
+                                                ),
+                                                (
+                                                    "content",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Obsah"
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_text",
+                                                    wagtail.blocks.CharBlock(
+                                                        help_text="Pokud není vyplněn, tlačítko se neukáže.",
+                                                        label="Nadpis tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "button_url",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Odkaz tlačítka",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                            ],
+                                            label="Karta",
+                                        ),
+                                        label="Karty",
+                                    ),
+                                )
+                            ],
+                            template="uniweb/blocks/flip_cards.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",
+            ),
         ),
     ]
diff --git a/uniweb/templates/uniweb/blocks/calendar_agenda.html b/uniweb/templates/uniweb/blocks/calendar_agenda.html
index 7a14074dc3eed9a8595c9ee510b8447d2505a979..76bfe84fa9893c637dbe5c38f98df20034c9ef04 100644
--- a/uniweb/templates/uniweb/blocks/calendar_agenda.html
+++ b/uniweb/templates/uniweb/blocks/calendar_agenda.html
@@ -12,8 +12,9 @@
         <div class="col-span-3 md:col-span-2 mt-4 md:mt-0">
           <strong class="block">{{ event.summary }}</strong>
           {% if event.description %}
-            <p class="font-light text-sm mt-1 ">{{ event.description }}</p>
+            <p class="font-light text-sm mt-1 ">{{ event.description|safe }}</p>
           {% endif %}
+
           {% if event.location %}
             <p class="font-light text-sm mt-1">{{ event.location }}</p>
           {% endif %}