diff --git a/uniweb/blocks.py b/uniweb/blocks.py
index 74c2c2d5cc8b5c571d4a5db5947ec4261a96c167..8f33472d409964592fe5518f05145564f4d2efe4 100644
--- a/uniweb/blocks.py
+++ b/uniweb/blocks.py
@@ -1,4 +1,16 @@
-from wagtail.blocks import CharBlock, ListBlock, PageChooserBlock, StructBlock, URLBlock
+from wagtail.blocks import CharBlock, ListBlock, PageChooserBlock, StructBlock, URLBlock, ChoiceBlock
+from wagtail.contrib.table_block.blocks import TableBlock as ContribTableBlock
+
+
+class AlignedTableBlock(ContribTableBlock):
+    alignment = ChoiceBlock(
+        choices=[
+            ("left", "Vlevo"),
+            ("center", "Vprostřed"),
+            ("right", "Vpravo"),
+        ],
+        default="left",
+    )
 
 
 class PersonUrlBlock(StructBlock):
diff --git a/uniweb/migrations/0057_alter_uniwebflexiblepage_content_and_more.py b/uniweb/migrations/0057_alter_uniwebflexiblepage_content_and_more.py
new file mode 100644
index 0000000000000000000000000000000000000000..cff9b3db42e3cc1041afca3cba55e9d5e6ec42bb
--- /dev/null
+++ b/uniweb/migrations/0057_alter_uniwebflexiblepage_content_and_more.py
@@ -0,0 +1,44 @@
+# Generated by Django 4.1.13 on 2024-02-29 17:01
+
+from django.db import migrations
+import shared.blocks.base
+import uniweb.blocks
+import wagtail.blocks
+import wagtail.blocks.static_block
+import wagtail.fields
+import wagtail.images.blocks
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('uniweb', '0056_alter_uniwebflexiblepage_content_and_more'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='uniwebflexiblepage',
+            name='content',
+            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('table', uniweb.blocks.AlignedTableBlock(group='ostatní', label='tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, use_json_field=True, verbose_name='obsah stránky'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_after',
+            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('table', uniweb.blocks.AlignedTableBlock(group='ostatní', label='tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky za formulářem'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_before',
+            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('table', uniweb.blocks.AlignedTableBlock(group='ostatní', label='tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky před formulářem'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_landing',
+            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('table', uniweb.blocks.AlignedTableBlock(group='ostatní', label='tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html'))], blank=True, use_json_field=True, verbose_name='obsah stránky zobrazené po odeslání formuláře'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebhomepage',
+            name='content',
+            field=wagtail.fields.StreamField([('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], group='texty', label='text', template='uniweb/blocks/text.html')), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('table', uniweb.blocks.AlignedTableBlock(group='ostatní', label='tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, use_json_field=True, verbose_name='obsah stránky'),
+        ),
+    ]
diff --git a/uniweb/models.py b/uniweb/models.py
index 13c12a220fcc7248cedf10ad2cc720b4961f10cf..216c2c78a636fd6133808198add3fdd0f5e5cb06 100644
--- a/uniweb/models.py
+++ b/uniweb/models.py
@@ -19,7 +19,6 @@ from wagtail.admin.panels import (
 from wagtail.contrib.forms.models import AbstractForm, AbstractFormField
 from wagtail.contrib.forms.panels import FormSubmissionsPanel
 from wagtail.contrib.routable_page.models import RoutablePageMixin, route
-from wagtail.contrib.table_block.blocks import TableBlock
 from wagtail.fields import RichTextField, StreamField
 from wagtail.images.blocks import ImageChooserBlock
 from wagtail.models import Page
@@ -42,7 +41,7 @@ from shared.models import (
 from shared.utils import make_promote_panels, strip_all_html_tags, trim_to_length
 from tuning import admin_help
 
-from .blocks import PeopleGroupListBlock, PersonUrlBlock
+from .blocks import PeopleGroupListBlock, PersonUrlBlock, AlignedTableBlock
 from .constants import (
     ALIGN_CHOICES,
     ALIGN_CSS,
@@ -307,7 +306,7 @@ CONTENT_STREAM_BLOCKS = [
     ("picture_list", PictureListBlock()),
     (
         "table",
-        TableBlock(
+        AlignedTableBlock(
             label="tabulka",
             group="ostatní",
             template="uniweb/blocks/table.html",