diff --git a/district/migrations/0025_auto_20211119_1708.py b/district/migrations/0025_auto_20211119_1708.py new file mode 100644 index 0000000000000000000000000000000000000000..f32b70167557d87f5b8c4429a0816bc4a03abf0c --- /dev/null +++ b/district/migrations/0025_auto_20211119_1708.py @@ -0,0 +1,30 @@ +# Generated by Django 3.2.8 on 2021-11-19 16:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("district", "0024_alter_districtelectionpointpage_list_image"), + ] + + operations = [ + migrations.AddField( + model_name="districthomepage", + name="election_countdown_datetime", + field=models.DateTimeField( + blank=True, + help_text="Pro skrytí nechte nevyplněné", + null=True, + verbose_name="Datum a čas pro odpočet do voleb", + ), + ), + migrations.AddField( + model_name="districthomepage", + name="show_calendar_on_hp", + field=models.BooleanField( + default=True, verbose_name="Zobrazit kalendář dole na homepage" + ), + ), + ] diff --git a/district/models.py b/district/models.py index 9bc3e792c9ce05146d4302c5c7d028406284ae1a..88bd2532d473e9b9441561fc3e2ad6948639575d 100644 --- a/district/models.py +++ b/district/models.py @@ -43,8 +43,17 @@ class DistrictHomePage(MetadataPageMixin, CalendarMixin, Page): verbose_name="Blok pod headerem", blank=True, ) - articles_title = models.CharField("Nadpis článků", max_length=256) + election_countdown_datetime = models.DateTimeField( + "Datum a čas pro odpočet do voleb", + null=True, + blank=True, + help_text="Pro skrytí nechte nevyplněné", + ) + show_calendar_on_hp = models.BooleanField( + "Zobrazit kalendář dole na homepage", default=True + ) + region_map_button_text = models.CharField( "Text tlačítka mapy", max_length=256, default="Piráti v krajích" ) @@ -107,6 +116,8 @@ class DistrictHomePage(MetadataPageMixin, CalendarMixin, Page): content_panels = Page.content_panels + [ StreamFieldPanel("subheader"), FieldPanel("articles_title"), + FieldPanel("election_countdown_datetime"), + FieldPanel("show_calendar_on_hp"), ] promote_panels = [ @@ -193,7 +204,7 @@ class DistrictHomePage(MetadataPageMixin, CalendarMixin, Page): @property def election_page(self): - return None # TODO self._first_subpage_of_type(DistrictElectionPage) + return self._first_subpage_of_type(DistrictElectionPage) @property def people_page(self): @@ -253,7 +264,7 @@ class DistrictArticlePage(ArticleMixin, SubpageMixin, MetadataPageMixin, Page): context = super().get_context(request) context["related_articles"] = ( self.get_siblings(inclusive=False) - .live() # TODO filtrovat na stejné tagy? + .live() # TODO? filtrovat na stejné tagy? .specific() .order_by("-uniwebarticlepage__date")[:3] ) diff --git a/district/templates/district/base.html b/district/templates/district/base.html index 9168eca3c1a072f83bad432a861c278575501142..45dbb32e680e58e801f59926b4180423b74bd933 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -216,7 +216,9 @@ <ui-region-map class="container container--default" /> </div> <div class="subnav-aside__item" :class="{'subnav-aside__item--visible': isCurrentView('calendar')}"> - {% include "shared/calendar_current_events_snippet.html" %} + <div class="container container--default"> + {% include "shared/calendar_current_events_snippet.html" %} + </div> </div> </aside> </ui-view-provider> diff --git a/district/templates/district/blocks/homepage_calendar_block.html b/district/templates/district/blocks/homepage_calendar_block.html deleted file mode 100644 index c6aed45f38f5b3ea728101a0f30f0c378972a8dc..0000000000000000000000000000000000000000 --- a/district/templates/district/blocks/homepage_calendar_block.html +++ /dev/null @@ -1,16 +0,0 @@ -{% load wagtailimages_tags %} - -{% image self.image width-1920 as img %} -<header - class="hero hero--image py-16 " - style="--image-url: url({{ img.url }})" -> - <div class="container container--default"> - <h1 class="head-alt-md md:head-alt-lg max-w-2xl "> - {{ self.title }} - </h1> - <h2 class="head-xs mt-2 "> - {{ self.subtitle }} - </h2> - </div> -</header> diff --git a/district/templates/district/district_home_page.html b/district/templates/district/district_home_page.html index 1915413c57760d33a0e887c33e293c1e62d2fd2d..9ed6cfaa606f2970efcc91d8033d8a75b41ea7f3 100644 --- a/district/templates/district/district_home_page.html +++ b/district/templates/district/district_home_page.html @@ -23,6 +23,18 @@ {% include "shared/more_articles_snippet.html" %} </div> + {% if page.election_countdown_datetime %} + <section class="my-8 lg:my-16 container-padding--zero lg:container-padding--auto"> + {% include "shared/election_countdown_snippet.html" %} + </section> + {% endif %} + + {% if page.show_calendar_on_hp %} + <section class="my-8 lg:my-16 container-padding--zero lg:container-padding--auto"> + {% include "shared/calendar_current_events_snippet.html" %} + </section> + {% endif %} + {% include "shared/followus_snippet.html" %} </main> {% endblock %} diff --git a/shared/templates/shared/calendar_current_events_snippet.html b/shared/templates/shared/calendar_current_events_snippet.html index 3bd9aa85da4ef23656632ef77df454c64ff9dd97..fab69b6c6456d8bfdd440e9954e2687ac53be681 100644 --- a/shared/templates/shared/calendar_current_events_snippet.html +++ b/shared/templates/shared/calendar_current_events_snippet.html @@ -1,59 +1,58 @@ -<div class="container container--default"> - {% if page.root_page.has_calendar %} - <div class="calendar grid grid-cols-4"> - <div class="col-span-4 xl:col-span-1"> - <aside class="banner bg-orange-300 text-white h-full"><i class="ico--calendar banner__icon"></i> - <div class="banner__body"><h1 class="head-alt-md banner__cta">Kalendář</h1> - <button class="btn btn--white btn--fullwidth sm:btn--autowidth mt-8"> - <div class="btn__body">Zobrazit další</div> - </button> +{% if page.root_page.has_calendar %} + <div class="calendar grid grid-cols-4"> + <div class="col-span-4 xl:col-span-1"> + <aside class="banner bg-orange-300 text-white h-full"> + <i class="ico--calendar banner__icon"></i> + <div class="banner__body"><h1 class="head-alt-md banner__cta">Kalendář</h1> + <button class="btn btn--white btn--fullwidth sm:btn--autowidth mt-8"> + <div class="btn__body">Zobrazit další</div> + </button> + </div> + </aside> + </div> + <div class="col-span-4 xl:col-span-3"> + {% for event in page.root_page.calendar.current_events %} + <div class="grid grid-cols-12 items-center calendar-table-row"> + <div class="col-span-2 text-orange-300 head-alt-md calendar-table-row__col"> + <span>{{ event.begin|date:"j." }}</span> </div> - </aside> - </div> - <div class="col-span-4 xl:col-span-3"> - {% for event in page.root_page.calendar.current_events %} - <div class="grid grid-cols-12 items-center calendar-table-row"> - <div class="col-span-2 text-orange-300 head-alt-md calendar-table-row__col"> - <span>{{ event.begin|date:"j." }}</span> - </div> - <div class="col-span-8 grid grid-cols-3 col-gap-4 calendar-table-row__col calendar-table-row__col--norborder"> - <div class="col-span-3 md:col-span-1"> - <strong class="block">{{ event.begin|date:"l j. E"|capfirst }}</strong> - <p class="font-light text-sm mt-1">{{ event.duration }}</p></div> - <div class="col-span-3 md:col-span-2 mt-4 md:mt-0"> - <span class="font-bold block"> - {{ event.name }} - </span> - {% if event.description %} - <p class="font-light text-sm mt-1">{{ event.description | safe }}</p> - {% endif %} - </div> - </div> - <div class="col-span-2 text-center font-light calendar-table-row__col"> - {% if event.location and 'jitsi.pirati' in event.location %} - <a href="{{ event.location }}" class="icon-link"> - <i aria-hidden="true" class="ico--link text-violet-300 mr-1"></i> -{# <i aria-hidden="true" class="ico--jitsi text-violet-300 mr-1"></i> TODO requires latest styleguide version #} - <span>Jitsi URL</span> - </a> - {% elif event.location %} - <a href="https://maps.google.com/maps?q={{ event.location }}" class="icon-link"> - <i aria-hidden="true" class="ico--location text-violet-300 mr-1"></i> - <span>Mapa</span> - </a> + <div class="col-span-8 grid grid-cols-3 col-gap-4 calendar-table-row__col calendar-table-row__col--norborder"> + <div class="col-span-3 md:col-span-1"> + <strong class="block">{{ event.begin|date:"l j. E"|capfirst }}</strong> + <p class="font-light text-sm mt-1">{{ event.duration }}</p></div> + <div class="col-span-3 md:col-span-2 mt-4 md:mt-0"> + <span class="font-bold block"> + {{ event.name }} + </span> + {% if event.description %} + <p class="font-light text-sm mt-1">{{ event.description | safe }}</p> {% endif %} </div> </div> - {% empty %} - <div class="content-block"> - <p>Žádné události.</p> + <div class="col-span-2 text-center font-light calendar-table-row__col"> + {% if event.location and 'jitsi.pirati' in event.location %} + <a href="{{ event.location }}" class="icon-link"> + <i aria-hidden="true" class="ico--link text-violet-300 mr-1"></i> +{# <i aria-hidden="true" class="ico--jitsi text-violet-300 mr-1"></i> TODO requires latest styleguide version #} + <span>Jitsi URL</span> + </a> + {% elif event.location %} + <a href="https://maps.google.com/maps?q={{ event.location }}" class="icon-link"> + <i aria-hidden="true" class="ico--location text-violet-300 mr-1"></i> + <span>Mapa</span> + </a> + {% endif %} </div> - {% endfor %} - </div> - </div> - {% else %} - <div class="content-block"> - <p>Žádné události.</p> + </div> + {% empty %} + <div class="content-block"> + <p>Žádné události.</p> + </div> + {% endfor %} </div> - {% endif %} -</div> + </div> +{% else %} + <div class="content-block"> + <p>Žádné události.</p> + </div> +{% endif %} diff --git a/shared/templates/shared/election_countdown_snippet.html b/shared/templates/shared/election_countdown_snippet.html new file mode 100644 index 0000000000000000000000000000000000000000..bc15c8ecc8992a7488a632f3fe0a9cddad210d9b --- /dev/null +++ b/shared/templates/shared/election_countdown_snippet.html @@ -0,0 +1,15 @@ +<aside class="bg-black text-white px-4 py-12 lg:py-16 lg:px-24 {{ classes }}"> + <div class="flex flex-col lg:flex-row items-center"> + <h1 class="head-alt-md md:head-alt-xl flex-grow text-center lg:text-left mb-8 lg:mb-0"> + Do voleb<br>nám zbývá + </h1> + <div class="__js-root"> + <ui-flip-clock + clock-classes="text-6xl md:text-7xl lg:text-9xl" + slot-classes="text-2xl md:text-3xl lg:text-4xl" + deadline="{{ page.election_countdown_datetime | date:"Y-m-d" }} {{ page.election_countdown_datetime | time }}" + units="days,hours" + /> + </div> + </div> +</aside>