diff --git a/elections/blocks.py b/elections/blocks.py index 77e7976effd84f5016be4ef014745c8654086047..d6b08f35a2e63196ab8f4b72c241d485be18b7d2 100644 --- a/elections/blocks.py +++ b/elections/blocks.py @@ -23,6 +23,9 @@ class ElectionsCarouselBlock(StructBlock): required=False, ) + mobile_line_1 = TextBlock(label="První mobilní řádek") + mobile_line_2 = TextBlock(label="Druhý mobilní řádek") + class Meta: template = "styleguide2/includes/molecules/menus/elections/carousel.html" icon = "form" diff --git a/elections/migrations/0019_electionsarticlepage_show_initial_image.py b/elections/migrations/0019_electionsarticlepage_show_initial_image.py index a6684aecb508c1340246c60e54509e832e25a1ed..c33a30f269333e3d39ce86eba008468775217701 100644 --- a/elections/migrations/0019_electionsarticlepage_show_initial_image.py +++ b/elections/migrations/0019_electionsarticlepage_show_initial_image.py @@ -4,15 +4,18 @@ from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [ - ('elections', '0018_alter_electionshomepage_content'), + ("elections", "0018_alter_electionshomepage_content"), ] operations = [ migrations.AddField( - model_name='electionsarticlepage', - name='show_initial_image', - field=models.BooleanField(default=True, help_text='Pokud je tato volba zaškrtnutá, obrázek nastavený u tohoto článku se automaticky vloží do prvního odstavce.', verbose_name='Ukázat obrázek v textu'), + model_name="electionsarticlepage", + name="show_initial_image", + field=models.BooleanField( + default=True, + help_text="Pokud je tato volba zaškrtnutá, obrázek nastavený u tohoto článku se automaticky vloží do prvního odstavce.", + verbose_name="Ukázat obrázek v textu", + ), ), ] diff --git a/elections/migrations/0020_alter_electionshomepage_content.py b/elections/migrations/0020_alter_electionshomepage_content.py new file mode 100644 index 0000000000000000000000000000000000000000..b2eb4018344b8a93751a5351d5f05bb6546d67d1 --- /dev/null +++ b/elections/migrations/0020_alter_electionshomepage_content.py @@ -0,0 +1,228 @@ +# Generated by Django 4.1.10 on 2024-01-21 19:46 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + dependencies = [ + ("elections", "0019_electionsarticlepage_show_initial_image"), + ] + + operations = [ + migrations.AlterField( + model_name="electionshomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "carousel", + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybráno video, ukáže se na mobilu i desktopu.", + label="Obrázek na pozadí", + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.", + label="URL videa", + required=False, + ), + ), + ( + "mobile_line_1", + wagtail.blocks.TextBlock( + label="První mobilní řádek" + ), + ), + ( + "mobile_line_2", + wagtail.blocks.TextBlock( + label="Druhý mobilní řádek" + ), + ), + ] + ), + ), + ( + "candidates", + wagtail.blocks.StructBlock( + [ + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "elections.ElectionsCandidatePage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popis" + ), + ), + ] + ), + label="Kandidáti", + ), + ) + ] + ), + ), + ( + "secondary_candidates", + wagtail.blocks.StructBlock( + [ + ("heading", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "candidates", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "number", + wagtail.blocks.CharBlock( + label="Číslo" + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "elections.ElectionsCandidatePage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ] + ), + label="Kandidáti", + ), + ), + ] + ), + ), + ( + "program", + wagtail.blocks.StructBlock( + [ + ( + "label", + wagtail.blocks.CharBlock( + default="Program", + help_text="Např. 'Program'", + label="Nadpis", + ), + ), + ( + "categories", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "number", + wagtail.blocks.IntegerBlock( + label="Číslo" + ), + ), + ( + "name", + wagtail.blocks.CharBlock( + label="Název" + ), + ), + ( + "points", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "content", + wagtail.blocks.TextBlock( + label="Obsah" + ), + ) + ] + ), + label="Body", + ), + ), + ] + ), + label="Kategorie", + ), + ), + ( + "long_version_url", + wagtail.blocks.URLBlock( + help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.", + label="Odkaz na celou verzi programu", + required=False, + ), + ), + ( + "long_version_text", + wagtail.blocks.CharBlock( + label="Nadpis odkazu na celou verzi programu", + required=False, + ), + ), + ] + ), + ), + ( + "news", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + help_text="Nejnovější články se načtou automaticky", + label="Titulek", + ), + ), + ( + "description", + wagtail.blocks.TextBlock(label="Popis"), + ), + ], + template="styleguide2/includes/organisms/articles/elections/articles_section.html", + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Hlavní obsah", + ), + ), + ] diff --git a/main/migrations/0072_mainarticlepage_show_initial_image.py b/main/migrations/0072_mainarticlepage_show_initial_image.py index 994962fd6fedb0f380ea80c0c9b4ce671d82159e..c2064bf5aba12163918bbc90df777647ab5f888d 100644 --- a/main/migrations/0072_mainarticlepage_show_initial_image.py +++ b/main/migrations/0072_mainarticlepage_show_initial_image.py @@ -4,15 +4,18 @@ from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [ - ('main', '0071_rename_date_mainarticlepage_timestamp'), + ("main", "0071_rename_date_mainarticlepage_timestamp"), ] operations = [ migrations.AddField( - model_name='mainarticlepage', - name='show_initial_image', - field=models.BooleanField(default=True, help_text='Pokud je tato volba zaškrtnutá, obrázek nastavený u tohoto článku se automaticky vloží do prvního odstavce.', verbose_name='Ukázat obrázek v textu'), + model_name="mainarticlepage", + name="show_initial_image", + field=models.BooleanField( + default=True, + help_text="Pokud je tato volba zaškrtnutá, obrázek nastavený u tohoto článku se automaticky vloží do prvního odstavce.", + verbose_name="Ukázat obrázek v textu", + ), ), ] diff --git a/shared/templates/styleguide2/includes/molecules/menus/elections/carousel.html b/shared/templates/styleguide2/includes/molecules/menus/elections/carousel.html index 51db68639722207644ea1ba6ca5f68e149c3114b..9182b422e32020e03c7ab4f33ab277fc48f4f3ee 100644 --- a/shared/templates/styleguide2/includes/molecules/menus/elections/carousel.html +++ b/shared/templates/styleguide2/includes/molecules/menus/elections/carousel.html @@ -5,10 +5,21 @@ <div class="h-[700px] xl:h-screen relative bg-white"> {% image self.image original as image %} - <img - class="header-carousel--image opacity-60 inline xl:hidden" - src="{{ image.url }}" + <video + class=" + header-carousel--image + lg:hidden + " + autoplay + muted + loop + playsinline + preload="metadata" + + poster="{% static 'styleguide2/images/background-images/bg-flag-mobile-preview.jpg' %}" > + <source src="{% static 'styleguide2/images/background-images/bg-flag-mobile.mp4' %}"> + </video> <video class="header-carousel--image opacity-60 hidden xl:block" @@ -24,18 +35,34 @@ {% endif %} </video> - <div class="elections--header-carousel--text-wrapper {% if self.video_url %}xl:hidden{% endif %}"> - <div - class="container--wide h-full flex flex-col justify-end items-start" - > - <div class="2.5xl:ml-[-10rem]"> - <img - class="w-4/6" - src="{% static 'elections/europarl-header.png' %}" - > + {% comment %} + (No longer needed. So far.) + + <div class="elections--header-carousel--text-wrapper hidden xl:block"> + <div + class="container--wide h-full flex flex-col justify-end items-start" + > + <div class="2.5xl:ml-[-10rem]"> + <img + class="w-4/6" + src="{% static 'elections/europarl-header.png' %}" + > + </div> + </div> + </div> + {% endcomment %} + + {% if self.mobile_line_1 or self.mobile_line_2 %} + <div class="header-carousel--text-wrapper" style="box-sizing: border-box"> + <div class="container--wide px-0 h-full flex flex-col justify-end items-start" style="box-sizing: border-box"> + + <h1 class="mb-4 px-5 flex flex-col text-black block lg:hidden"> + <div>{{ self.mobile_line_1 }}</div> + <div>{{ self.mobile_line_2 }}</div> + </h1> </div> </div> - </div> + {% endif %} </div> </div> </div>