Skip to content
Snippets Groups Projects
Commit 2a2cad5f authored by Ondrej Rehounek's avatar Ondrej Rehounek
Browse files

district: WIP candidates and after election strategy

parent 5dd72d3d
Branches
No related tags found
2 merge requests!418Release,!414district and region modules
Pipeline #6138 passed
Showing
with 559 additions and 187 deletions
......@@ -38,7 +38,14 @@ class CallToActionButtonBlock(StructBlock):
class CandidateListBlock(StructBlock):
title = CharBlock(label="Titulek", required=True)
contact_list = ListBlock(
call_to_action_text = CharBlock(label="Text 'call-to-action' baneru")
call_to_action_link = URLBlock(
label="Odkaz 'call-to-action' baneru", required=False
)
call_to_action_button_text = CharBlock(
label="Text tlačítka 'call-to-action' baneru", max_length=24, required=False
)
candidate_list = ListBlock(
PageChooserBlock(label="Osoba", page_type=["district.DistrictPersonPage"]),
label="Kandidáti",
)
......
# Generated by Django 3.2.8 on 2021-11-19 06:38
import wagtail.core.blocks
import wagtail.core.fields
import wagtail.images.blocks
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0018_auto_20211118_1609"),
]
operations = [
migrations.AlterField(
model_name="districtelectionpage",
name="content",
field=wagtail.core.fields.StreamField(
[
(
"candidate_list",
wagtail.core.blocks.StructBlock(
[
(
"title",
wagtail.core.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"candidate_list",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.PageChooserBlock(
label="Osoba",
page_type=["district.DistrictPersonPage"],
),
label="Kandidáti",
),
),
]
),
)
],
blank=True,
verbose_name="Obsah stránky",
),
),
migrations.AlterField(
model_name="districtelectionpage",
name="header",
field=wagtail.core.fields.StreamField(
[
(
"election_header_block",
wagtail.core.blocks.StructBlock(
[
(
"flag_text",
wagtail.core.blocks.CharBlock(
label="Text ve 'vlajce'",
max_length=32,
required=False,
),
),
(
"motto",
wagtail.core.blocks.CharBlock(
label="Motto (podnadpis)",
max_length=128,
required=False,
),
),
(
"image",
wagtail.images.blocks.ImageChooserBlock(
label="Obrázek (kandidátů)", required=False
),
),
(
"background_image",
wagtail.images.blocks.ImageChooserBlock(
label="Obrázek na pozadí", required=True
),
),
(
"button_list",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.StructBlock(
[
(
"button_link",
wagtail.core.blocks.URLBlock(
label="Odkaz", max_length=64
),
),
(
"button_text",
wagtail.core.blocks.CharBlock(
label="Text"
),
),
]
),
label="Call to action tlačítka",
),
),
]
),
)
],
blank=True,
verbose_name="Obsah headeru",
),
),
]
# Generated by Django 3.2.8 on 2021-11-19 07:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("district", "0019_auto_20211119_0738"),
]
operations = [
migrations.AddField(
model_name="districtpersonpage",
name="age",
field=models.IntegerField(blank=True, null=True, verbose_name="Věk"),
),
migrations.AddField(
model_name="districtpersonpage",
name="city",
field=models.CharField(
blank=True, max_length=64, null=True, verbose_name="Město/obec"
),
),
]
# Generated by Django 3.2.8 on 2021-11-19 08:04
import django.db.models.deletion
import wagtail.core.blocks
import wagtail.core.fields
import wagtailmetadata.models
from django.db import migrations, models
import shared.models
class Migration(migrations.Migration):
dependencies = [
("wagtailcore", "0062_comment_models_and_pagesubscription"),
("wagtailimages", "0023_add_choose_permissions"),
("district", "0020_auto_20211119_0801"),
]
operations = [
migrations.AlterField(
model_name="districtelectionpage",
name="content",
field=wagtail.core.fields.StreamField(
[
(
"candidate_list",
wagtail.core.blocks.StructBlock(
[
(
"title",
wagtail.core.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"call_to_action_text",
wagtail.core.blocks.CharBlock(
label="Text 'call-to-action' baneru"
),
),
(
"call_to_action_link",
wagtail.core.blocks.URLBlock(
label="Odkaz 'call-to-action' baneru",
required=False,
),
),
(
"call_to_action_button_text",
wagtail.core.blocks.CharBlock(
label="Texst tlačítka 'call-to-action' baneru",
max_length=24,
required=False,
),
),
(
"candidate_list",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.PageChooserBlock(
label="Osoba",
page_type=["district.DistrictPersonPage"],
),
label="Kandidáti",
),
),
]
),
)
],
blank=True,
verbose_name="Obsah stránky",
),
),
migrations.CreateModel(
name="DistrictAfterElectionPage",
fields=[
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
(
"text",
wagtail.core.fields.RichTextField(blank=True, verbose_name="text"),
),
(
"search_image",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to="wagtailimages.image",
verbose_name="Search image",
),
),
],
options={
"verbose_name": "Povolební strategie",
},
bases=(
shared.models.SubpageMixin,
wagtailmetadata.models.WagtailImageMetadataMixin,
"wagtailcore.page",
models.Model,
),
),
migrations.AddField(
model_name="districtelectionpage",
name="strategy_page",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="+",
to="district.districtafterelectionpage",
verbose_name="Stránka povolební strategie",
),
),
]
# Generated by Django 3.2.8 on 2021-11-19 08:10
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0021_auto_20211119_0904"),
]
operations = [
migrations.RemoveField(
model_name="districtelectionpage",
name="strategy_page",
),
]
......@@ -10,6 +10,7 @@ from wagtail.admin.edit_handlers import (
CommentPanel,
FieldPanel,
MultiFieldPanel,
PageChooserPanel,
StreamFieldPanel,
)
from wagtail.core import blocks
......@@ -437,6 +438,8 @@ class DistrictPersonPage(SubpageMixin, MetadataPageMixin, Page):
# Fallbackové hodnoty pro data získávana z API (viz Person model)
email = models.EmailField("Email", blank=True, null=True)
phone = models.CharField("Telefon", max_length=16, blank=True, null=True)
city = models.CharField("Město/obec", max_length=64, blank=True, null=True)
age = models.IntegerField("Věk", blank=True, null=True)
is_pirate = models.BooleanField("Je členem Pirátské strany?", default=True)
facebook_url = models.URLField("Odkaz na Facebook", blank=True, null=True)
......@@ -462,6 +465,8 @@ class DistrictPersonPage(SubpageMixin, MetadataPageMixin, Page):
[
FieldPanel("email"),
FieldPanel("phone"),
FieldPanel("city"),
FieldPanel("age"),
FieldPanel("is_pirate"),
],
"Kontaktní informace",
......@@ -550,18 +555,14 @@ class DistrictPeoplePage(SubpageMixin, MetadataPageMixin, Page):
verbose_name = "Lidé"
class DistrictElectionPointPage(SubpageMixin, MetadataPageMixin, Page):
class DistrictElectionBasePage(SubpageMixin, MetadataPageMixin, Page):
### FIELDS
text = RichTextField("text", blank=True, features=RICH_TEXT_FEATURES)
guarantor = models.ForeignKey(
"district.DistrictPersonPage", on_delete=models.PROTECT
)
### PANELS
content_panels = Page.content_panels + [
FieldPanel("text"),
FieldPanel("guarantor"),
]
### RELATIONS
......@@ -569,20 +570,40 @@ class DistrictElectionPointPage(SubpageMixin, MetadataPageMixin, Page):
parent_page_types = ["district.DistrictElectionPage"]
subpage_types = []
### OTHERS
class Meta:
verbose_name = "Bod programu voleb"
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, *args, **kwargs)
context["election_points"] = self.get_siblings().live().specific()
return context
class Meta:
abstract = True
class DistrictElectionPage(SubpageMixin, MetadataPageMixin, Page):
class DistrictAfterElectionPage(DistrictElectionBasePage):
class Meta:
verbose_name = "Povolební strategie"
class DistrictElectionPointPage(DistrictElectionBasePage):
### FIELDS
guarantor = models.ForeignKey(
"district.DistrictPersonPage", on_delete=models.PROTECT
)
### PANELS
content_panels = DistrictElectionBasePage.content_panels + [
FieldPanel("guarantor"),
]
### OTHERS
class Meta:
verbose_name = "Bod programu voleb"
class DistrictElectionPage(SubpageMixin, MetadataPageMixin, Page):
### FIELDS
header = StreamField(
[("election_header_block", ElectionHeaderBlock())],
verbose_name="Obsah headeru",
......@@ -605,7 +626,10 @@ class DistrictElectionPage(SubpageMixin, MetadataPageMixin, Page):
### RELATIONS
parent_page_types = ["district.DistrictHomePage"]
subpage_types = ["district.DistrictElectionPointPage"]
subpage_types = [
"district.DistrictElectionPointPage",
"district.DistrictAfterElectionPage",
]
### OTHERS
......@@ -617,6 +641,18 @@ class DistrictElectionPage(SubpageMixin, MetadataPageMixin, Page):
context["election_points"] = self.get_children().live().specific()
return context
@property
def strategy_page(self):
try:
return (
self.get_descendants()
.type(DistrictAfterElectionPage)
.live()
.specific()[0]
)
except IndexError:
return None
class DistrictProgramPage(SubpageMixin, MetadataPageMixin, Page):
### FIELDS
......
......@@ -3,71 +3,55 @@
Kandidáti do zastupitelstva Pardubického kraje
</h1>
<div class="candidate-card-list grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
{# TODO #}
{% for candidate in self.candidate_list %}
<div class="candidate-card container-padding--zero sm:container-padding--auto ">
<div
class="candidate-card__wrapper candidate-card__wrapper sm:candidate-card-list__item-wrapper md:candidate-card-list__item-wrapper--border">
<div class="card candidate-card__body elevation-0 hover:elevation-10 transition duration-200">
<div class="candidate-card__avatar">
<div class="candidate-card__position">1</div>
<a href="/lide/daniel-lebduska/" class="avatar avatar--sm sm:avatar--lg"><img
src="/assets/5e2fb3-c25d7c0f7e2a7240c723c9335f7f505f3205e69733b638f9337788526327dcc4.jpg"
alt="Bc. Daniel Lebduška"></a></div>
<div class="candidate-card__bio"><h1 class="head-heavy-xs"><a href="/lide/daniel-lebduska/"><span
class="academic-title academic-title--before">Bc.</span> <span
class="academic-title-name">Daniel Lebduška</span></a></h1> <a href="mailto:daniel.lebduska@pirati.cz"
class="block candidate-card__bio-item mb-4">daniel.lebduska@pirati.cz</a>
<h2 class=" candidate-card__bio-item">výkonný ředitel společnosti, zastupitel města Chrudim, domácí
sládek</h2>
<h2 class="head-allcaps-4xs mt-4">
Chrudim
</h2></div>
<div class="candidate-card__affiliation">
<div>31 let</div>
<div class="flex items-center">
<div class="avatar w-6 mr-2"><img src="https://pardubicky.pirati.cz/assets/img/brand/logo.svg"
alt="Pirátská strana"></div>
<span class="font-bold font-condensed">Pirátská strana</span></div>
</div>
<div class="card__body candidate-card__social">
<div class="social-icon-group space-x-2"><a target="_blank" rel="noreferrer noopener"
href="https://www.facebook.com/lebduska.daniel"
class="social-icon"><i class="ico--facebook"></i></a></div>
</div>
</div>
</div>
</div>
{% for person_page in self.candidate_list %}
{% if forloop.counter < 8 %}
{% include "district/include/full_candidate_snippet.html" %}
{% endif %}
{% endfor %}
</div>
<div>
{# TODO #}
{% for candidate in self.candidate_list %}
<div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto candidate-table--fadeout">
<a href="/lide/vladek-vacha/" class="candidate-table-row">
<div class="candidate-table-row__position head-allcaps-heavy-2xs text-right">10</div>
<div class="avatar avatar--sm candidate-table-row__avatar"><img
src="/assets/920a27-2206a5763c362e8783fcffa22b371e3af8f60d6924af045933849e53c4a445b0.jpg" alt="Vladek Vácha">
</div>
<div class="candidate-table-row__name head-heavy-2xs font-bold"> Vladek Vácha</div>
<div class="candidate-table-row__bio font-condensed">40 let, technolog, provozovatel soukromého muzea,
Mistrovice
</div>
<div class="candidate-table-row__affiliation">
<div class="flex items-center">
<div class="avatar w-6 mr-2"><img src="https://pardubicky.pirati.cz/assets/img/brand/logo.svg"
alt="Pirátská strana"></div>
<span class="font-bold font-condensed">Pirátská strana</span></div>
<aside class="banner bg-black text-white container-padding--zero sm:container-padding--auto">
<i class="ico--pirati banner__icon"></i>
<div class="banner__body">
<h1 class="head-alt-lg banner__cta">
{{ self.call_to_action_text }}
</h1>
{% if self.call_to_action_button_text %}
<a href="{{ self.call_to_action_link }}" class="btn btn--white btn--fullwidth mt-8">
<div class="btn__body ">
{{ self.call_to_action_button_text}}
</div>
</a>
{% endif %}
</div>
</aside>
</div>
<div>
<ui-view-provider :initial="{fullCandidateTable: false}" v-slot="{ isCurrentView, setView }">
<div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto"
:class="{'candidate-table--fadeout': !isCurrentView('fullCandidateTable')}">
{% for person_page in self.candidate_list %}
{# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
{% if forloop.counter >= 8 and forloop.counter < 16 %}
{% include "district/include/compact_candidate_snippet.html" %}
{% endif %}
{% endfor %}
<div class="text-center pt-8">
<button class="btn btn--icon text-xl btn--black btn--hoveractive">
<template v-if="isCurrentView('fullCandidateTable')">
{% for person_page in self.candidate_list %}
{# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
{% if forloop.counter >= 8 %}
{% include "district/include/compact_candidate_snippet.html" %}
{% endif %}
{% endfor %}
</template>
</div>
<div class="text-center pt-8" v-if="!isCurrentView('fullCandidateTable')">
<button class="btn btn--icon text-xl btn--black btn--hoveractive"
@click="setView('fullCandidateTable', true)">
<div class="btn__body-wrap">
<div class="btn__body ">Zobrazit vše</div>
<div class="btn__icon "><i class="ico--chevron-right"></i></div>
</div>
</button>
</div>
</ui-view-provider>
</div>
......@@ -8,32 +8,70 @@
{% endblock subheader %}
{% block content %}
<div class="__js-root">
<ui-view-provider
:initial="{candidates: true, program: false}" :sync-location="true" v-slot="{ isCurrentView, toggleView }"
>
<main>
<div class="container container--default pt-8 lg:py-24">
<div class="text-center">
<div class="switch">
<a class="switch__item switch__item--active">Kandidáti</a>
<a class="switch__item">Program</a>
<a
@click="toggleView('candidates')"
class="switch__item"
:class="{'switch__item--active': isCurrentView('candidates')}"
>
Kandidáti
</a>
<a
@click="toggleView('program')"
class="switch__item"
:class="{'switch__item--active': isCurrentView('program')}"
>
Program
</a>
</div>
</div>
<template v-if="isCurrentView('candidates')">
{% for block in self.content %}
{% include_block block %}
{% endfor %}
</template>
{# TODO find out how the switch is working seem to be completely replacing the HTML #}
<template v-if="isCurrentView('program')">
<h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">
Volební program
</h1>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{% for election_point in election_points %}
TODO
{% endfor %}
</div>
</template>
<div class="flex flex-col pt-8 lg:pt-24 lg:flex-row lg:space-x-8">
{# TODO editable link #}
<a href="/volby-2020/povolebni-strategie/" class="super-button bg-grey-125 text-black lg:w-full container-padding--zero lg:container-padding--auto">
{% if page.strategy_page %}
<a
href="{{ page.strategy_page.url }}"
class="super-button bg-grey-125 text-black lg:w-full container-padding--zero lg:container-padding--auto"
>
<span class="super-button__body">Povolební strategie</span>
<i class="super-button__icon ico--strategy"></i>
</a>
<a href="https://wiki.pirati.cz/ft/start" class="super-button bg-black text-white lg:w-full container-padding--zero lg:container-padding--auto">
{% endif %}
<a
href="https://wiki.pirati.cz/ft/start"
class="super-button bg-black text-white lg:w-full container-padding--zero lg:container-padding--auto"
>
<span class="super-button__body">Financování kampaně</span>
<i class="super-button__icon ico--calculator"></i>
</a>
</div>
</div>
</main>
</ui-view-provider>
</div>
{% endblock content %}
......@@ -42,24 +42,33 @@
</div>
<div class="social-icon-group space-x-2 text-lg">
{% if page.facebook_url %}
<a href="{{ page.facebook_url }}" class="social-icon "><i class="ico--facebook"></i></a>
<a href="{{ page.facebook_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--facebook"></i>
</a>
{% endif %}
{% if page.instagram_url %}
<a href="{{ page.instagram_url }}" class="social-icon "><i class="ico--instagram"></i></a>
<a href="{{ page.instagram_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--instagram"></i></a>
{% endif %}
{% if page.twitter_url %}
<a href="{{ page.twitter_url }}" class="social-icon "><i class="ico--twitter"></i></a>
<a href="{{ page.twitter_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--twitter"></i>
</a>
{% endif %}
{% if page.youtube_url %}
<a href="{{ page.youtube_url }}" class="social-icon "><i class="ico--youtube"></i></a>
<a href="{{ page.youtube_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--youtube"></i>
</a>
{% endif %}
{% if page.flickr_url %}
<a href="{{ page.flickr_url }}" class="social-icon "><i class="ico--flickr"></i></a>
<a href="{{ page.flickr_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--flickr"></i>
</a>
{% endif %}
</div>
<hr>
{# <div class="flex items-center">#}
{# <div class="flex items-center" TODO >#}
{# <div class="avatar w-6 mr-2">#}
{# <img src="http://placeimg.com/100/100/people" alt="Avatar">#}
{# </div>#}
......
<div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto candidate-table--fadeout">
<a href="/lide/vladek-vacha/" class="candidate-table-row">
<div class="candidate-table-row__position head-allcaps-heavy-2xs text-right">10</div>
<div class="avatar avatar--sm candidate-table-row__avatar"><img
src="/assets/920a27-2206a5763c362e8783fcffa22b371e3af8f60d6924af045933849e53c4a445b0.jpg" alt="Vladek Vácha">
</div>
<div class="candidate-table-row__name head-heavy-2xs font-bold"> Vladek Vácha</div>
<div class="candidate-table-row__bio font-condensed">40 let, technolog, provozovatel soukromého muzea,
Mistrovice
</div>
<div class="candidate-table-row__affiliation">
<div class="flex items-center">
<div class="avatar w-6 mr-2"><img src="https://pardubicky.pirati.cz/assets/img/brand/logo.svg"
alt="Pirátská strana"></div>
<span class="font-bold font-condensed">Pirátská strana</span></div>
</div>
</a>
</div>
{% load wagtailimages_tags %}
<div class="candidate-card container-padding--zero sm:container-padding--auto ">
<div
class="candidate-card__wrapper candidate-card__wrapper sm:candidate-card-list__item-wrapper md:candidate-card-list__item-wrapper--border"
>
<div class="card candidate-card__body elevation-0 hover:elevation-10 transition duration-200">
<div class="candidate-card__avatar">
<div class="candidate-card__position">
{{ forloop.counter }}
</div>
<a href="{{ person_page.url }}" class="avatar avatar--sm sm:avatar--lg">
{% image person_page.profile_photo max-208x208 as profile_img %}{# záměrně stejná velikost jako na PersonPage #}
<img src="{{ profile_img.url }}" alt="{{ person_page.title }}">
</a>
</div>
<div class="candidate-card__bio">
<h1 class="head-heavy-xs">
<a href="{{ person_page.url }}">
{{ person_page.title }}
</a>
</h1>
{% if person_page.email %}
<a href="{{ person_page.email }}" class="block candidate-card__bio-item mb-4">
{{ person_page.email }}
</a>
{% endif %}
{% if person_page.job %}
<h2 class=" candidate-card__bio-item">
{{ person_page.job }}
</h2>
{% endif %}
{% if person_page.city %}
<h2 class="head-allcaps-4xs mt-4">
{{ person_page.city }}
</h2>
{% endif %}
</div>
<div class="candidate-card__affiliation">
{% if person_page.age %}<div>{{ person_page.age }} let</div>{% endif %}
<div class="flex items-center">
<div class="avatar w-6 mr-2">
<img src="https://pardubicky.pirati.cz/assets/img/brand/logo.svg" alt="Pirátská strana">
</div>
<span class="font-bold font-condensed">
Pirátská strana
</span>
</div>
</div>
<div class="card__body candidate-card__social">
<div class="social-icon-group space-x-2">
{% if person_page.facebook_url %}
<a href="{{ person_page.facebook_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--facebook"></i>
</a>
{% endif %}
{% if person_page.instagram_url %}
<a href="{{ person_page.instagram_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--instagram"></i></a>
{% endif %}
{% if person_page.twitter_url %}
<a href="{{ person_page.twitter_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--twitter"></i>
</a>
{% endif %}
{% if person_page.youtube_url %}
<a href="{{ person_page.youtube_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--youtube"></i>
</a>
{% endif %}
{% if person_page.flickr_url %}
<a href="{{ person_page.flickr_url }}" target="_blank" class="social-icon" rel="noreferrer noopener">
<i class="ico--flickr"></i>
</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="__js-root">
<ui-view-provider :initial="{candidates: true, program: false}" :sync-location="true" v-slot="{ isCurrentView, toggleView }">
<main>
<div class="container container--default pt-8 lg:py-24">
<div class="text-center">
<div class="switch">
<a @click="toggleView('candidates')" class="switch__item" :class="{'switch__item--active': isCurrentView('candidates')}">Kandidáti</a>
<a @click="toggleView('program')" class="switch__item" :class="{'switch__item--active': isCurrentView('program')}">Program</a>
</div>
</div>
<template v-if="isCurrentView('candidates')">
<h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">Kandidátka do krajských voleb</h1>
<div class="candidate-card-list grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper sm:candidate-card-list__item-wrapper--noborder md:candidate-card-list__item-wrapper--border") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper md:candidate-card-list__item-wrapper--noborder lg:candidate-card-list__item-wrapper--border") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper sm:candidate-card-list__item-wrapper--noborder md:candidate-card-list__item-wrapper--border lg:candidate-card-list__item-wrapper--noborder") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper md:candidate-card-list__item-wrapper--border") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper sm:candidate-card-list__item-wrapper--noborder lg:candidate-card-list__item-wrapper--border") }}#}
{# {{> molecules-candidate-card(wrapperClasses: "sm:candidate-card-list__item-wrapper") }}#}
{# {{> molecules-banner(color: "bg-black", fullwidthButton: true, classes: "container-padding--zero sm:container-padding--auto")}}#}
</div>
<ui-view-provider :initial="{fullCandidateTable: false}" v-slot="{ isCurrentView, setView }">
<div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto" :class="{'candidate-table--fadeout': !isCurrentView('fullCandidateTable')}">
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
<template v-if="isCurrentView('fullCandidateTable')">
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
{# {{> molecules-candidate-table-row }}#}
</template>
</div>
<div class="text-center pt-8" v-if="!isCurrentView('fullCandidateTable')">
<button class="btn btn--icon text-xl btn--black btn--hoveractive" @click="setView('fullCandidateTable', true)">
<div class="btn__body-wrap">
<div class="btn__body ">Zobrazit vše</div>
<div class="btn__icon "><i class="ico--chevron-right"></i></div>
</div>
</button>
</div>
</ui-view-provider>
</template>
<template v-if="isCurrentView('program')">
<h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">Volební program</h1>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Otevřenost a zapojení občanů" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Smart city" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Řízení a organizační struktura města" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Rozvoj města a bydlení" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Doprava" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Veřejný prostor a zeleň" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Vzdělávání" )}}#}
{# {{> molecules-image-card(classes: "card--hoveractive", bodyClasses: "p-4", imgClasses: "h-48 object-fit", title: "Kultura a volný čas" )}}#}
</div>
</template>
<div class="flex flex-col pt-8 lg:pt-24 lg:flex-row lg:space-x-8">
{# {{> atoms-super-button(cta: "Povolební strategie", icon: "ico--strategy", classes: "bg-grey-125 hover:bg-black hover:text-white lg:w-full container-padding--zero lg:container-padding--auto") }}#}
{# {{> atoms-super-button(cta: "Financování kampaně", icon: "ico--calculator", classes: "bg-black text-white hover:bg-grey-125 hover:text-black lg:w-full container-padding--zero lg:container-padding--auto") }}#}
</div>
</div>
</main>
</ui-view-provider>
</div>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment