diff --git a/donate/migrations/0003_donatecookiespage_donateinfopage.py b/donate/migrations/0003_donatecookiespage_donateinfopage.py new file mode 100644 index 0000000000000000000000000000000000000000..b546764f6eb0adffe238179c3871b138437ed8ca --- /dev/null +++ b/donate/migrations/0003_donatecookiespage_donateinfopage.py @@ -0,0 +1,96 @@ +# Generated by Django 3.0.6 on 2020-06-02 17:04 + +import django.db.models.deletion +import wagtail.core.fields +import wagtailmetadata.models +from django.db import migrations, models + +import donate.models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0045_assign_unlock_grouppagepermission"), + ("wagtailimages", "0022_uploadedimage"), + ("donate", "0002_auto_20200601_2324"), + ] + + operations = [ + migrations.CreateModel( + name="DonateInfoPage", + 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", + ), + ), + ( + "body", + wagtail.core.fields.RichTextField(blank=True, verbose_name="obsah"), + ), + ( + "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": "Info",}, + bases=( + "wagtailcore.page", + donate.models.SubpageMixin, + wagtailmetadata.models.MetadataMixin, + models.Model, + ), + ), + migrations.CreateModel( + name="DonateCookiesPage", + 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", + ), + ), + ( + "body", + wagtail.core.fields.RichTextField(blank=True, verbose_name="obsah"), + ), + ( + "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": "Cookies",}, + bases=( + "wagtailcore.page", + donate.models.SubpageMixin, + wagtailmetadata.models.MetadataMixin, + models.Model, + ), + ), + ] diff --git a/donate/models.py b/donate/models.py index f8b874e4983f1d214ab5c25d9a315eeb60084744..156414f4d3b24abfdd4d2e98254fb428c1a8529f 100644 --- a/donate/models.py +++ b/donate/models.py @@ -28,9 +28,9 @@ class SubpageMixin: return self.search_image or self.root_page.get_meta_image() -def get_url(page, request, dest_page_type): +def get_url(page, dest_page_type): try: - return page.get_children().type(dest_page_type).live().get().get_url(request) + return page.get_children().type(dest_page_type).live().get().get_url() except Page.DoesNotExist: return "#" @@ -113,7 +113,12 @@ class DonateHomePage(Page, MetadataPageMixin): FieldPanel("matomo_id"), ] - subpage_types = ["donate.DonateRegionIndexPage", "donate.DonateProjectIndexPage"] + subpage_types = [ + "donate.DonateRegionIndexPage", + "donate.DonateProjectIndexPage", + "donate.DonateInfoPage", + "donate.DonateCookiesPage", + ] # flag for rendering anchor links in menu is_home = True @@ -125,13 +130,32 @@ class DonateHomePage(Page, MetadataPageMixin): def root_page(self): return self + @property + def cookies_page_url(self): + return get_url(self, DonateCookiesPage) + + @property + def info_page_url(self): + return get_url(self, DonateInfoPage) + + @property + def projects_page_url(self): + return get_url(self, DonateProjectIndexPage) + + @property + def regions_page_url(self): + return get_url(self, DonateRegionIndexPage) + + @property + def has_projects(self): + return self.get_descendants().type(DonateProjectPage).live().exists() + def get_context(self, request): context = super().get_context(request) context["regions"] = ( self.get_descendants().type(DonateRegionPage).live().specific() ) - context["regions_url"] = get_url(self, request, DonateRegionIndexPage) context["projects"] = ( self.get_descendants() @@ -140,7 +164,6 @@ class DonateHomePage(Page, MetadataPageMixin): .specific() .order_by("-donateprojectpage__date")[:3] ) - context["projects_url"] = get_url(self, request, DonateProjectIndexPage) return context @@ -355,3 +378,67 @@ class DonateProjectPage(Page, SubpageMixin, MetadataPageMixin): .order_by("-donateprojectpage__date")[:3] ) return context + + +class DonateCookiesPage(Page, SubpageMixin, MetadataPageMixin): + body = RichTextField("obsah", blank=True) + + content_panels = Page.content_panels + [ + FieldPanel("body", classname="full"), + ] + + promote_panels = [ + MultiFieldPanel( + [ + FieldPanel("slug"), + FieldPanel("seo_title"), + FieldPanel("search_description"), + ImageChooserPanel("search_image"), + HelpPanel(help.build(help.NO_SEO_TITLE, help.NO_SEARCH_IMAGE)), + ], + gettext_lazy("Common page configuration"), + ), + ] + + settings_panels = [] + + parent_page_types = ["donate.DonateHomePage"] + subpage_types = [] + + # flag for rendering anchor links in menu + is_home = False + + class Meta: + verbose_name = "Cookies" + + +class DonateInfoPage(Page, SubpageMixin, MetadataPageMixin): + body = RichTextField("obsah", blank=True) + + content_panels = Page.content_panels + [ + FieldPanel("body", classname="full"), + ] + + promote_panels = [ + MultiFieldPanel( + [ + FieldPanel("slug"), + FieldPanel("seo_title"), + FieldPanel("search_description"), + ImageChooserPanel("search_image"), + HelpPanel(help.build(help.NO_SEO_TITLE, help.NO_SEARCH_IMAGE)), + ], + gettext_lazy("Common page configuration"), + ), + ] + + settings_panels = [] + + parent_page_types = ["donate.DonateHomePage"] + subpage_types = [] + + # flag for rendering anchor links in menu + is_home = False + + class Meta: + verbose_name = "Info" diff --git a/donate/templates/donate/base.html b/donate/templates/donate/base.html index fa89b4f9d720b02ffee70d62bcd47218ef44a9cb..cebf0906f1ec822198961dfcc1343dd84fc22dab 100644 --- a/donate/templates/donate/base.html +++ b/donate/templates/donate/base.html @@ -74,35 +74,18 @@ <ul class="navbar-nav ml-auto"> <li class="nav-item"> {% if page.is_home %} - <a class="nav-link js-scroll-anchor" href="#top">Úvod</a> + <a class="nav-link js-scroll-anchor" href="#strana">Podpoř Piráty</a> {% else %} - <a class="nav-link" href="/#top">Úvod</a> + <a class="nav-link" href="/#strana">Podpoř Piráty</a> {% endif %} </li> + {% if page.root_page.has_projects %} <li class="nav-item"> - {% if page.is_home %} - <a class="nav-link js-scroll-anchor" href="#strana">Podpoř stranu</a> - {% else %} - <a class="nav-link" href="/#strana">Podpoř stranu</a> - {% endif %} - </li> - <li class="nav-item"> - {% if page.is_home %} - <a class="nav-link js-scroll-anchor" href="#projekty">Podpoř projekt</a> - {% else %} - <a class="nav-link" href="/#projekty">Podpoř projekt</a> - {% endif %} - </li> - <li class="nav-item"> - {% if page.is_home %} - <a class="nav-link js-scroll-anchor" href="#kraje">Podpoř kraj</a> - {% else %} - <a class="nav-link" href="/#kraje">Podpoř kraj</a> - {% endif %} + <a class="nav-link" href="{{ page.root_page.projects_page_url }}">Projekty a kampaně</a> </li> + {% endif %} <li class="nav-item"> - {# TODO #} - <a class="nav-link" href="#">Jak to funguje</a> + <a class="nav-link" href="{{ page.root_page.regions_page_url }}">Kraje</a> </li> </ul> <a href="https://www.pirati.cz/" class="d-block d-lg-none mb-3 header_link header_link--mobile" target="_blank" rel="noreferrer"><i class="icon-external-link mr-2" title="Ikona odkazu"></i>www.pirati.cz</a> @@ -176,11 +159,9 @@ <div class="row"> <div class="col-12 col-md-6 mb-3 mb-md-0"> <p class="mb-0">© {% now "Y" %} Piráti. Všechna práva vyhlazena.<br/>Sdílejte a nechte ostatní sdílet za stejných podmínek.</p> - <p>Vytvořil <a href="https://danielhlavacek.cz" target="_blank">Daniel Hlaváček</a></p> </div><!-- /column --> <div class="col-12 col-md-6 text-md-right"> - {# TODO #} - <p class="mb-0">Tento web využívá soubory cookies - <a href="#">více informací</a></p> + <p class="mb-0">Tento web využívá soubory cookies - <a href="{{ page.root_page.cookies_page_url }}">více informací</a></p> </div><!-- /column --> </div><!-- /row --> </div><!-- /container --> diff --git a/donate/templates/donate/donate_cookies_page.html b/donate/templates/donate/donate_cookies_page.html new file mode 100644 index 0000000000000000000000000000000000000000..6a9f9faed2f2b9955c1191e42d7865e632ca6dfe --- /dev/null +++ b/donate/templates/donate/donate_cookies_page.html @@ -0,0 +1,24 @@ +{% extends "donate/base.html" %} +{% load wagtailcore_tags %} + +{% block content %} + +<!-- CONTENT --> +<main role="main"> + + <section class="section--alternate region__header"> + <div class="container"> + <h1 class="lead heading">{{ page.title }}</h1> + </div> <!-- /container --> + </section> + + <section class="section--primary"> + <div class="container richtext"> + {{ page.body|richtext }} + </div> <!-- /container --> + </section> + +</main> +<!-- /CONTENT --> + +{% endblock %} diff --git a/donate/templates/donate/donate_home_page.html b/donate/templates/donate/donate_home_page.html index 805f00bb90f15aff947efae791a3c0dc0bd62dac..8ea76288b347adfe1dc296a9f6e7156386e58aa1 100644 --- a/donate/templates/donate/donate_home_page.html +++ b/donate/templates/donate/donate_home_page.html @@ -18,9 +18,7 @@ <a href="#strana" class="btn btn-dark btn-lg js-scroll-anchor">Chci darovat <i class="icon-chevron-right ml-2"></i></a> </div><!-- /column --> <div class="col-12 col-md-auto"> - <div class="uvod__image-wrapper"> - <a href="https://www.pirati.cz" target="_blank" rel="noreferrer"><img data-src="{% static "donate/img/logo_napis.png" %}" class="lazyload img-fluid" alt="Logo pirátské strany"></a> - </div><!-- /uvod__image-wrapper --> + <a href="{{ page.info_page_url }}" class="btn btn-dark btn-lg">Chci vědět více <i class="icon-chevron-right ml-2"></i></a> </div><!-- /column --> </div> <!-- /row --> </div><!-- /column --> @@ -45,15 +43,10 @@ <div class="donate-form__icon"> <img data-src="{% static "donate/img/donate.png" %}" class="lazyload img-fluid" alt="Ikona daru"> </div><!-- /donate-form__icon --> - <div class="donate-form__left-content"> - <h2 class="lead mb-0">Darovací formulář</h2> - </div><!-- /donate-form__left-content --> </div><!-- /donate-form__left --> <div class="donate-form__right"> - <p class="mb-4">Pokud nás chcete podpořit, zadejte prosím částku a vyberte mezi měsíčním nebo jednorázovým příspěvkem. Po kliknutí na tlačítko <strong>Darovat</strong> budete - přesměrováni na formulář, kde vyplníte potřebné údaje a vyberete způsob převodu financí.</p> - <form id="js-donate-form"> - <div class="form-group row mb-4 align-items-center"> + <form id="js-donate-form"> + <div class="form-group row mb-4 align-items-center"> <legend class="col-form-label col-md-4 col-form-label-lg">Částka</legend> <div class="col-md-8"> <div class="custom-control custom-radio custom-control-inline"> @@ -70,11 +63,11 @@ </div> <div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="amount4" name="amount" value="custom" class="custom-control-input"> - <label class="custom-control-label col-form-label-lg" for="amount4">Jiná</label> + <label class="custom-control-label col-form-label-lg" for="amount4">Jiná částka</label> </div> </div> - </div> - <div class="form-group row mb-4 align-items-center" id="js-custom-amount-input" style="display: none;"> + </div> + <div class="form-group row mb-4 align-items-center" id="js-custom-amount-input" style="display: none;"> <div class="offset-md-4 col-md-8"> <div class="input-group input-group-lg mb-3 custom-amount"> <input type="number" class="form-control" id="customamount" name="customamount" placeholder="1000" aria-describedby="customamount-currency"> @@ -83,8 +76,8 @@ </div> </div> </div> - </div> - <div class="form-group row mb-4 align-items-center"> + </div> + <div class="form-group row mb-4 align-items-center"> <legend class="col-form-label col-md-4 col-form-label-lg">Typ příspěvku</legend> <div class="col-md-8"> <div class="custom-control custom-radio custom-control-inline"> @@ -96,19 +89,20 @@ <label class="custom-control-label col-form-label-lg" for="type2">Jednorázový</label> </div> </div> - </div> - <div class="form-group row mb-0"> - <div class="col-12"> - <button type="submit" class="btn btn-success btn-lg">Darovat</button> </div> - </div> - </form> + <div class="form-group row mb-0"> + <div class="col-12"> + <button type="submit" class="btn btn-success btn-lg">Darovat</button> + </div> + </div> + </form> </div><!-- /donate-form__right --> </div><!-- /donate-form --> </div> <!-- /container --> </section> + {% if page.has_projects %} <section class="section--alternate" id="projekty"> <div class="container"> @@ -122,11 +116,14 @@ </div> <!-- /row --> - <a href="{{ projects_url }}" class="btn btn-dark btn-lg my-2">Všechny projekty <i class="icon-chevron-right ml-2"></i></a> + <a href="{{ page.projects_page_url }}" class="btn btn-dark btn-lg my-2">Všechny projekty a kampaně <i class="icon-chevron-right ml-2"></i></a> </div> <!-- /container --> </section> <section class="section--primary" id="kraje"> + {% else %} + <section class="section--alternate" id="kraje"> + {% endif %} <div class="container"> <h2 class="lead page-subheading mb-4">{{ page.region_title }}</h2> @@ -138,7 +135,7 @@ {% endfor %} </div> <!-- /row --> - <a href="{{ regions_url }}" class="btn btn-dark btn-lg my-2">Všechny kraje <i class="icon-chevron-right ml-2"></i></a> + <a href="{{ page.regions_page_url }}" class="btn btn-dark btn-lg my-2">Všechny kraje <i class="icon-chevron-right ml-2"></i></a> </div> <!-- /container --> </section> diff --git a/donate/templates/donate/donate_info_page.html b/donate/templates/donate/donate_info_page.html new file mode 100644 index 0000000000000000000000000000000000000000..6a9f9faed2f2b9955c1191e42d7865e632ca6dfe --- /dev/null +++ b/donate/templates/donate/donate_info_page.html @@ -0,0 +1,24 @@ +{% extends "donate/base.html" %} +{% load wagtailcore_tags %} + +{% block content %} + +<!-- CONTENT --> +<main role="main"> + + <section class="section--alternate region__header"> + <div class="container"> + <h1 class="lead heading">{{ page.title }}</h1> + </div> <!-- /container --> + </section> + + <section class="section--primary"> + <div class="container richtext"> + {{ page.body|richtext }} + </div> <!-- /container --> + </section> + +</main> +<!-- /CONTENT --> + +{% endblock %} diff --git a/donate/templates/donate/donate_project_index_page.html b/donate/templates/donate/donate_project_index_page.html index 02690ed82bf815bdbf8003b36c4f7ed8e08d9b33..bc2ae1c1eaa9fa51777515d854597ee72c97dd7a 100644 --- a/donate/templates/donate/donate_project_index_page.html +++ b/donate/templates/donate/donate_project_index_page.html @@ -12,6 +12,8 @@ {% for project in projects %} {% include "donate/project_snippet.html" %} + {% empty %} + <div class="col"><p>Momentálně nejsou žádné aktivní projekty a kampaně.</p></div> {% endfor %} </div> <!-- /row --> diff --git a/donate/templates/donate/donate_project_page.html b/donate/templates/donate/donate_project_page.html index 6584c54dea453cef39e61462c3afa67e301b941b..0abf52d6e241a7b5d19bb02734b9d74a2ad19cfe 100644 --- a/donate/templates/donate/donate_project_page.html +++ b/donate/templates/donate/donate_project_page.html @@ -67,14 +67,6 @@ <h5><strong>40 dní</strong> do konce</h5> <hr> {% endcomment %} - - <p class="mb-2"> - Pokud chcete podpořit tento projekt, zadejte prosím částku a vyberte - mezi měsíčním nebo jednorázovým příspěvkem. Po kliknutí na tlačítko - <strong>Darovat</strong> budete přesměrováni na formulář, kde - vyplníte potřebné údaje a vyberete způsob převodu financí. - </p> - <form id="js-donate-form"> <div class="form-group row mb-2 align-items-center"> <legend class="col-form-label col-md-12 col-form-label-lg">Částka</legend> @@ -93,7 +85,7 @@ </div> <div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="amount4" name="amount" value="custom" class="custom-control-input"> - <label class="custom-control-label col-form-label-lg" for="amount4">Jiná</label> + <label class="custom-control-label col-form-label-lg" for="amount4">Jiná částka</label> </div> </div> </div> diff --git a/donate/templates/donate/donate_region_page.html b/donate/templates/donate/donate_region_page.html index b83df6f68057f14b9f3652ff934dad6a81781213..8e1fa454b47f1fd4b7fb52f9b787fc318f11d632 100644 --- a/donate/templates/donate/donate_region_page.html +++ b/donate/templates/donate/donate_region_page.html @@ -30,11 +30,6 @@ </div><!-- /region-donate-form__left --> <div class="region-donate-form__right"> - <p class="mb-2"> - Pokud chcete podpořit tento kraj, zadejte prosím částku a vyberte mezi měsíčním - nebo jednorázovým příspěvkem. Po kliknutí na tlačítko <strong>Darovat</strong> budete - přesměrováni na formulář, kde vyplníte potřebné údaje a vyberete způsob převodu financí. - </p> <form id="js-donate-form"> <div class="form-group row mb-2 align-items-center"> <legend class="col-form-label col-md-12 col-form-label-lg">Částka</legend> @@ -53,7 +48,7 @@ </div> <div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="amount4" name="amount" value="custom" class="custom-control-input"> - <label class="custom-control-label col-form-label-lg" for="amount4">Jiná</label> + <label class="custom-control-label col-form-label-lg" for="amount4">Jiná částka</label> </div> </div> </div>