diff --git a/district/migrations/0318_districthomepage_ecomail_newsletter_list_source.py b/district/migrations/0318_districthomepage_ecomail_newsletter_list_source.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1ed467873650336dd98adfeb81bd285ff9c10ef
--- /dev/null
+++ b/district/migrations/0318_districthomepage_ecomail_newsletter_list_source.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-24 20:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('district', '0317_alter_districtarticlepage_content_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='districthomepage',
+            name='ecomail_newsletter_list_source',
+            field=models.CharField(blank=True, default='web-nl-generic', help_text='Není nutno měnit.', null=True, verbose_name='Ecomail newsletter zdroj'),
+        ),
+    ]
diff --git a/district/models.py b/district/models.py
index 8ee614df89d3facf00c16db0cb0225ba0ac74277..b07ce6802fbdb8301a3a2490049dc4b0e278173e 100644
--- a/district/models.py
+++ b/district/models.py
@@ -49,6 +49,7 @@ from shared.blocks import (
 from shared.const import RICH_TEXT_DEFAULT_FEATURES
 from shared.models import (
     CustomLogoMixin,
+    EcomailNewsletterMixin,
     ExtendedMetadataPageMixin,
     MainArticlePageMixin,
     MainArticlesPageMixin,
@@ -82,7 +83,9 @@ CONTENT_BLOCKS = DEFAULT_CONTENT_BLOCKS + [
 ]
 
 
-class DistrictHomePage(CustomLogoMixin, CalendarMixin, MainHomePageMixin):
+class DistrictHomePage(
+    CustomLogoMixin, CalendarMixin, EcomailNewsletterMixin, MainHomePageMixin
+):
     ### FIELDS
 
     # Main section
@@ -129,20 +132,6 @@ class DistrictHomePage(CustomLogoMixin, CalendarMixin, MainHomePageMixin):
         help_text="ID newsletteru z Mailtrainu. Po vyplnění se formulář pro odběr newsletteru zobrazí na úvodní stránce a na stránce s kontakty.",
     )
 
-    ecomail_newsletter_list_id = models.IntegerField(
-        "ID Ecomail newsletteru",
-        blank=True,
-        null=True,
-    )
-
-    ecomail_newsletter_list_tags = models.CharField(
-        "Tagy k přidání novým odběratelům na Ecomailu",
-        max_length=128,
-        blank=True,
-        null=True,
-        help_text="Oddělte čárkou, například 'Tag1,Tag2,Tag3'. Bez mezer.",
-    )
-
     newsletter_description = models.CharField(
         "Popis newsletteru",
         max_length=250,
@@ -212,6 +201,7 @@ class DistrictHomePage(CustomLogoMixin, CalendarMixin, MainHomePageMixin):
                 FieldPanel("newsletter_list_id"),
                 FieldPanel("ecomail_newsletter_list_id"),
                 FieldPanel("ecomail_newsletter_list_tags"),
+                FieldPanel("ecomail_newsletter_list_source"),
             ],
             "Formulář pro odběr newsletteru",
         ),
diff --git a/main/migrations/0156_mainhomepage_ecomail_newsletter_list_source.py b/main/migrations/0156_mainhomepage_ecomail_newsletter_list_source.py
new file mode 100644
index 0000000000000000000000000000000000000000..3154c5e5c6bb9b2dc13121e5be63baaca2afdea8
--- /dev/null
+++ b/main/migrations/0156_mainhomepage_ecomail_newsletter_list_source.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-24 20:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('main', '0155_alter_mainarticlepage_content_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='mainhomepage',
+            name='ecomail_newsletter_list_source',
+            field=models.CharField(blank=True, default='web-nl-generic', help_text='Není nutno měnit.', null=True, verbose_name='Ecomail newsletter zdroj'),
+        ),
+    ]
diff --git a/main/models.py b/main/models.py
index e4b62d26e1e1c8dcd6e59e341bab3f07ebb95e37..90baea38877a818d22da97a56045a8c934058b58 100644
--- a/main/models.py
+++ b/main/models.py
@@ -26,6 +26,7 @@ from shared import blocks as shared_blocks
 from shared.const import RICH_TEXT_DEFAULT_FEATURES
 from shared.models import (  # MenuMixin,
     ArticleMixin,
+    EcomailNewsletterMixin,
     ExtendedMetadataHomePageMixin,
     ExtendedMetadataPageMixin,
     MainArticlePageMixin,
@@ -47,7 +48,7 @@ from . import blocks
 from .forms import CareerSubmissionForm, MainArticlesPageForm
 
 
-class MainHomePage(MainHomePageMixin):
+class MainHomePage(EcomailNewsletterMixin, MainHomePageMixin):
     # menu
 
     popout_button_name = models.CharField(
@@ -66,20 +67,6 @@ class MainHomePage(MainHomePageMixin):
         use_json_field=True,
     )
 
-    ecomail_newsletter_list_id = models.IntegerField(
-        "ID Ecomail newsletteru",
-        blank=True,
-        null=True,
-    )
-
-    ecomail_newsletter_list_tags = models.CharField(
-        "Tagy k přidání novým odběratelům na Ecomailu",
-        max_length=128,
-        blank=True,
-        null=True,
-        help_text="Oddělte čárkou, například 'Tag1,Tag2,Tag3'. Bez mezer.",
-    )
-
     # content
     content = StreamField(
         [
@@ -149,6 +136,7 @@ class MainHomePage(MainHomePageMixin):
                 + [
                     FieldPanel("ecomail_newsletter_list_id"),
                     FieldPanel("ecomail_newsletter_list_tags"),
+                    FieldPanel("ecomail_newsletter_list_source"),
                 ],
                 heading="NastavenĂ­",
             ),
diff --git a/make_a_wish/migrations/0008_makeawishroot_ecomail_newsletter_list_id_and_more.py b/make_a_wish/migrations/0008_makeawishroot_ecomail_newsletter_list_id_and_more.py
new file mode 100644
index 0000000000000000000000000000000000000000..69f8d0eb99e414131228fc910375e1237b471229
--- /dev/null
+++ b/make_a_wish/migrations/0008_makeawishroot_ecomail_newsletter_list_id_and_more.py
@@ -0,0 +1,23 @@
+# Generated by Django 5.0.7 on 2025-03-24 16:43
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('make_a_wish', '0007_makeawishroot_matomo_id'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='makeawishroot',
+            name='ecomail_newsletter_list_id',
+            field=models.IntegerField(blank=True, null=True, verbose_name='ID Ecomail newsletteru'),
+        ),
+        migrations.AddField(
+            model_name='makeawishroot',
+            name='ecomail_newsletter_list_tags',
+            field=models.CharField(blank=True, help_text="Oddělte čárkou, například 'Tag1,Tag2,Tag3'. Bez mezer.", max_length=128, null=True, verbose_name='Tagy k přidání novým odběratelům na Ecomailu'),
+        ),
+    ]
diff --git a/make_a_wish/migrations/0009_makeawishroot_ecomail_newsletter_list_source.py b/make_a_wish/migrations/0009_makeawishroot_ecomail_newsletter_list_source.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7fd7c73745645eec73e444f46e20f489f39f0ea
--- /dev/null
+++ b/make_a_wish/migrations/0009_makeawishroot_ecomail_newsletter_list_source.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-24 20:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('make_a_wish', '0008_makeawishroot_ecomail_newsletter_list_id_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='makeawishroot',
+            name='ecomail_newsletter_list_source',
+            field=models.CharField(blank=True, default='web-nl-generic', help_text='Není nutno měnit.', null=True, verbose_name='Ecomail newsletter zdroj'),
+        ),
+    ]
diff --git a/make_a_wish/migrations/0010_makeawishroot_fbevents_id.py b/make_a_wish/migrations/0010_makeawishroot_fbevents_id.py
new file mode 100644
index 0000000000000000000000000000000000000000..65287ce295ad60aadd283eff9426071c2aef1c4d
--- /dev/null
+++ b/make_a_wish/migrations/0010_makeawishroot_fbevents_id.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-25 16:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('make_a_wish', '0009_makeawishroot_ecomail_newsletter_list_source'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='makeawishroot',
+            name='fbevents_id',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='InternĂ­ ID 1'),
+        ),
+    ]
diff --git a/make_a_wish/models.py b/make_a_wish/models.py
index 95381ca9b9c7f1bb130b39223abb9ecb4debbc8a..336f0302c71aa563626d7ae02dc0619770747d90 100644
--- a/make_a_wish/models.py
+++ b/make_a_wish/models.py
@@ -7,7 +7,12 @@ from wagtail.fields import StreamField
 from wagtail.models import Page
 from wagtailmetadata.models import MetadataPageMixin
 
-from shared.models import ExtendedMetadataHomePageMixin
+from shared.models import (
+    EcomailNewsletterMixin,
+    ExtendedMetadataHomePageMixin,
+    FbEventsMixin,
+)
+from shared.utils import subscribe_to_ecomail_newsletter
 from shared_legacy.utils import make_promote_panels
 
 from .blocks import CommonWishBlock, StatBlock, TourDateBlock
@@ -20,7 +25,12 @@ class MakeAWIshFormField(AbstractFormField):
 
 
 class MakeAWishRoot(
-    AbstractForm, ExtendedMetadataHomePageMixin, MetadataPageMixin, Page
+    AbstractForm,
+    ExtendedMetadataHomePageMixin,
+    MetadataPageMixin,
+    EcomailNewsletterMixin,
+    FbEventsMixin,
+    Page,
 ):
     main_text = models.TextField(verbose_name="HlavnĂ­ text")
     success_text = models.TextField(verbose_name="Text po odeslání formuláře")
@@ -73,7 +83,14 @@ class MakeAWishRoot(
         InlinePanel("form_fields", label="Formulář - neměnit!!"),
     ]
 
-    promote_panels = make_promote_panels() + [FieldPanel("matomo_id")]
+    promote_panels = make_promote_panels() + [
+        FieldPanel("matomo_id"),
+        FieldPanel("ecomail_newsletter_list_id"),
+        FieldPanel("ecomail_newsletter_list_tags"),
+        FieldPanel("ecomail_newsletter_list_source"),
+    ]
+
+    advanced_panels = [FieldPanel("fbevents_id")]
 
     submissions_panels = [FormSubmissionsPanel()]
 
@@ -82,8 +99,43 @@ class MakeAWishRoot(
             ObjectList(content_panels, heading="Obsah"),
             ObjectList(promote_panels, heading="Metadata"),
             ObjectList(submissions_panels, heading="Data z formuláře"),
+            ObjectList(advanced_panels, heading="Pokročilé"),
         ]
     )
 
+    def process_form_submission(self, form):
+        # Custom code on form submission
+        cleaned_data = form.cleaned_data
+
+        if cleaned_data["e_mail"] and self.ecomail_newsletter_list_id:
+            name_and_surname = cleaned_data["jmeno_a_prijmeni"]
+            name_and_surname = name_and_surname.split(" ")
+
+            name = ""
+            surname = ""
+
+            if len(name_and_surname) > 1:
+                name = name_and_surname[0]
+                surname = " ".join(name_and_surname[1:])
+            else:
+                name = name_and_surname[0]
+
+            custom_data = {
+                "name": name,
+            }
+
+            if surname != "":
+                custom_data["surname"] = surname
+
+            subscribe_to_ecomail_newsletter(
+                cleaned_data["e_mail"],
+                self.ecomail_newsletter_list_id,
+                self.ecomail_newsletter_list_tags,
+                self.ecomail_newsletter_list_source,
+                custom_data,
+            )
+
+        super().process_form_submission(form)
+
     class Meta:
         verbose_name = "Máte přání"
diff --git a/make_a_wish/templates/make_a_wish/make_a_wish_root.html b/make_a_wish/templates/make_a_wish/make_a_wish_root.html
index eee91fcf69b306b0112888cb430d9380b1b20283..a5fbae5f346a27fa74720c147afe62b31da1fead 100644
--- a/make_a_wish/templates/make_a_wish/make_a_wish_root.html
+++ b/make_a_wish/templates/make_a_wish/make_a_wish_root.html
@@ -5,7 +5,7 @@
     {% comment %}quick dirty fix{% endcomment %}
     <title>Máte přání?</title>
 
-    {% if page.root_page.matomo_id %}
+    {% if page.matomo_id %}
         {% include "shared/matomo_snippet.html" with matomo_id=page.root_page.matomo_id %}
     {% endif %}
 {% endblock %}
@@ -18,7 +18,7 @@
         <div class="container--wide grid grid-cols-1 xl:grid-cols-2 gap-8">
             <div>
                 {% block top_content %}
-                    <div class="prose prose-black text-2xl xl:text-3xl mb-8 xl:!w-[115%%]" style="margin-top: -30px">
+                    <div class="prose prose-black text-2xl xl:text-3xl mb-8 xl:!w-[115%]" style="margin-top: -30px">
                         {{ page.main_text }}
                     </div>
 
diff --git a/shared/models/main.py b/shared/models/main.py
index 9581a335b0ad98726cfdda900774eb5a0e6f5d54..37b0fff178cc395c958e302f4865131bab3c32f0 100644
--- a/shared/models/main.py
+++ b/shared/models/main.py
@@ -62,6 +62,45 @@ logger = logging.getLogger(__name__)
 # --- BEGIN Metadata mixins ---
 
 
+class FbEventsMixin(models.Model):
+    fbevents_id = models.CharField(
+        "InternĂ­ ID 1",
+        max_length=64,
+        blank=True,
+        null=True,
+    )
+
+    class Meta:
+        abstract = True
+
+
+class EcomailNewsletterMixin(models.Model):
+    ecomail_newsletter_list_id = models.IntegerField(
+        "ID Ecomail newsletteru",
+        blank=True,
+        null=True,
+    )
+
+    ecomail_newsletter_list_tags = models.CharField(
+        "Tagy k přidání novým odběratelům na Ecomailu",
+        max_length=128,
+        blank=True,
+        null=True,
+        help_text="Oddělte čárkou, například 'Tag1,Tag2,Tag3'. Bez mezer.",
+    )
+
+    ecomail_newsletter_list_source = models.CharField(
+        "Ecomail newsletter zdroj",
+        blank=True,
+        null=True,
+        default="web-nl-generic",
+        help_text="Není nutno měnit.",
+    )
+
+    class Meta:
+        abstract = True
+
+
 class ExtendedMetadataHomePageMixin(models.Model):
     """Use for site home page to define metadata title suffix.
 
@@ -1246,6 +1285,7 @@ class MainHomePageMixin(
                         form.cleaned_data["email"],
                         self.ecomail_newsletter_list_id,
                         self.ecomail_newsletter_list_tags,
+                        self.ecomail_newsletter_list_source,
                     )
 
                 messages.success(
diff --git a/shared/templates/styleguide2/base.html b/shared/templates/styleguide2/base.html
index 71b5537d8a9f65bd6a37ad094dd3ec07403e09a3..a03cd3f25f5ec6ad3f8586f9566ee72328deb793 100644
--- a/shared/templates/styleguide2/base.html
+++ b/shared/templates/styleguide2/base.html
@@ -37,6 +37,22 @@
         {{ page.root_page.custom_css }}
       </style>
     {% endif %}
+
+    {% if page.root_page.fbevents_id %}
+      <!-- Fuck you -->
+      <script>
+        !function(f,b,e,v,n,t,s)
+        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
+        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
+        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
+        n.queue=[];t=b.createElement(e);t.async=!0;
+        t.src=v;s=b.getElementsByTagName(e)[0];
+        s.parentNode.insertBefore(t,s)}(window, document,'script',
+        'https://connect.facebook.net/en_US/fbevents.js');
+        fbq('init', '{{ page.root_page.fbevents_id }}');
+        fbq('track', 'PageView');
+      </script>
+    {% endif %}
   </head>
 
   <body class="__{{ page.content_type.model }}">
diff --git a/shared/utils.py b/shared/utils.py
index 9a3efc63003e59005f9fd980ea419ef4e38b3d05..07654e3b591fcf0205b6930c0b1e023a02801897 100644
--- a/shared/utils.py
+++ b/shared/utils.py
@@ -70,13 +70,24 @@ def subscribe_to_newsletter(email, list_id):
     return response
 
 
-def subscribe_to_ecomail_newsletter(email, list_id: int, categories: str):
+def subscribe_to_ecomail_newsletter(
+    email: str,
+    list_id: int,
+    categories: str,
+    source: str,
+    custom_data: dict | None = None,
+):
+    if custom_data is None:
+        custom_data = {}
+
     split_categories = categories.split(",") if categories is not None else []
 
     data = {
         "subscriber_data": {
             "email": email,
+            "source": source,
             "tags": split_categories,
+            **custom_data,
         }
     }
 
diff --git a/uniweb/blocks.py b/uniweb/blocks.py
index 2fcce5e00c38213d63f456f390f98e9198e8b8ca..dfdbc50dc4b02b0eb996ea92d11d2350e999cc39 100644
--- a/uniweb/blocks.py
+++ b/uniweb/blocks.py
@@ -55,6 +55,19 @@ class PeopleGroupListBlock(StructBlock):
 # New blocks
 
 
+class UniwebSubpageFormBlock(StructBlock):
+    page = PageChooserBlock(
+        page_type=["uniweb.UniwebFormPage"],
+        label="Formulářová stránka",
+    )
+
+    class Meta:
+        template = "uniweb/blocks/embedded_subpage_form.html"
+        icon = "list-ul"
+        label = "Obsah formuláře (viz. dokumentace form. stránek)"
+        group = "3. OstatnĂ­"
+
+
 class PersonCustomPositionBlock(PersonCustomPositionBlockMixin):
     page = PageChooserBlock(
         page_type=["uniweb.UniwebPersonPage", "district.DistrictPersonPage"],
diff --git a/uniweb/migrations/0130_uniwebhomepage_newsletter_list_id.py b/uniweb/migrations/0130_uniwebhomepage_newsletter_list_id.py
index 21ac5709e894ad69837148af65687c204f1ad016..62d1bbf5effbbb7ae33fd7fc1c6ba896535a3e71 100644
--- a/uniweb/migrations/0130_uniwebhomepage_newsletter_list_id.py
+++ b/uniweb/migrations/0130_uniwebhomepage_newsletter_list_id.py
@@ -4,15 +4,20 @@ from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('uniweb', '0129_uniwebhomepage_ecomail_newsletter_list_id_and_more'),
+        ("uniweb", "0129_uniwebhomepage_ecomail_newsletter_list_id_and_more"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='uniwebhomepage',
-            name='newsletter_list_id',
-            field=models.CharField(blank=True, help_text='ID newsletteru z Mailtrainu. Po vyplnění se formulář pro odběr newsletteru zobrazí na úvodní stránce a na stránce s kontakty.', max_length=20, null=True, verbose_name='ID Mailtrain newsletteru'),
+            model_name="uniwebhomepage",
+            name="newsletter_list_id",
+            field=models.CharField(
+                blank=True,
+                help_text="ID newsletteru z Mailtrainu. Po vyplnění se formulář pro odběr newsletteru zobrazí na úvodní stránce a na stránce s kontakty.",
+                max_length=20,
+                null=True,
+                verbose_name="ID Mailtrain newsletteru",
+            ),
         ),
     ]
diff --git a/uniweb/migrations/0131_uniwebhomepage_ecomail_newsletter_list_source.py b/uniweb/migrations/0131_uniwebhomepage_ecomail_newsletter_list_source.py
new file mode 100644
index 0000000000000000000000000000000000000000..f18472952a32b06b986b23244642429bdf0ddf90
--- /dev/null
+++ b/uniweb/migrations/0131_uniwebhomepage_ecomail_newsletter_list_source.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-24 20:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('uniweb', '0130_uniwebhomepage_newsletter_list_id'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='uniwebhomepage',
+            name='ecomail_newsletter_list_source',
+            field=models.CharField(blank=True, default='web-nl-generic', help_text='Není nutno měnit.', null=True, verbose_name='Ecomail newsletter zdroj'),
+        ),
+    ]
diff --git a/uniweb/migrations/0132_uniwebformpage_show_in_parent_page.py b/uniweb/migrations/0132_uniwebformpage_show_in_parent_page.py
new file mode 100644
index 0000000000000000000000000000000000000000..98a38b7166133cdfdd98842bde90e5eca722d8fc
--- /dev/null
+++ b/uniweb/migrations/0132_uniwebformpage_show_in_parent_page.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-25 15:39
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('uniweb', '0131_uniwebhomepage_ecomail_newsletter_list_source'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='uniwebformpage',
+            name='show_in_parent_page',
+            field=models.BooleanField(default=False, help_text='Pokud je toto pole zaškrtnuté, formulář se přesune do nadřazené stránky a stránka jemu nadřazená bude nedostupná.', verbose_name='Ukazovat obsah formuláře v nadřazené stránce?'),
+        ),
+    ]
diff --git a/uniweb/migrations/0133_alter_uniwebflexiblepage_content_and_more.py b/uniweb/migrations/0133_alter_uniwebflexiblepage_content_and_more.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4f7acce1da69dd773f0bb77e1539164b52188fc
--- /dev/null
+++ b/uniweb/migrations/0133_alter_uniwebflexiblepage_content_and_more.py
@@ -0,0 +1,39 @@
+# Generated by Django 5.0.7 on 2025-03-25 15:58
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('uniweb', '0132_uniwebformpage_show_in_parent_page'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='uniwebflexiblepage',
+            name='content',
+            field=wagtail.fields.StreamField([('text', 0), ('advanced_text', 4), ('two_columns_text', 7), ('headline', 12), ('headline_with_picture', 15), ('picture_list', 19), ('flip_cards', 30), ('table', 31), ('popout_table', 32), ('gallery', 35), ('figure', 38), ('card', 63), ('two_columns', 73), ('three_columns', 75), ('youtube', 76), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70), ('popout_point', 79), ('calendar', 82), ('subpage_form', 84), ('newsletter', 89)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor', 'template': 'styleguide2/includes/atoms/text/prose_richtext.html'}), 1: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], 'label': 'zarovnání'}), 2: ('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'}), 3: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor'}), 4: ('wagtail.blocks.StructBlock', [[('align', 1), ('color', 2), ('text', 3)]], {}), 5: ('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'}), 6: ('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'}), 7: ('wagtail.blocks.StructBlock', [[('left_text', 5), ('right_text', 6)]], {}), 8: ('wagtail.blocks.CharBlock', (), {'label': 'Nadpis', 'max_length': 300, 'required': True}), 9: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], 'help_text': 'Čím nižší číslo, tím vyšší úroveň.', 'label': 'Úroveň nadpisu'}), 10: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], 'help_text': 'Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', 'label': 'Velikost'}), 11: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('auto', 'Automaticky'), ('center', 'Na střed')], 'label': 'Zarovnání'}), 12: ('wagtail.blocks.StructBlock', [[('headline', 8), ('tag', 9), ('style', 10), ('align', 11)]], {}), 13: ('wagtail.blocks.CharBlock', (), {'label': 'nadpis'}), 14: ('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'}), 15: ('wagtail.blocks.StructBlock', [[('color', 2), ('title', 13), ('picture', 14)]], {}), 16: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'label': 'Odstavec'}), 17: ('wagtail.blocks.ListBlock', (16,), {'label': 'Odstavce'}), 18: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Rozměr 30x30px nebo více (obrázek bude zmenšen na 30x30px)', 'label': 'Obrázek'}), 19: ('wagtail.blocks.StructBlock', [[('color', 2), ('items', 17), ('picture', 18)]], {}), 20: ('wagtail.blocks.CharBlock', (), {'default': 'FEC900', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva pozadí'}), 21: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje pozadí. Nelze vybrat obě najednou.', 'label': 'Obrázek', 'required': False}), 22: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje obrázek. Nelze vybrat obě najednou.', 'label': 'Pozadí', 'required': False}), 23: ('wagtail.blocks.TextBlock', (), {'help_text': 'Řádkování je manuální.', 'label': 'Nadpis'}), 24: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva textu'}), 25: ('wagtail.blocks.RichTextBlock', (), {'label': 'Obsah'}), 26: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud není vyplněn, tlačítko se neukáže.', 'label': 'Nadpis tlačítka', 'required': False}), 27: ('wagtail.blocks.CharBlock', (), {'label': 'Odkaz tlačítka', 'required': False}), 28: ('wagtail.blocks.StructBlock', [[('bg_color', 20), ('image', 21), ('background', 22), ('title', 23), ('title_color', 24), ('content', 25), ('button_text', 26), ('button_url', 27)]], {'label': 'Karta'}), 29: ('wagtail.blocks.ListBlock', (28,), {'label': 'Karty'}), 30: ('wagtail.blocks.StructBlock', [[('cards', 29)]], {}), 31: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Tabulka', 'template': 'styleguide2/includes/atoms/table/table.html'}), 32: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Rozbalovací tabulka', 'template': 'styleguide2/includes/atoms/table/popout_table.html'}), 33: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'obrázek', 'required': True}), 34: ('wagtail.blocks.ListBlock', (33,), {'group': '3. Ostatní', 'icon': 'image', 'label': 'Galerie'}), 35: ('wagtail.blocks.StructBlock', [[('gallery_items', 34)]], {'label': 'Galerie'}), 36: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': True}), 37: ('wagtail.blocks.TextBlock', (), {'label': 'Popisek', 'required': False}), 38: ('wagtail.blocks.StructBlock', [[('img', 36), ('caption', 37)]], {}), 39: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': False}), 40: ('wagtail.blocks.TextBlock', (), {'label': 'Titulek', 'required': False}), 41: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Není třeba vyplňovat, náhled bude dohledán automaticky.', 'label': 'Náhled videa (automatické pole)', 'required': False}), 42: ('wagtail.blocks.URLBlock', (), {'help_text': 'Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', 'label': 'Odkaz na video', 'required': False}), 43: ('wagtail.blocks.CharBlock', (), {'help_text': 'Není třeba vyplňovat, bude automaticky načteno z odkazu.', 'label': 'ID videa (automatické pole)', 'required': False}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Pokud toto pole není zaškrtlé, video bude užší než text okolo.', 'label': 'Zabírá maximální šířku povolenou pro text?', 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Automaticky spustí video bez zvuku. Pozor, některé prohlížeče blokují i automatické přehrávání videí bez zvuku.', 'label': 'Spustit video automaticky?', 'required': False}), 46: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {}), 47: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 50.04075', 'label': 'Zeměpisná šířka'}), 48: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 15.77659', 'label': 'Zeměpisná délka'}), 49: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva špendlíku (HEX)'}), 50: ('wagtail.blocks.IntegerBlock', (), {'default': 15, 'label': 'Výchozí zoom', 'max_value': 18, 'min_value': 1}), 51: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], 'label': 'Styl'}), 52: ('wagtail.blocks.IntegerBlock', (), {'label': 'Výška v px', 'max_value': 1000, 'min_value': 100}), 53: ('wagtail.blocks.StructBlock', [[('lat', 47), ('lon', 48), ('hex_color', 49), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Špendlík na mapě'}), 54: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': True}), 55: ('wagtail.blocks.TextBlock', (), {'help_text': "Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", 'label': 'Geodata', 'required': True}), 56: ('wagtail.blocks.URLBlock', (), {'label': 'Odkaz', 'required': False}), 57: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva (HEX)'}), 58: ('wagtail.blocks.StructBlock', [[('title', 54), ('description', 37), ('geojson', 55), ('image', 39), ('link', 56), ('hex_color', 57)]], {'required': True}), 59: ('wagtail.blocks.ListBlock', (58,), {'label': 'Součásti'}), 60: ('wagtail.blocks.StructBlock', [[('features', 59), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Mapová kolekce'}), 61: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60)]], {'label': 'Obsah', 'required': False}), 62: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Stránka', 'required': False}), 63: ('wagtail.blocks.StructBlock', [[('img', 39), ('headline', 40), ('content', 61), ('page', 62), ('link', 56)]], {}), 64: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'max_length': 128, 'required': True}), 65: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], 'label': 'Barva'}), 66: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', 'label': 'Animovat na hover', 'required': False}), 67: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('normal', 'Normální'), ('large', 'Velká'), ('huge', 'Masivní')], 'label': 'Velikost tlačítka'}), 68: ('wagtail.blocks.StructBlock', [[('title', 64), ('color', 65), ('hoveractive', 66), ('page', 62), ('link', 56), ('align', 11), ('size', 67)]], {}), 69: ('wagtail.blocks.ListBlock', (68,), {'label': 'Tlačítka'}), 70: ('wagtail.blocks.StructBlock', [[('buttons', 69)]], {}), 71: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah levého sloupce', 'required': True}), 72: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah pravého sloupce', 'required': True}), 73: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('right_column_content', 72)]], {}), 74: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah prostředního sloupce', 'required': True}), 75: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('middle_column_content', 74), ('right_column_content', 72)]], {}), 76: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {'label': 'YouTube video'}), 77: ('wagtail.blocks.CharBlock', (), {'label': 'Název', 'required': True}), 78: ('wagtail.blocks.StreamBlock', [[('text', 0), ('headline', 12), ('table', 31)]], {'label': 'Obsah'}), 79: ('wagtail.blocks.StructBlock', [[('name', 77), ('content', 78)]], {}), 80: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': False}), 81: ('wagtail.blocks.static_block.StaticBlock', (), {'admin_text': 'Adresa kalendáře se zadává v nastavení hlavní stránky webu', 'label': 'Volba kalendáře'}), 82: ('wagtail.blocks.StructBlock', [[('title', 80), ('info', 81)]], {}), 83: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Formulářová stránka', 'page_type': ['uniweb.UniwebFormPage']}), 84: ('wagtail.blocks.StructBlock', [[('page', 83)]], {}), 85: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud toto pole zůstane nevyplněné, použije se nastavení tohoto webu. V takovém případě se může přidat i odběratel do Ecomailu.', 'label': 'ID newsletteru v Mailtrainu', 'required': False}), 86: ('wagtail.blocks.CharBlock', (), {'default': 'Odebírej náš', 'label': 'Nadpis bloku (1. řádek)', 'required': True}), 87: ('wagtail.blocks.CharBlock', (), {'default': 'newsletter', 'label': 'Nadpis bloku (2. řádek)', 'required': True}), 88: ('wagtail.blocks.CharBlock', (), {'default': 'Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', 'label': 'Popis newsletteru', 'required': True}), 89: ('wagtail.blocks.StructBlock', [[('list_id', 85), ('title_line_1', 86), ('title_line_2', 87), ('description', 88)]], {})}, verbose_name='obsah stránky'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_after',
+            field=wagtail.fields.StreamField([('text', 0), ('advanced_text', 4), ('two_columns_text', 7), ('headline', 12), ('headline_with_picture', 15), ('picture_list', 19), ('flip_cards', 30), ('table', 31), ('popout_table', 32), ('gallery', 35), ('figure', 38), ('card', 63), ('two_columns', 73), ('three_columns', 75), ('youtube', 76), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70), ('popout_point', 79), ('calendar', 82), ('subpage_form', 84)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor', 'template': 'styleguide2/includes/atoms/text/prose_richtext.html'}), 1: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], 'label': 'zarovnání'}), 2: ('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'}), 3: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor'}), 4: ('wagtail.blocks.StructBlock', [[('align', 1), ('color', 2), ('text', 3)]], {}), 5: ('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'}), 6: ('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'}), 7: ('wagtail.blocks.StructBlock', [[('left_text', 5), ('right_text', 6)]], {}), 8: ('wagtail.blocks.CharBlock', (), {'label': 'Nadpis', 'max_length': 300, 'required': True}), 9: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], 'help_text': 'Čím nižší číslo, tím vyšší úroveň.', 'label': 'Úroveň nadpisu'}), 10: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], 'help_text': 'Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', 'label': 'Velikost'}), 11: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('auto', 'Automaticky'), ('center', 'Na střed')], 'label': 'Zarovnání'}), 12: ('wagtail.blocks.StructBlock', [[('headline', 8), ('tag', 9), ('style', 10), ('align', 11)]], {}), 13: ('wagtail.blocks.CharBlock', (), {'label': 'nadpis'}), 14: ('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'}), 15: ('wagtail.blocks.StructBlock', [[('color', 2), ('title', 13), ('picture', 14)]], {}), 16: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'label': 'Odstavec'}), 17: ('wagtail.blocks.ListBlock', (16,), {'label': 'Odstavce'}), 18: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Rozměr 30x30px nebo více (obrázek bude zmenšen na 30x30px)', 'label': 'Obrázek'}), 19: ('wagtail.blocks.StructBlock', [[('color', 2), ('items', 17), ('picture', 18)]], {}), 20: ('wagtail.blocks.CharBlock', (), {'default': 'FEC900', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva pozadí'}), 21: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje pozadí. Nelze vybrat obě najednou.', 'label': 'Obrázek', 'required': False}), 22: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje obrázek. Nelze vybrat obě najednou.', 'label': 'Pozadí', 'required': False}), 23: ('wagtail.blocks.TextBlock', (), {'help_text': 'Řádkování je manuální.', 'label': 'Nadpis'}), 24: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva textu'}), 25: ('wagtail.blocks.RichTextBlock', (), {'label': 'Obsah'}), 26: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud není vyplněn, tlačítko se neukáže.', 'label': 'Nadpis tlačítka', 'required': False}), 27: ('wagtail.blocks.CharBlock', (), {'label': 'Odkaz tlačítka', 'required': False}), 28: ('wagtail.blocks.StructBlock', [[('bg_color', 20), ('image', 21), ('background', 22), ('title', 23), ('title_color', 24), ('content', 25), ('button_text', 26), ('button_url', 27)]], {'label': 'Karta'}), 29: ('wagtail.blocks.ListBlock', (28,), {'label': 'Karty'}), 30: ('wagtail.blocks.StructBlock', [[('cards', 29)]], {}), 31: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Tabulka', 'template': 'styleguide2/includes/atoms/table/table.html'}), 32: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Rozbalovací tabulka', 'template': 'styleguide2/includes/atoms/table/popout_table.html'}), 33: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'obrázek', 'required': True}), 34: ('wagtail.blocks.ListBlock', (33,), {'group': '3. Ostatní', 'icon': 'image', 'label': 'Galerie'}), 35: ('wagtail.blocks.StructBlock', [[('gallery_items', 34)]], {'label': 'Galerie'}), 36: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': True}), 37: ('wagtail.blocks.TextBlock', (), {'label': 'Popisek', 'required': False}), 38: ('wagtail.blocks.StructBlock', [[('img', 36), ('caption', 37)]], {}), 39: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': False}), 40: ('wagtail.blocks.TextBlock', (), {'label': 'Titulek', 'required': False}), 41: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Není třeba vyplňovat, náhled bude dohledán automaticky.', 'label': 'Náhled videa (automatické pole)', 'required': False}), 42: ('wagtail.blocks.URLBlock', (), {'help_text': 'Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', 'label': 'Odkaz na video', 'required': False}), 43: ('wagtail.blocks.CharBlock', (), {'help_text': 'Není třeba vyplňovat, bude automaticky načteno z odkazu.', 'label': 'ID videa (automatické pole)', 'required': False}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Pokud toto pole není zaškrtlé, video bude užší než text okolo.', 'label': 'Zabírá maximální šířku povolenou pro text?', 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Automaticky spustí video bez zvuku. Pozor, některé prohlížeče blokují i automatické přehrávání videí bez zvuku.', 'label': 'Spustit video automaticky?', 'required': False}), 46: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {}), 47: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 50.04075', 'label': 'Zeměpisná šířka'}), 48: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 15.77659', 'label': 'Zeměpisná délka'}), 49: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva špendlíku (HEX)'}), 50: ('wagtail.blocks.IntegerBlock', (), {'default': 15, 'label': 'Výchozí zoom', 'max_value': 18, 'min_value': 1}), 51: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], 'label': 'Styl'}), 52: ('wagtail.blocks.IntegerBlock', (), {'label': 'Výška v px', 'max_value': 1000, 'min_value': 100}), 53: ('wagtail.blocks.StructBlock', [[('lat', 47), ('lon', 48), ('hex_color', 49), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Špendlík na mapě'}), 54: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': True}), 55: ('wagtail.blocks.TextBlock', (), {'help_text': "Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", 'label': 'Geodata', 'required': True}), 56: ('wagtail.blocks.URLBlock', (), {'label': 'Odkaz', 'required': False}), 57: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva (HEX)'}), 58: ('wagtail.blocks.StructBlock', [[('title', 54), ('description', 37), ('geojson', 55), ('image', 39), ('link', 56), ('hex_color', 57)]], {'required': True}), 59: ('wagtail.blocks.ListBlock', (58,), {'label': 'Součásti'}), 60: ('wagtail.blocks.StructBlock', [[('features', 59), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Mapová kolekce'}), 61: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60)]], {'label': 'Obsah', 'required': False}), 62: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Stránka', 'required': False}), 63: ('wagtail.blocks.StructBlock', [[('img', 39), ('headline', 40), ('content', 61), ('page', 62), ('link', 56)]], {}), 64: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'max_length': 128, 'required': True}), 65: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], 'label': 'Barva'}), 66: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', 'label': 'Animovat na hover', 'required': False}), 67: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('normal', 'Normální'), ('large', 'Velká'), ('huge', 'Masivní')], 'label': 'Velikost tlačítka'}), 68: ('wagtail.blocks.StructBlock', [[('title', 64), ('color', 65), ('hoveractive', 66), ('page', 62), ('link', 56), ('align', 11), ('size', 67)]], {}), 69: ('wagtail.blocks.ListBlock', (68,), {'label': 'Tlačítka'}), 70: ('wagtail.blocks.StructBlock', [[('buttons', 69)]], {}), 71: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah levého sloupce', 'required': True}), 72: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah pravého sloupce', 'required': True}), 73: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('right_column_content', 72)]], {}), 74: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah prostředního sloupce', 'required': True}), 75: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('middle_column_content', 74), ('right_column_content', 72)]], {}), 76: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {'label': 'YouTube video'}), 77: ('wagtail.blocks.CharBlock', (), {'label': 'Název', 'required': True}), 78: ('wagtail.blocks.StreamBlock', [[('text', 0), ('headline', 12), ('table', 31)]], {'label': 'Obsah'}), 79: ('wagtail.blocks.StructBlock', [[('name', 77), ('content', 78)]], {}), 80: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': False}), 81: ('wagtail.blocks.static_block.StaticBlock', (), {'admin_text': 'Adresa kalendáře se zadává v nastavení hlavní stránky webu', 'label': 'Volba kalendáře'}), 82: ('wagtail.blocks.StructBlock', [[('title', 80), ('info', 81)]], {}), 83: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Formulářová stránka', 'page_type': ['uniweb.UniwebFormPage']}), 84: ('wagtail.blocks.StructBlock', [[('page', 83)]], {})}, verbose_name='obsah stránky za formulářem'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_before',
+            field=wagtail.fields.StreamField([('text', 0), ('advanced_text', 4), ('two_columns_text', 7), ('headline', 12), ('headline_with_picture', 15), ('picture_list', 19), ('flip_cards', 30), ('table', 31), ('popout_table', 32), ('gallery', 35), ('figure', 38), ('card', 63), ('two_columns', 73), ('three_columns', 75), ('youtube', 76), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70), ('popout_point', 79), ('calendar', 82), ('subpage_form', 84)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor', 'template': 'styleguide2/includes/atoms/text/prose_richtext.html'}), 1: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], 'label': 'zarovnání'}), 2: ('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'}), 3: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor'}), 4: ('wagtail.blocks.StructBlock', [[('align', 1), ('color', 2), ('text', 3)]], {}), 5: ('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'}), 6: ('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'}), 7: ('wagtail.blocks.StructBlock', [[('left_text', 5), ('right_text', 6)]], {}), 8: ('wagtail.blocks.CharBlock', (), {'label': 'Nadpis', 'max_length': 300, 'required': True}), 9: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], 'help_text': 'Čím nižší číslo, tím vyšší úroveň.', 'label': 'Úroveň nadpisu'}), 10: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], 'help_text': 'Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', 'label': 'Velikost'}), 11: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('auto', 'Automaticky'), ('center', 'Na střed')], 'label': 'Zarovnání'}), 12: ('wagtail.blocks.StructBlock', [[('headline', 8), ('tag', 9), ('style', 10), ('align', 11)]], {}), 13: ('wagtail.blocks.CharBlock', (), {'label': 'nadpis'}), 14: ('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'}), 15: ('wagtail.blocks.StructBlock', [[('color', 2), ('title', 13), ('picture', 14)]], {}), 16: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'label': 'Odstavec'}), 17: ('wagtail.blocks.ListBlock', (16,), {'label': 'Odstavce'}), 18: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Rozměr 30x30px nebo více (obrázek bude zmenšen na 30x30px)', 'label': 'Obrázek'}), 19: ('wagtail.blocks.StructBlock', [[('color', 2), ('items', 17), ('picture', 18)]], {}), 20: ('wagtail.blocks.CharBlock', (), {'default': 'FEC900', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva pozadí'}), 21: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje pozadí. Nelze vybrat obě najednou.', 'label': 'Obrázek', 'required': False}), 22: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje obrázek. Nelze vybrat obě najednou.', 'label': 'Pozadí', 'required': False}), 23: ('wagtail.blocks.TextBlock', (), {'help_text': 'Řádkování je manuální.', 'label': 'Nadpis'}), 24: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva textu'}), 25: ('wagtail.blocks.RichTextBlock', (), {'label': 'Obsah'}), 26: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud není vyplněn, tlačítko se neukáže.', 'label': 'Nadpis tlačítka', 'required': False}), 27: ('wagtail.blocks.CharBlock', (), {'label': 'Odkaz tlačítka', 'required': False}), 28: ('wagtail.blocks.StructBlock', [[('bg_color', 20), ('image', 21), ('background', 22), ('title', 23), ('title_color', 24), ('content', 25), ('button_text', 26), ('button_url', 27)]], {'label': 'Karta'}), 29: ('wagtail.blocks.ListBlock', (28,), {'label': 'Karty'}), 30: ('wagtail.blocks.StructBlock', [[('cards', 29)]], {}), 31: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Tabulka', 'template': 'styleguide2/includes/atoms/table/table.html'}), 32: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Rozbalovací tabulka', 'template': 'styleguide2/includes/atoms/table/popout_table.html'}), 33: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'obrázek', 'required': True}), 34: ('wagtail.blocks.ListBlock', (33,), {'group': '3. Ostatní', 'icon': 'image', 'label': 'Galerie'}), 35: ('wagtail.blocks.StructBlock', [[('gallery_items', 34)]], {'label': 'Galerie'}), 36: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': True}), 37: ('wagtail.blocks.TextBlock', (), {'label': 'Popisek', 'required': False}), 38: ('wagtail.blocks.StructBlock', [[('img', 36), ('caption', 37)]], {}), 39: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': False}), 40: ('wagtail.blocks.TextBlock', (), {'label': 'Titulek', 'required': False}), 41: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Není třeba vyplňovat, náhled bude dohledán automaticky.', 'label': 'Náhled videa (automatické pole)', 'required': False}), 42: ('wagtail.blocks.URLBlock', (), {'help_text': 'Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', 'label': 'Odkaz na video', 'required': False}), 43: ('wagtail.blocks.CharBlock', (), {'help_text': 'Není třeba vyplňovat, bude automaticky načteno z odkazu.', 'label': 'ID videa (automatické pole)', 'required': False}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Pokud toto pole není zaškrtlé, video bude užší než text okolo.', 'label': 'Zabírá maximální šířku povolenou pro text?', 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Automaticky spustí video bez zvuku. Pozor, některé prohlížeče blokují i automatické přehrávání videí bez zvuku.', 'label': 'Spustit video automaticky?', 'required': False}), 46: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {}), 47: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 50.04075', 'label': 'Zeměpisná šířka'}), 48: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 15.77659', 'label': 'Zeměpisná délka'}), 49: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva špendlíku (HEX)'}), 50: ('wagtail.blocks.IntegerBlock', (), {'default': 15, 'label': 'Výchozí zoom', 'max_value': 18, 'min_value': 1}), 51: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], 'label': 'Styl'}), 52: ('wagtail.blocks.IntegerBlock', (), {'label': 'Výška v px', 'max_value': 1000, 'min_value': 100}), 53: ('wagtail.blocks.StructBlock', [[('lat', 47), ('lon', 48), ('hex_color', 49), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Špendlík na mapě'}), 54: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': True}), 55: ('wagtail.blocks.TextBlock', (), {'help_text': "Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", 'label': 'Geodata', 'required': True}), 56: ('wagtail.blocks.URLBlock', (), {'label': 'Odkaz', 'required': False}), 57: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva (HEX)'}), 58: ('wagtail.blocks.StructBlock', [[('title', 54), ('description', 37), ('geojson', 55), ('image', 39), ('link', 56), ('hex_color', 57)]], {'required': True}), 59: ('wagtail.blocks.ListBlock', (58,), {'label': 'Součásti'}), 60: ('wagtail.blocks.StructBlock', [[('features', 59), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Mapová kolekce'}), 61: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60)]], {'label': 'Obsah', 'required': False}), 62: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Stránka', 'required': False}), 63: ('wagtail.blocks.StructBlock', [[('img', 39), ('headline', 40), ('content', 61), ('page', 62), ('link', 56)]], {}), 64: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'max_length': 128, 'required': True}), 65: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], 'label': 'Barva'}), 66: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', 'label': 'Animovat na hover', 'required': False}), 67: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('normal', 'Normální'), ('large', 'Velká'), ('huge', 'Masivní')], 'label': 'Velikost tlačítka'}), 68: ('wagtail.blocks.StructBlock', [[('title', 64), ('color', 65), ('hoveractive', 66), ('page', 62), ('link', 56), ('align', 11), ('size', 67)]], {}), 69: ('wagtail.blocks.ListBlock', (68,), {'label': 'Tlačítka'}), 70: ('wagtail.blocks.StructBlock', [[('buttons', 69)]], {}), 71: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah levého sloupce', 'required': True}), 72: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah pravého sloupce', 'required': True}), 73: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('right_column_content', 72)]], {}), 74: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah prostředního sloupce', 'required': True}), 75: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('middle_column_content', 74), ('right_column_content', 72)]], {}), 76: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {'label': 'YouTube video'}), 77: ('wagtail.blocks.CharBlock', (), {'label': 'Název', 'required': True}), 78: ('wagtail.blocks.StreamBlock', [[('text', 0), ('headline', 12), ('table', 31)]], {'label': 'Obsah'}), 79: ('wagtail.blocks.StructBlock', [[('name', 77), ('content', 78)]], {}), 80: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': False}), 81: ('wagtail.blocks.static_block.StaticBlock', (), {'admin_text': 'Adresa kalendáře se zadává v nastavení hlavní stránky webu', 'label': 'Volba kalendáře'}), 82: ('wagtail.blocks.StructBlock', [[('title', 80), ('info', 81)]], {}), 83: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Formulářová stránka', 'page_type': ['uniweb.UniwebFormPage']}), 84: ('wagtail.blocks.StructBlock', [[('page', 83)]], {})}, verbose_name='obsah stránky před formulářem'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebformpage',
+            name='content_landing',
+            field=wagtail.fields.StreamField([('text', 0), ('advanced_text', 4), ('two_columns_text', 7), ('headline', 12), ('headline_with_picture', 15), ('picture_list', 19), ('flip_cards', 30), ('table', 31), ('popout_table', 32), ('gallery', 35), ('figure', 38), ('card', 63), ('two_columns', 73), ('three_columns', 75), ('youtube', 76), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70), ('popout_point', 79), ('calendar', 82), ('subpage_form', 84)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor', 'template': 'styleguide2/includes/atoms/text/prose_richtext.html'}), 1: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], 'label': 'zarovnání'}), 2: ('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'}), 3: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor'}), 4: ('wagtail.blocks.StructBlock', [[('align', 1), ('color', 2), ('text', 3)]], {}), 5: ('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'}), 6: ('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'}), 7: ('wagtail.blocks.StructBlock', [[('left_text', 5), ('right_text', 6)]], {}), 8: ('wagtail.blocks.CharBlock', (), {'label': 'Nadpis', 'max_length': 300, 'required': True}), 9: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], 'help_text': 'Čím nižší číslo, tím vyšší úroveň.', 'label': 'Úroveň nadpisu'}), 10: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], 'help_text': 'Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', 'label': 'Velikost'}), 11: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('auto', 'Automaticky'), ('center', 'Na střed')], 'label': 'Zarovnání'}), 12: ('wagtail.blocks.StructBlock', [[('headline', 8), ('tag', 9), ('style', 10), ('align', 11)]], {}), 13: ('wagtail.blocks.CharBlock', (), {'label': 'nadpis'}), 14: ('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'}), 15: ('wagtail.blocks.StructBlock', [[('color', 2), ('title', 13), ('picture', 14)]], {}), 16: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'label': 'Odstavec'}), 17: ('wagtail.blocks.ListBlock', (16,), {'label': 'Odstavce'}), 18: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Rozměr 30x30px nebo více (obrázek bude zmenšen na 30x30px)', 'label': 'Obrázek'}), 19: ('wagtail.blocks.StructBlock', [[('color', 2), ('items', 17), ('picture', 18)]], {}), 20: ('wagtail.blocks.CharBlock', (), {'default': 'FEC900', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva pozadí'}), 21: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje pozadí. Nelze vybrat obě najednou.', 'label': 'Obrázek', 'required': False}), 22: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje obrázek. Nelze vybrat obě najednou.', 'label': 'Pozadí', 'required': False}), 23: ('wagtail.blocks.TextBlock', (), {'help_text': 'Řádkování je manuální.', 'label': 'Nadpis'}), 24: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva textu'}), 25: ('wagtail.blocks.RichTextBlock', (), {'label': 'Obsah'}), 26: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud není vyplněn, tlačítko se neukáže.', 'label': 'Nadpis tlačítka', 'required': False}), 27: ('wagtail.blocks.CharBlock', (), {'label': 'Odkaz tlačítka', 'required': False}), 28: ('wagtail.blocks.StructBlock', [[('bg_color', 20), ('image', 21), ('background', 22), ('title', 23), ('title_color', 24), ('content', 25), ('button_text', 26), ('button_url', 27)]], {'label': 'Karta'}), 29: ('wagtail.blocks.ListBlock', (28,), {'label': 'Karty'}), 30: ('wagtail.blocks.StructBlock', [[('cards', 29)]], {}), 31: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Tabulka', 'template': 'styleguide2/includes/atoms/table/table.html'}), 32: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Rozbalovací tabulka', 'template': 'styleguide2/includes/atoms/table/popout_table.html'}), 33: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'obrázek', 'required': True}), 34: ('wagtail.blocks.ListBlock', (33,), {'group': '3. Ostatní', 'icon': 'image', 'label': 'Galerie'}), 35: ('wagtail.blocks.StructBlock', [[('gallery_items', 34)]], {'label': 'Galerie'}), 36: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': True}), 37: ('wagtail.blocks.TextBlock', (), {'label': 'Popisek', 'required': False}), 38: ('wagtail.blocks.StructBlock', [[('img', 36), ('caption', 37)]], {}), 39: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': False}), 40: ('wagtail.blocks.TextBlock', (), {'label': 'Titulek', 'required': False}), 41: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Není třeba vyplňovat, náhled bude dohledán automaticky.', 'label': 'Náhled videa (automatické pole)', 'required': False}), 42: ('wagtail.blocks.URLBlock', (), {'help_text': 'Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', 'label': 'Odkaz na video', 'required': False}), 43: ('wagtail.blocks.CharBlock', (), {'help_text': 'Není třeba vyplňovat, bude automaticky načteno z odkazu.', 'label': 'ID videa (automatické pole)', 'required': False}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Pokud toto pole není zaškrtlé, video bude užší než text okolo.', 'label': 'Zabírá maximální šířku povolenou pro text?', 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Automaticky spustí video bez zvuku. Pozor, některé prohlížeče blokují i automatické přehrávání videí bez zvuku.', 'label': 'Spustit video automaticky?', 'required': False}), 46: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {}), 47: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 50.04075', 'label': 'Zeměpisná šířka'}), 48: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 15.77659', 'label': 'Zeměpisná délka'}), 49: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva špendlíku (HEX)'}), 50: ('wagtail.blocks.IntegerBlock', (), {'default': 15, 'label': 'Výchozí zoom', 'max_value': 18, 'min_value': 1}), 51: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], 'label': 'Styl'}), 52: ('wagtail.blocks.IntegerBlock', (), {'label': 'Výška v px', 'max_value': 1000, 'min_value': 100}), 53: ('wagtail.blocks.StructBlock', [[('lat', 47), ('lon', 48), ('hex_color', 49), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Špendlík na mapě'}), 54: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': True}), 55: ('wagtail.blocks.TextBlock', (), {'help_text': "Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", 'label': 'Geodata', 'required': True}), 56: ('wagtail.blocks.URLBlock', (), {'label': 'Odkaz', 'required': False}), 57: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva (HEX)'}), 58: ('wagtail.blocks.StructBlock', [[('title', 54), ('description', 37), ('geojson', 55), ('image', 39), ('link', 56), ('hex_color', 57)]], {'required': True}), 59: ('wagtail.blocks.ListBlock', (58,), {'label': 'Součásti'}), 60: ('wagtail.blocks.StructBlock', [[('features', 59), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Mapová kolekce'}), 61: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60)]], {'label': 'Obsah', 'required': False}), 62: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Stránka', 'required': False}), 63: ('wagtail.blocks.StructBlock', [[('img', 39), ('headline', 40), ('content', 61), ('page', 62), ('link', 56)]], {}), 64: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'max_length': 128, 'required': True}), 65: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], 'label': 'Barva'}), 66: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', 'label': 'Animovat na hover', 'required': False}), 67: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('normal', 'Normální'), ('large', 'Velká'), ('huge', 'Masivní')], 'label': 'Velikost tlačítka'}), 68: ('wagtail.blocks.StructBlock', [[('title', 64), ('color', 65), ('hoveractive', 66), ('page', 62), ('link', 56), ('align', 11), ('size', 67)]], {}), 69: ('wagtail.blocks.ListBlock', (68,), {'label': 'Tlačítka'}), 70: ('wagtail.blocks.StructBlock', [[('buttons', 69)]], {}), 71: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah levého sloupce', 'required': True}), 72: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah pravého sloupce', 'required': True}), 73: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('right_column_content', 72)]], {}), 74: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah prostředního sloupce', 'required': True}), 75: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('middle_column_content', 74), ('right_column_content', 72)]], {}), 76: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {'label': 'YouTube video'}), 77: ('wagtail.blocks.CharBlock', (), {'label': 'Název', 'required': True}), 78: ('wagtail.blocks.StreamBlock', [[('text', 0), ('headline', 12), ('table', 31)]], {'label': 'Obsah'}), 79: ('wagtail.blocks.StructBlock', [[('name', 77), ('content', 78)]], {}), 80: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': False}), 81: ('wagtail.blocks.static_block.StaticBlock', (), {'admin_text': 'Adresa kalendáře se zadává v nastavení hlavní stránky webu', 'label': 'Volba kalendáře'}), 82: ('wagtail.blocks.StructBlock', [[('title', 80), ('info', 81)]], {}), 83: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Formulářová stránka', 'page_type': ['uniweb.UniwebFormPage']}), 84: ('wagtail.blocks.StructBlock', [[('page', 83)]], {})}, verbose_name='Obsah stránky zobrazené po odeslání formuláře'),
+        ),
+        migrations.AlterField(
+            model_name='uniwebhomepage',
+            name='content',
+            field=wagtail.fields.StreamField([('text', 0), ('advanced_text', 4), ('two_columns_text', 7), ('headline', 12), ('headline_with_picture', 15), ('picture_list', 19), ('flip_cards', 30), ('table', 31), ('popout_table', 32), ('gallery', 35), ('figure', 38), ('card', 63), ('two_columns', 73), ('three_columns', 75), ('youtube', 76), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70), ('popout_point', 79), ('calendar', 82), ('subpage_form', 84), ('newsletter', 89), ('news_block', 92)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor', 'template': 'styleguide2/includes/atoms/text/prose_richtext.html'}), 1: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], 'label': 'zarovnání'}), 2: ('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'}), 3: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'group': '1. Text', 'label': 'Textový editor'}), 4: ('wagtail.blocks.StructBlock', [[('align', 1), ('color', 2), ('text', 3)]], {}), 5: ('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'}), 6: ('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'}), 7: ('wagtail.blocks.StructBlock', [[('left_text', 5), ('right_text', 6)]], {}), 8: ('wagtail.blocks.CharBlock', (), {'label': 'Nadpis', 'max_length': 300, 'required': True}), 9: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], 'help_text': 'Čím nižší číslo, tím vyšší úroveň.', 'label': 'Úroveň nadpisu'}), 10: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], 'help_text': 'Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', 'label': 'Velikost'}), 11: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('auto', 'Automaticky'), ('center', 'Na střed')], 'label': 'Zarovnání'}), 12: ('wagtail.blocks.StructBlock', [[('headline', 8), ('tag', 9), ('style', 10), ('align', 11)]], {}), 13: ('wagtail.blocks.CharBlock', (), {'label': 'nadpis'}), 14: ('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'}), 15: ('wagtail.blocks.StructBlock', [[('color', 2), ('title', 13), ('picture', 14)]], {}), 16: ('wagtail.blocks.RichTextBlock', (), {'features': ['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], 'label': 'Odstavec'}), 17: ('wagtail.blocks.ListBlock', (16,), {'label': 'Odstavce'}), 18: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Rozměr 30x30px nebo více (obrázek bude zmenšen na 30x30px)', 'label': 'Obrázek'}), 19: ('wagtail.blocks.StructBlock', [[('color', 2), ('items', 17), ('picture', 18)]], {}), 20: ('wagtail.blocks.CharBlock', (), {'default': 'FEC900', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva pozadí'}), 21: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje pozadí. Nelze vybrat obě najednou.', 'label': 'Obrázek', 'required': False}), 22: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Nahrazuje obrázek. Nelze vybrat obě najednou.', 'label': 'Pozadí', 'required': False}), 23: ('wagtail.blocks.TextBlock', (), {'help_text': 'Řádkování je manuální.', 'label': 'Nadpis'}), 24: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': "Kód barvy lze vytvořit např. <a href='https://mdn.github.io/css-examples/tools/color-picker/' target='_blank'>zde</a>.", 'label': 'Barva textu'}), 25: ('wagtail.blocks.RichTextBlock', (), {'label': 'Obsah'}), 26: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud není vyplněn, tlačítko se neukáže.', 'label': 'Nadpis tlačítka', 'required': False}), 27: ('wagtail.blocks.CharBlock', (), {'label': 'Odkaz tlačítka', 'required': False}), 28: ('wagtail.blocks.StructBlock', [[('bg_color', 20), ('image', 21), ('background', 22), ('title', 23), ('title_color', 24), ('content', 25), ('button_text', 26), ('button_url', 27)]], {'label': 'Karta'}), 29: ('wagtail.blocks.ListBlock', (28,), {'label': 'Karty'}), 30: ('wagtail.blocks.StructBlock', [[('cards', 29)]], {}), 31: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Tabulka', 'template': 'styleguide2/includes/atoms/table/table.html'}), 32: ('wagtail.contrib.table_block.blocks.TableBlock', (), {'group': '3. Ostatní', 'label': 'Rozbalovací tabulka', 'template': 'styleguide2/includes/atoms/table/popout_table.html'}), 33: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'obrázek', 'required': True}), 34: ('wagtail.blocks.ListBlock', (33,), {'group': '3. Ostatní', 'icon': 'image', 'label': 'Galerie'}), 35: ('wagtail.blocks.StructBlock', [[('gallery_items', 34)]], {'label': 'Galerie'}), 36: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': True}), 37: ('wagtail.blocks.TextBlock', (), {'label': 'Popisek', 'required': False}), 38: ('wagtail.blocks.StructBlock', [[('img', 36), ('caption', 37)]], {}), 39: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Obrázek', 'required': False}), 40: ('wagtail.blocks.TextBlock', (), {'label': 'Titulek', 'required': False}), 41: ('wagtail.images.blocks.ImageChooserBlock', (), {'help_text': 'Není třeba vyplňovat, náhled bude dohledán automaticky.', 'label': 'Náhled videa (automatické pole)', 'required': False}), 42: ('wagtail.blocks.URLBlock', (), {'help_text': 'Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.', 'label': 'Odkaz na video', 'required': False}), 43: ('wagtail.blocks.CharBlock', (), {'help_text': 'Není třeba vyplňovat, bude automaticky načteno z odkazu.', 'label': 'ID videa (automatické pole)', 'required': False}), 44: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Pokud toto pole není zaškrtlé, video bude užší než text okolo.', 'label': 'Zabírá maximální šířku povolenou pro text?', 'required': False}), 45: ('wagtail.blocks.BooleanBlock', (), {'default': False, 'help_text': 'Automaticky spustí video bez zvuku. Pozor, některé prohlížeče blokují i automatické přehrávání videí bez zvuku.', 'label': 'Spustit video automaticky?', 'required': False}), 46: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {}), 47: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 50.04075', 'label': 'Zeměpisná šířka'}), 48: ('wagtail.blocks.DecimalBlock', (), {'help_text': 'Např. 15.77659', 'label': 'Zeměpisná délka'}), 49: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva špendlíku (HEX)'}), 50: ('wagtail.blocks.IntegerBlock', (), {'default': 15, 'label': 'Výchozí zoom', 'max_value': 18, 'min_value': 1}), 51: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('osm-mapnik', 'OSM Mapnik'), ('stadia-osm-bright', 'Stadia OSM Bright'), ('stadia-outdoors', 'Stadia Outdoors'), ('mapbox-streets', 'Mapbox Streets'), ('mapbox-outdoors', 'Mapbox Outdoors'), ('mapbox-light', 'Mapbox Light'), ('mapbox-dark', 'Mapbox Dark'), ('mapbox-satellite', 'Mapbox Satellite'), ('mapbox-pirate', 'Mapbox Pirate Theme')], 'label': 'Styl'}), 52: ('wagtail.blocks.IntegerBlock', (), {'label': 'Výška v px', 'max_value': 1000, 'min_value': 100}), 53: ('wagtail.blocks.StructBlock', [[('lat', 47), ('lon', 48), ('hex_color', 49), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Špendlík na mapě'}), 54: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': True}), 55: ('wagtail.blocks.TextBlock', (), {'help_text': "Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", 'label': 'Geodata', 'required': True}), 56: ('wagtail.blocks.URLBlock', (), {'label': 'Odkaz', 'required': False}), 57: ('wagtail.blocks.CharBlock', (), {'default': '000000', 'help_text': 'Zadejte barvu pomocí HEX notace (bez # na začátku).', 'label': 'Barva (HEX)'}), 58: ('wagtail.blocks.StructBlock', [[('title', 54), ('description', 37), ('geojson', 55), ('image', 39), ('link', 56), ('hex_color', 57)]], {'required': True}), 59: ('wagtail.blocks.ListBlock', (58,), {'label': 'Součásti'}), 60: ('wagtail.blocks.StructBlock', [[('features', 59), ('zoom', 50), ('style', 51), ('height', 52)]], {'label': 'Mapová kolekce'}), 61: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60)]], {'label': 'Obsah', 'required': False}), 62: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Stránka', 'required': False}), 63: ('wagtail.blocks.StructBlock', [[('img', 39), ('headline', 40), ('content', 61), ('page', 62), ('link', 56)]], {}), 64: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'max_length': 128, 'required': True}), 65: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('grey-125', 'Světle šedá'), ('blue-300', 'Modrá'), ('cyan-200', 'Tyrkysová'), ('green-400', 'Zelená'), ('violet-400', 'Vínová'), ('red-600', 'Červená')], 'label': 'Barva'}), 66: ('wagtail.blocks.BooleanBlock', (), {'default': True, 'help_text': 'Pokud je zapnuto, tlačítko při najetí kurzorem ukáže žlutou šipku.', 'label': 'Animovat na hover', 'required': False}), 67: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('normal', 'Normální'), ('large', 'Velká'), ('huge', 'Masivní')], 'label': 'Velikost tlačítka'}), 68: ('wagtail.blocks.StructBlock', [[('title', 64), ('color', 65), ('hoveractive', 66), ('page', 62), ('link', 56), ('align', 11), ('size', 67)]], {}), 69: ('wagtail.blocks.ListBlock', (68,), {'label': 'Tlačítka'}), 70: ('wagtail.blocks.StructBlock', [[('buttons', 69)]], {}), 71: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah levého sloupce', 'required': True}), 72: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah pravého sloupce', 'required': True}), 73: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('right_column_content', 72)]], {}), 74: ('wagtail.blocks.StreamBlock', [[('text', 3), ('table', 31), ('card', 63), ('figure', 38), ('youtube', 46), ('map_point', 53), ('map_collection', 60), ('button', 68), ('button_group', 70)]], {'label': 'Obsah prostředního sloupce', 'required': True}), 75: ('wagtail.blocks.StructBlock', [[('left_column_content', 71), ('middle_column_content', 74), ('right_column_content', 72)]], {}), 76: ('wagtail.blocks.StructBlock', [[('poster_image', 41), ('video_url', 42), ('video_id', 43), ('is_full_width', 44), ('autoplay', 45)]], {'label': 'YouTube video'}), 77: ('wagtail.blocks.CharBlock', (), {'label': 'Název', 'required': True}), 78: ('wagtail.blocks.StreamBlock', [[('text', 0), ('headline', 12), ('table', 31)]], {'label': 'Obsah'}), 79: ('wagtail.blocks.StructBlock', [[('name', 77), ('content', 78)]], {}), 80: ('wagtail.blocks.CharBlock', (), {'label': 'Titulek', 'required': False}), 81: ('wagtail.blocks.static_block.StaticBlock', (), {'admin_text': 'Adresa kalendáře se zadává v nastavení hlavní stránky webu', 'label': 'Volba kalendáře'}), 82: ('wagtail.blocks.StructBlock', [[('title', 80), ('info', 81)]], {}), 83: ('wagtail.blocks.PageChooserBlock', (), {'label': 'Formulářová stránka', 'page_type': ['uniweb.UniwebFormPage']}), 84: ('wagtail.blocks.StructBlock', [[('page', 83)]], {}), 85: ('wagtail.blocks.CharBlock', (), {'help_text': 'Pokud toto pole zůstane nevyplněné, použije se nastavení tohoto webu. V takovém případě se může přidat i odběratel do Ecomailu.', 'label': 'ID newsletteru v Mailtrainu', 'required': False}), 86: ('wagtail.blocks.CharBlock', (), {'default': 'Odebírej náš', 'label': 'Nadpis bloku (1. řádek)', 'required': True}), 87: ('wagtail.blocks.CharBlock', (), {'default': 'newsletter', 'label': 'Nadpis bloku (2. řádek)', 'required': True}), 88: ('wagtail.blocks.CharBlock', (), {'default': 'Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', 'label': 'Popis newsletteru', 'required': True}), 89: ('wagtail.blocks.StructBlock', [[('list_id', 85), ('title_line_1', 86), ('title_line_2', 87), ('description', 88)]], {}), 90: ('wagtail.blocks.CharBlock', (), {'help_text': 'Nejnovější články se načtou automaticky', 'label': 'Titulek'}), 91: ('wagtail.blocks.TextBlock', (), {'label': 'Popis', 'required': False}), 92: ('wagtail.blocks.StructBlock', [[('title', 90), ('description', 91)]], {'group': '3. Ostatní', 'template': 'styleguide2/includes/organisms/articles/district/articles_section.html'})}, verbose_name='obsah stránky'),
+        ),
+    ]
diff --git a/uniweb/migrations/0134_uniwebhomepage_fbevents_id.py b/uniweb/migrations/0134_uniwebhomepage_fbevents_id.py
new file mode 100644
index 0000000000000000000000000000000000000000..42dc282f8af3d81877546f42ae2968ab5cee9bd2
--- /dev/null
+++ b/uniweb/migrations/0134_uniwebhomepage_fbevents_id.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0.7 on 2025-03-25 16:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('uniweb', '0133_alter_uniwebflexiblepage_content_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='uniwebhomepage',
+            name='fbevents_id',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='InternĂ­ ID 1'),
+        ),
+    ]
diff --git a/uniweb/models.py b/uniweb/models.py
index 8fef561a345e8f72339ffac45f9fa8ed012872fd..0543746a5591fdace594b6c024f26bbde011803b 100644
--- a/uniweb/models.py
+++ b/uniweb/models.py
@@ -1,5 +1,6 @@
 from captcha.fields import CaptchaField
 from django.db import models
+from django.shortcuts import redirect
 from django.utils.translation import gettext_lazy
 from modelcluster.contrib.taggit import ClusterTaggableManager
 from modelcluster.fields import ParentalKey, ParentalManyToManyField
@@ -31,7 +32,9 @@ from shared.const import RICH_TEXT_DEFAULT_FEATURES
 from shared.models import (
     CalendarMixin,
     CustomLogoMixin,
+    EcomailNewsletterMixin,
     ExtendedMetadataPageMixin,
+    FbEventsMixin,
     MainArticlePageMixin,
     MainArticlesPageMixin,
     MainHomePageMixin,
@@ -49,11 +52,12 @@ from shared.models import (
 from shared_legacy.models import FooterMixin as LegacyFooterMixin
 from shared_legacy.utils import make_promote_panels
 
-from .blocks import PeopleGroupBlock, TeamBlock
+from .blocks import PeopleGroupBlock, TeamBlock, UniwebSubpageFormBlock
 from .forms import UniwebArticlesPageForm, UniwebHomePageAdminForm
 
 CONTENT_STREAM_BLOCKS = DEFAULT_CONTENT_BLOCKS + [
     ("calendar", CalendarBlock()),
+    ("subpage_form", UniwebSubpageFormBlock()),
 ]
 
 
@@ -71,6 +75,8 @@ class UniwebHomePage(
     PageInMenuMixin,
     ScrollProgressMixin,
     CustomLogoMixin,
+    EcomailNewsletterMixin,
+    FbEventsMixin,
     MainHomePageMixin,
 ):
     base_form_class = UniwebHomePageAdminForm
@@ -153,20 +159,6 @@ class UniwebHomePage(
     )
     content_is_centered = models.BooleanField("Vycentrovat obsah", default=False)
 
-    ecomail_newsletter_list_id = models.IntegerField(
-        "ID Ecomail newsletteru",
-        blank=True,
-        null=True,
-    )
-
-    ecomail_newsletter_list_tags = models.CharField(
-        "Tagy k přidání novým odběratelům na Ecomailu",
-        max_length=128,
-        blank=True,
-        null=True,
-        help_text="Oddělte čárkou, například 'Tag1,Tag2,Tag3'. Bez mezer.",
-    )
-
     newsletter_list_id = models.CharField(
         "ID Mailtrain newsletteru",
         max_length=20,
@@ -209,11 +201,13 @@ class UniwebHomePage(
             [
                 FieldPanel("ecomail_newsletter_list_id"),
                 FieldPanel("ecomail_newsletter_list_tags"),
+                FieldPanel("ecomail_newsletter_list_source"),
                 FieldPanel("newsletter_list_id"),
             ],
             "Newsletter",
         ),
         FieldPanel("fallback_image"),
+        FieldPanel("fbevents_id"),
     ] + ScrollProgressMixin.settings_panels
 
     menu_panels = (
@@ -493,6 +487,15 @@ class UniwebFormPage(
         use_json_field=True,
     )
 
+    show_in_parent_page = models.BooleanField(
+        verbose_name="Ukazovat obsah formuláře v nadřazené stránce?",
+        default=False,
+        help_text=(
+            "Pokud je toto pole zaškrtnuté, formulář se přesune do nadřazené stránky "
+            "a stránka jemu nadřazená bude nedostupná."
+        ),
+    )
+
     ### PANELS
 
     content_panels = AbstractForm.content_panels + [
@@ -508,10 +511,13 @@ class UniwebFormPage(
 
     submissions_panels = [FormSubmissionsPanel()]
 
+    advanced_panels = [FieldPanel("show_in_parent_page")]
+
     edit_handler = TabbedInterface(
         [
             ObjectList(content_panels, heading=gettext_lazy("Content")),
             ObjectList(promote_panels, heading=gettext_lazy("Promote")),
+            ObjectList(advanced_panels, heading="Pokročilé"),
             ObjectList(submissions_panels, heading="Data z formuláře"),
         ]
     )
@@ -527,6 +533,12 @@ class UniwebFormPage(
 
     ### OTHERS
 
+    def serve(self, request):
+        if request.method == "GET" and self.show_in_parent_page:
+            return redirect(self.parent_page.url)
+
+        return super().serve(request)
+
     class Meta:
         verbose_name = "Formulářová stránka"
 
diff --git a/uniweb/templates/uniweb/blocks/embedded_subpage_form.html b/uniweb/templates/uniweb/blocks/embedded_subpage_form.html
new file mode 100644
index 0000000000000000000000000000000000000000..52fef5190994ce35b7546c84f5ca7360d6080a4e
--- /dev/null
+++ b/uniweb/templates/uniweb/blocks/embedded_subpage_form.html
@@ -0,0 +1,79 @@
+{% load wagtailcore_tags %}
+
+{% if self.page.show_in_parent_page %}
+    <form
+        class="
+            flex flex-col gap-8
+
+            {% if not self.page.root_page.content_is_full_width %}
+                max-w-[100ch]
+            {% else %}
+                max-w-[100%]
+            {% endif %}
+
+            {% if self.page.root_page.content_is_centered %}
+                mx-auto
+            {% endif %}
+        "
+        action="{% pageurl self.page %}"
+        method="post"
+    >
+        {% csrf_token %}
+
+        {% with self.page.get_form as form %}
+
+            {% for hidden_field in form.hidden_fields %}
+                {{ hidden_field.errors }}
+                {{ hidden_field }}
+            {% endfor %}
+
+            {% for field in form.visible_fields %}
+                <div class="flex flex-col gap-2">
+                    {% if field.widget_type == "select" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_select.html" %}
+                    {% elif field.widget_type == "radioselect" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_radio.html" %}
+                    {% elif field.widget_type == "selectmultiple" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_multiselect.html" %}
+                    {% elif field.widget_type == "text" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_text.html" %}
+                    {% elif field.widget_type == "textarea" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_textarea.html" %}
+                    {% elif field.widget_type == "email" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_email.html" %}
+                    {% elif field.widget_type == "number" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_number.html" %}
+                    {% elif field.widget_type == "url" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_url.html" %}
+                    {% elif field.widget_type == "checkbox" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_checkbox.html" %}
+                    {% elif field.widget_type == "checkboxselectmultiple" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_checkbox_multiple.html" %}
+                    {% elif field.widget_type == "date" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_date.html" %}
+                    {% elif field.widget_type == "datetime" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_datetime.html" %}
+                    {% elif field.widget_type == "captchatext" %}
+                        {% include "styleguide2/includes/atoms/form_fields/form_captcha.html" %}
+                    {% else %}
+                        {{ field.widget_type }}
+                    {% endif %}
+
+                    {% if field.help_text %}
+                        <label
+                            class="text-grey-250 text-sm"
+                            for="{{ field.id_for_label }}"
+                        >{{ field.help_text }}</label>
+                    {% endif %}
+
+                    {% if field.errors %}
+                        <div class="form-field__error">{{ field.errors }}</div>
+                    {% endif %}
+                </div>
+            {% endfor %}
+
+        {% endwith %}
+
+        {% include "styleguide2/includes/atoms/buttons/round_button_form.html" with show_arrow_on_hover=True text="Odeslat" %}
+    </form>
+{% endif %}
\ No newline at end of file