diff --git a/donate/blocks.py b/donate/blocks.py index 9bbeb34badab7b9b049ea7be667c4f5a51ec0e40..e69ae07b892a4cfa748d654ac97ae4b500fdc7f7 100644 --- a/donate/blocks.py +++ b/donate/blocks.py @@ -1,4 +1,12 @@ -from wagtail.blocks import CharBlock, DateBlock, IntegerBlock, ListBlock, StructBlock +from wagtail.blocks import ( + CharBlock, + DateBlock, + IntegerBlock, + ListBlock, + RichTextBlock, + StructBlock, + URLBlock, +) from wagtail.images.blocks import ImageChooserBlock @@ -21,3 +29,14 @@ class CrowdfundingRewardBlock(StructBlock): template = "donate/blocks/crowdfunding_reward_block.html" icon = "pick" label = "Odměna" + + +class CustomContentBlock(StructBlock): + title = CharBlock(label="Nadpis") + content = RichTextBlock(label="Obsah") + link = URLBlock(label="Odkaz") + + class Meta: + template = "donate/blocks/custom_content_block.html" + icon = "doc-full" + label = "Obecný blok" diff --git a/donate/migrations/0027_donatehomepage_custom_blocks.py b/donate/migrations/0027_donatehomepage_custom_blocks.py new file mode 100644 index 0000000000000000000000000000000000000000..af574911edc11fba038313809fd7278305826eae --- /dev/null +++ b/donate/migrations/0027_donatehomepage_custom_blocks.py @@ -0,0 +1,38 @@ +# Generated by Django 4.1.8 on 2023-06-13 22:19 + +import wagtail.blocks +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("donate", "0026_donateprojectpage_until"), + ] + + operations = [ + migrations.AddField( + model_name="donatehomepage", + name="custom_blocks", + field=wagtail.fields.StreamField( + [ + ( + "content", + wagtail.blocks.StructBlock( + [ + ("title", wagtail.blocks.CharBlock(label="Nadpis")), + ( + "content", + wagtail.blocks.RichTextBlock(label="Obsah"), + ), + ("link", wagtail.blocks.URLBlock(label="Odkaz")), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Obecné bloky", + ), + ), + ] diff --git a/donate/models.py b/donate/models.py index 6a2adcf0cc7e2103350e5e1f39a3d9dd1db979a7..1b908295ff6885880b3374e32444e5f7c9a55d86 100644 --- a/donate/models.py +++ b/donate/models.py @@ -27,7 +27,7 @@ from shared.models import ( from shared.utils import get_subpage_url, make_promote_panels from tuning import admin_help -from .blocks import CrowdfundingRewardBlock +from .blocks import CrowdfundingRewardBlock, CustomContentBlock from .forms import DonateForm from .utils import get_donated_amount_from_api @@ -128,6 +128,13 @@ class DonateHomePage( # regions section region_title = models.CharField("podpoř kraj nadpis", max_length=250, blank=True) region_body = models.TextField("podpoř kraj popis", blank=True) + # custom section + custom_blocks = StreamField( + [("content", CustomContentBlock())], + blank=True, + use_json_field=True, + verbose_name="Obecné bloky", + ) # settings custom_url_1 = models.URLField("Vlastní odkaz 1", blank=True, null=True) custom_url_1_text = models.CharField( @@ -173,6 +180,7 @@ class DonateHomePage( [FieldPanel("region_title"), FieldPanel("region_body")], "podpoř kraj", ), + FieldPanel("custom_blocks"), ] promote_panels = make_promote_panels(admin_help.build(admin_help.IMPORTANT_TITLE)) diff --git a/donate/templates/donate/blocks/custom_content_block.html b/donate/templates/donate/blocks/custom_content_block.html new file mode 100644 index 0000000000000000000000000000000000000000..09f278dd46d83d1df4803d5a619d18cecd642745 --- /dev/null +++ b/donate/templates/donate/blocks/custom_content_block.html @@ -0,0 +1,9 @@ +{% load wagtailcore_tags wagtailimages_tags %} + +<div class="container mt-5"> + <h2 class="lead page-subheading mb-4">{{ self.title }}</h2> + <p class="mb-4"> + {{ self.content|richtext }} + </p> + <a href="{{ self.link }}" class="btn btn-dark btn-lg my-2">Chci vědět více <i class="icon-chevron-right ml-2"></i></a> +</div> diff --git a/donate/templates/donate/donate_home_page.html b/donate/templates/donate/donate_home_page.html index bff9be7f72d4b9284e3da3e0b4b6b9f4b0bc0c8e..d335a2368063b8f972da1c754ee4e82e39f7740b 100644 --- a/donate/templates/donate/donate_home_page.html +++ b/donate/templates/donate/donate_home_page.html @@ -132,6 +132,9 @@ </div> <!-- /row --> </div> <!-- /container --> + {% for content in page.custom_blocks %} + {% include_block content %} + {% endfor %} </section> </main>