From 042772bdef909212a85e1b73bdab49069e4301ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Farka?= <stepanfarka11@gmail.com>
Date: Wed, 31 Aug 2022 13:30:11 +0200
Subject: [PATCH] [ADD] newsletter into front

---
 main/models.py                                |  6 +++--
 .../buttons/from-button-animated.mustache     |  8 +++++++
 .../organisms/newsletter-section.mustache     |  8 ++++---
 .../main/includes/form_button_animated.html   |  8 +++++++
 .../main/includes/newsletter_section.html     | 22 ++++++++++++-------
 5 files changed, 39 insertions(+), 13 deletions(-)
 create mode 100644 main/styleguide/source/_patterns/atoms/buttons/from-button-animated.mustache
 create mode 100644 main/templates/main/includes/form_button_animated.html

diff --git a/main/models.py b/main/models.py
index 01849262b..3565a1017 100644
--- a/main/models.py
+++ b/main/models.py
@@ -18,7 +18,7 @@ from wagtail.admin.edit_handlers import (
     ObjectList,
     TabbedInterface,
 )
-from wagtail.contrib.routable_page.models import route
+from wagtail.contrib.routable_page.models import RoutablePageMixin, route
 from wagtail.core.blocks import CharBlock, PageChooserBlock, RichTextBlock
 from wagtail.core.fields import RichTextField, StreamField
 from wagtail.core.models import Page
@@ -48,7 +48,9 @@ class ARTICLE_TYPES(models.IntegerChoices):
     PRESS_RELEASE = 2, "Tisková zpráva"
 
 
-class MainHomePage(MenuMixin, ExtendedMetadataHomePageMixin, MetadataPageMixin, Page):
+class MainHomePage(
+    MenuMixin, RoutablePageMixin, ExtendedMetadataHomePageMixin, MetadataPageMixin, Page
+):
     # header
 
     contact_newcomers = models.URLField(
diff --git a/main/styleguide/source/_patterns/atoms/buttons/from-button-animated.mustache b/main/styleguide/source/_patterns/atoms/buttons/from-button-animated.mustache
new file mode 100644
index 000000000..99773ad98
--- /dev/null
+++ b/main/styleguide/source/_patterns/atoms/buttons/from-button-animated.mustache
@@ -0,0 +1,8 @@
+<button type="submit" class="btn btn__slide__wrap {{ classes }}">
+  <span class="btn text-lg bg-black px-1 text-white lg:text-base">
+    {{ btn-text }}
+  </span>
+  <span class="btn text-lg bg-white px-1 text-black lg:text-base">
+    {{ btn-text }}
+  </span>
+</button>
diff --git a/main/styleguide/source/_patterns/organisms/newsletter-section.mustache b/main/styleguide/source/_patterns/organisms/newsletter-section.mustache
index afad100b8..0a4ddaf75 100644
--- a/main/styleguide/source/_patterns/organisms/newsletter-section.mustache
+++ b/main/styleguide/source/_patterns/organisms/newsletter-section.mustache
@@ -8,9 +8,11 @@
           </span>
       <h5 class="newsletter-grid__main-text font-alt text-6xl xl:text-7xl uppercase">Odebírej náš newsletter</h5>
       <div class="newsletter-grid__input flex flex-col items-start">
-        {{> atoms-form-input(placeholder: "Tvůj email", classes: "mb-3 w-full") }}
-        {{> atoms-form-checkbox(label: "Souhlasím se zpracováním osobních údajů", classes: "mb-3") }}
-        {{> atoms-button-animated(btn-text: "Odebírat") }}
+        <form method="post" action=".">
+          {{> atoms-form-input(placeholder: "Tvůj email", classes: "mb-3 w-full") }}
+          {{> atoms-form-checkbox(label: "Souhlasím se zpracováním osobních údajů", classes: "mb-3") }}
+          {{> atoms-form-button-animated(btn-text: "Odebírat") }}
+        </form>
       </div>
     </div>
   </div>
diff --git a/main/templates/main/includes/form_button_animated.html b/main/templates/main/includes/form_button_animated.html
new file mode 100644
index 000000000..b71a80dbc
--- /dev/null
+++ b/main/templates/main/includes/form_button_animated.html
@@ -0,0 +1,8 @@
+<button type="submit" class="btn btn__slide__wrap {{ extra_classes }}">
+  <span class="btn text-lg bg-black text-white px-1 lg:text-base">
+    {{ btn_text | default_if_none:"Číst dále" }}
+  </span>
+  <span class="btn text-lg bg-white text-black px-1 lg:text-base">
+    {{ btn_text | default_if_none:"Číst dále" }}
+  </span>
+</button>
diff --git a/main/templates/main/includes/newsletter_section.html b/main/templates/main/includes/newsletter_section.html
index 5dd71146d..2ab535779 100644
--- a/main/templates/main/includes/newsletter_section.html
+++ b/main/templates/main/includes/newsletter_section.html
@@ -1,7 +1,8 @@
 {% load static %}
 
 <div class="section-clip bg-cover bg-no-repeat flex pb-32 xl:pb-0 xl:min-h-screen relative z-10">
-  <img src="{% static 'main/images/background-images/bg-bartos-newsletter.jpg' %}" alt="" class="absolute h-full w-full object-cover">
+  <img src="{% static 'main/images/background-images/bg-bartos-newsletter.jpg' %}" alt=""
+       class="absolute h-full w-full object-cover">
   <div class="grid-container mt-20 xl:mt-0 xl:items-center z-10">
     <div class="grid-full newsletter-grid">
       <i class="newsletter-grid__icon ico--anchor text-7xl xl:text-9xl xl:w-full"></i>
@@ -10,13 +11,18 @@
           </span>
       <h5 class="newsletter-grid__main-text font-alt text-6xl xl:text-7xl uppercase">Odebírej náš newsletter</h5>
       <div class="newsletter-grid__input flex flex-col items-start">
-        <input type="text" class="text-input bg-white form-field__control mb-3 w-full" value=""
-               placeholder="Tvůj email"/>
-        <div class="checkbox form-field__control flex items-center mb-3">
-          <input type="checkbox" id="checkbox_1">
-          <label class="text-xs font-alt font-light" for="checkbox_1">"Souhlasím se zpracováním osobních údajů"</label>
-        </div>
-        {% include 'main/includes/button_animated.html' with btn_text="Odebírat" %}
+        <form method="post" action="{{ page.root_page.newsletter_subscribe_url }}">
+          {% csrf_token %}
+          <input type="hidden" name="return_page_id" value="{{ page.id }}">
+          <input type="email" name="email" class="text-input bg-white form-field__control mb-3 w-full" value="" required=""
+                 placeholder="Tvůj email"/>
+          <div class="checkbox form-field__control flex items-center mb-3">
+            <input type="checkbox" id="checkbox_1" name="confirmed" required="">
+            <label class="text-xs font-alt font-light" for="checkbox_1">"Souhlasím se zpracováním osobních
+              údajů"</label>
+          </div>
+          {% include 'main/includes/form_button_animated.html' with btn_text="Odebírat" %}
+        </form>
       </div>
     </div>
   </div>
-- 
GitLab