From 7c0d5b80b78902978f3b7388a80e1d2a3861045d 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 16:18:24 +0200
Subject: [PATCH] [ADD] main simple page

---
 ..._mainarticlepage_content_mainsimplepage.py | 135 ++++++++++++++++++
 main/models.py                                |  33 ++++-
 .../main/blocks/rich_text_block.html          |   7 +
 main/templates/main/main_article_page.html    |  10 --
 main/templates/main/main_simple_page.html     |  11 ++
 5 files changed, 185 insertions(+), 11 deletions(-)
 create mode 100644 main/migrations/0028_alter_mainarticlepage_content_mainsimplepage.py
 create mode 100644 main/templates/main/blocks/rich_text_block.html
 create mode 100644 main/templates/main/main_simple_page.html

diff --git a/main/migrations/0028_alter_mainarticlepage_content_mainsimplepage.py b/main/migrations/0028_alter_mainarticlepage_content_mainsimplepage.py
new file mode 100644
index 00000000..f8c81fcd
--- /dev/null
+++ b/main/migrations/0028_alter_mainarticlepage_content_mainsimplepage.py
@@ -0,0 +1,135 @@
+# Generated by Django 4.0.7 on 2022-08-31 14:14
+
+import django.db.models.deletion
+import wagtail.blocks
+import wagtail.documents.blocks
+import wagtail.fields
+import wagtail.images.blocks
+import wagtailmetadata.models
+from django.db import migrations, models
+
+import shared.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("wagtailimages", "0024_index_image_file_hash"),
+        ("wagtailcore", "0069_log_entry_jsonfield"),
+        ("main", "0027_alter_mainpersonpage_people"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="mainarticlepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            template="main/blocks/rich_text_block.html"
+                        ),
+                    ),
+                    (
+                        "quote",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("quote", wagtail.blocks.CharBlock(label="Citace")),
+                                (
+                                    "autor_name",
+                                    wagtail.blocks.CharBlock(label="Jméno autora"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "download",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "file",
+                                    wagtail.documents.blocks.DocumentChooserBlock(
+                                        label="Stáhnutelný soubor"
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "image",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek"
+                                    ),
+                                ),
+                                (
+                                    "href",
+                                    wagtail.blocks.URLBlock(label="Odkaz k textu"),
+                                ),
+                                ("text", wagtail.blocks.CharBlock(label="Text")),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=None,
+                verbose_name="Článek",
+            ),
+        ),
+        migrations.CreateModel(
+            name="MainSimplePage",
+            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",
+                    ),
+                ),
+                (
+                    "content",
+                    wagtail.fields.StreamField(
+                        [
+                            (
+                                "text",
+                                wagtail.blocks.RichTextBlock(
+                                    template="main/blocks/rich_text_block.html"
+                                ),
+                            )
+                        ],
+                        blank=True,
+                        use_json_field=None,
+                        verbose_name="Hlavní 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": "Jednoduchá stárnka",
+            },
+            bases=(
+                shared.models.SubpageMixin,
+                wagtailmetadata.models.WagtailImageMetadataMixin,
+                "wagtailcore.page",
+                models.Model,
+            ),
+        ),
+    ]
diff --git a/main/models.py b/main/models.py
index 6d511de2..8a8b3474 100644
--- a/main/models.py
+++ b/main/models.py
@@ -146,6 +146,7 @@ class MainHomePage(
         "main.MainProgramPage",
         "main.MainPeoplePage",
         "main.MainPersonPage",
+        "main.MainSimplePage",
         "main.MainContactPage",
     ]
 
@@ -425,7 +426,7 @@ class MainArticlePage(
 
     content = StreamField(
         [
-            ("text", RichTextBlock(template="")),
+            ("text", RichTextBlock(template="main/blocks/rich_text_block.html")),
             ("quote", blocks.ArticleQuoteBlock()),
             ("download", blocks.ArticleDownloadBlock()),
             ("image", blocks.ArticleImageBlock()),
@@ -651,6 +652,36 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
         )
 
 
+class MainSimplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
+    ### FIELDS
+
+    # content
+    content = StreamField(
+        [
+            ("text", RichTextBlock(template="main/blocks/rich_text_block.html")),
+        ],
+        verbose_name="Hlavní obsah",
+        blank=True,
+    )
+
+    ### PANELS
+
+    content_panels = Page.content_panels + [FieldPanel("content")]
+
+    promote_panels = make_promote_panels()
+
+    settings_panels = []
+
+    ### RELATIONS
+
+    parent_page_types = ["main.MainHomePage"]
+    subpage_types = []
+
+    ### OTHERS
+    class Meta:
+        verbose_name = "Jednoduchá stárnka"
+
+
 class MainContactPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
     ### FIELDS
 
diff --git a/main/templates/main/blocks/rich_text_block.html b/main/templates/main/blocks/rich_text_block.html
new file mode 100644
index 00000000..37b5287c
--- /dev/null
+++ b/main/templates/main/blocks/rich_text_block.html
@@ -0,0 +1,7 @@
+<div class="grid-container mb-2 lg:mb-12">
+  <div class="grid-content">
+    <p class="3xl:text-lg">
+      {{ self }}
+    </p>
+  </div>
+</div>
diff --git a/main/templates/main/main_article_page.html b/main/templates/main/main_article_page.html
index ab4e986a..e09f070d 100644
--- a/main/templates/main/main_article_page.html
+++ b/main/templates/main/main_article_page.html
@@ -31,17 +31,7 @@
       <div class="hidden grid-right-side h-full bg-grey-150 right-tab xl:block"></div>
     </div>
     {% for block in page.content %}
-      {% if block.block_type == 'text' %}
-        <div class="grid-container mb-2 lg:mb-12">
-          <div class="grid-content">
-            <p class="3xl:text-lg">
-              {{ block.value.source|richtext }}
-            </p>
-          </div>
-        </div>
-      {% else %}
         {% include_block block %}
-      {% endif %}
     {% endfor %}
   </main>
   {% include 'main/includes/newsletter_section.html' %}
diff --git a/main/templates/main/main_simple_page.html b/main/templates/main/main_simple_page.html
new file mode 100644
index 00000000..1112fa96
--- /dev/null
+++ b/main/templates/main/main_simple_page.html
@@ -0,0 +1,11 @@
+{% extends "main/base.html" %}
+{% load wagtailcore_tags %}
+
+{% block content %}
+  {% include 'main/includes/layout/simple_page_header.html' %}
+  <main role="main" class="mb-10 xl:mb-32">
+    {% for block in page.content %}
+      {% include_block block %}
+    {% endfor %}
+  </main>
+{% endblock %}
-- 
GitLab