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