diff --git a/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py b/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..8f3bdf38b1f686ce6b4fa85b651247bb968bdb70 --- /dev/null +++ b/district/migrations/0096_districtelectioncampaignpage_show_program_points_inline_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.0.7 on 2022-08-11 16:38 + +from django.db import migrations, models +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0095_alter_districtpersonpage_options_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='districtelectioncampaignpage', + name='show_program_points_inline', + field=models.BooleanField(default=False, help_text='Hodí se v případě spousty krátkých bodů programu, z nichž si většina nezaslouží vlastní stránku.', verbose_name='Zobrazit obsah celého programu na jedné stránce'), + ), + migrations.AlterField( + model_name='districtinteractiveprogrampage', + name='content', + field=wagtail.fields.StreamField([('interactive_program_block', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('icon', wagtail.blocks.ChoiceBlock(choices=[('verejne-sluzby', 'Veřejné služby'), ('zdravotni-pece', 'Zdravotní péče'), ('sport', 'Sport'), ('sport-plavec', 'Sport - plavec'), ('socialni-politika', 'Sociální politika'), ('aktivni-verejnost', 'Aktivní veřejnost'), ('priroda', 'Příroda'), ('vzdelavani', 'Vzdělávání'), ('kultura', 'Kultura'), ('otevrena-radnice', 'Otevřená radnice'), ('cestovni-ruch', 'Cestovní ruch'), ('doprava', 'Doprava'), ('bydleni', 'Bydlení')], label='Ikona')), ('program_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('content', wagtail.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], use_json_field=None, verbose_name='Části programu'), + ), + ] diff --git a/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py b/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py new file mode 100644 index 0000000000000000000000000000000000000000..972978cd045635b7e459948ec1e4c73ff3cfaee3 --- /dev/null +++ b/district/migrations/0097_alter_districtelectioncampaignpage_show_program_points_inline.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.7 on 2022-08-11 16:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0096_districtelectioncampaignpage_show_program_points_inline_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='districtelectioncampaignpage', + name='show_program_points_inline', + field=models.BooleanField(default=False, help_text='Hodí se v případě spousty krátkých bodů programu, z nichž si většina nezaslouží vlastní stránku.', verbose_name='Zobrazit obsah programu na jedné stránce'), + ), + ] diff --git a/district/models.py b/district/models.py index b3530f5903119b760c34d8971b009c40d7a13491..d5278c881419c043c1138849daecdd5ae2417a50 100644 --- a/district/models.py +++ b/district/models.py @@ -917,6 +917,11 @@ class DistrictElectionCampaignPage(DistrictElectionBasePage): max_length=128, help_text="Např. Program pro magistrát.", ) + show_program_points_inline = models.BooleanField( + "Zobrazit obsah programu na jedné stránce", + default=False, + help_text="Hodí se v případě spousty krátkých bodů programu, z nichž si většina nezaslouží vlastní stránku." + ) hero_headline = models.CharField( "Banner headline", max_length=128, @@ -976,6 +981,7 @@ class DistrictElectionCampaignPage(DistrictElectionBasePage): FieldPanel("number"), FieldPanel("candidate_list_title"), FieldPanel("program_point_list_title"), + FieldPanel("show_program_points_inline"), FieldPanel("content"), ], "Personalizace", diff --git a/district/templates/district/district_election_campaign_page.html b/district/templates/district/district_election_campaign_page.html index c0c3d0dca1c7f8231f2b7f6b76ed128b21c18f09..ebd363c3f8904a379602c6d7d30eac4aca88d497 100644 --- a/district/templates/district/district_election_campaign_page.html +++ b/district/templates/district/district_election_campaign_page.html @@ -106,28 +106,50 @@ {% if page.program_points %} <template v-if="isCurrentView('program')"> - <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">{{ page.program_point_list_title|default:"Volební program" }}</h1> - - <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> + <h1 + class="head-alt-md text-center py-8 lg:pt-24 {% if not page.show_program_points_inline %}lg:pb-8{% else %}pb-0{% endif %}" + >{{ page.program_point_list_title|default:"Volební program" }}</h1> + {% if page.show_program_points_inline %} {% for program_point in page.program_points %} - <div class="card card--hoveractive"> - <a href="{% pageurl program_point %}"> - {% image program_point.image width-357 as list_image %} - <img src="{{ list_image.url }}" alt="{{ program_point.title }}" class="w-full h-48 object-cover"> - </a> - <div class="card__body p-4"> - <h1 class="card-headline mb-2"> - <a href="{% pageurl program_point %}"> - {{ program_point.title }} - </a> - </h1> - <p class="card-body-text"> - {{ program_point.perex }} - </p> - </div> - </div> + <h2 class="head-alt-md mb-2 mt-8"> + {{ program_point.title }} + </h2> + <p class="font-bold text-lg leading-normal mb-3"> + {{ program_point.perex }} + </p> + <p class="mb-8 text-grey-300"> + Garant: + <a + href="{{ program_point.guarantor.url }}" + >{{ program_point.guarantor }}</a> + </p> + + {% for block in program_point.content %} + {% include_block block %} + {% endfor %} {% endfor %} - </div> + {% else %} + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> + {% for program_point in page.program_points %} + <div class="card card--hoveractive"> + <a href="{% pageurl program_point %}"> + {% image program_point.image width-357 as list_image %} + <img src="{{ list_image.url }}" alt="{{ program_point.title }}" class="w-full h-48 object-cover"> + </a> + <div class="card__body p-4"> + <h1 class="card-headline mb-2"> + <a href="{% pageurl program_point %}"> + {{ program_point.title }} + </a> + </h1> + <p class="card-body-text"> + {{ program_point.perex }} + </p> + </div> + </div> + {% endfor %} + </div> + {% endif %} </template> {% endif %} </section> diff --git a/shared/templates/shared/article_preview.html b/shared/templates/shared/article_preview.html index b6a1b7c3ae0e5a2f4846965cde6ee0bb149e54f2..f577fed130a45802ab3b4e66515c230a30af7ff2 100644 --- a/shared/templates/shared/article_preview.html +++ b/shared/templates/shared/article_preview.html @@ -43,7 +43,7 @@ </div> </div> - <div class="article-card-meta" class="c-metadata-block-section__item" > + <div class="article-card-meta c-metadata-block-section__item"> <span itemprop="description" class="article-card-meta__item"> {{ article.date|date:"SHORT_DATE_FORMAT" }} <meta itemprop="datePublished" content="{{ article.last_published_at }}" />