diff --git a/donate/blocks.py b/donate/blocks.py index 421df84b493c7803c116d1cb5041e0a834711647..1b8ae3c934bdc0757d394ff2eab504aa96cdae8e 100644 --- a/donate/blocks.py +++ b/donate/blocks.py @@ -13,6 +13,14 @@ from wagtail.images.blocks import ImageChooserBlock from donate.constants import RICH_TEXT_FEATURES +class CustomLinkBlock(StructBlock): + text = CharBlock(label="Nadpis") + url = URLBlock(label="Odkaz") + + class Meta: + label = "Extra odkaz" + + class ProjectIndexBlock(StructBlock): page = PageChooserBlock( label="Stránka se seznamem", diff --git a/donate/migrations/0042_remove_donatehomepage_custom_url_1_and_more.py b/donate/migrations/0042_remove_donatehomepage_custom_url_1_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..a39db0a759524c28ee11cc056d4c386b71b77c8e --- /dev/null +++ b/donate/migrations/0042_remove_donatehomepage_custom_url_1_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 4.1.10 on 2024-01-30 16:54 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('donate', '0041_donateprojectpage_is_sticky_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='donatehomepage', + name='custom_url_1', + ), + migrations.RemoveField( + model_name='donatehomepage', + name='custom_url_1_text', + ), + migrations.RemoveField( + model_name='donatehomepage', + name='custom_url_2', + ), + migrations.RemoveField( + model_name='donatehomepage', + name='custom_url_2_text', + ), + migrations.AddField( + model_name='donatehomepage', + name='custom_links', + field=wagtail.fields.StreamField([('custom_link', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(label='Odkaz'))], label='Vlastní odkaz'))], blank=True, use_json_field=True, verbose_name='Vlastní odkazy'), + ), + ] diff --git a/donate/models.py b/donate/models.py index 7d5dbc19a5e9a2af85de5355dc92b3ff95d195fc..3a9221cf81fd8c876802b8e859ab54feece2b524 100644 --- a/donate/models.py +++ b/donate/models.py @@ -32,6 +32,7 @@ from tuning import admin_help from .blocks import ( CrowdfundingRewardBlock, CustomContentBlock, + CustomLinkBlock, DistrictDonationBlock, PartySupportFormBlock, ProjectIndexBlock, @@ -140,14 +141,14 @@ class DonateHomePage( related_name="FAQ", verbose_name="Stránka s FAQ", ) - custom_url_1 = models.URLField("Vlastní odkaz 1", blank=True, null=True) - custom_url_1_text = models.CharField( - "Text vlastního odkazu 1", max_length=128, blank=True - ) - custom_url_2 = models.URLField("Vlastní odkaz 2", blank=True, null=True) - custom_url_2_text = models.CharField( - "Text vlastního odkazu 2", max_length=128, blank=True + + custom_links = StreamField( + [("custom_link", CustomLinkBlock(label="Vlastní odkaz"))], + verbose_name="Vlastní odkazy", + blank=True, + use_json_field=True, ) + facebook = models.URLField("Facebook URL", blank=True, null=True) instagram = models.URLField("Instagram URL", blank=True, null=True) twitter = models.URLField("Twitter URL", blank=True, null=True) @@ -175,12 +176,7 @@ class DonateHomePage( settings_panels = [ MultiFieldPanel( - [ - FieldPanel("custom_url_1"), - FieldPanel("custom_url_1_text"), - FieldPanel("custom_url_2"), - FieldPanel("custom_url_2_text"), - ], + [FieldPanel("custom_links")], "vlastní odkazy", ), MultiFieldPanel( diff --git a/donate/templates/donate/base.html b/donate/templates/donate/base.html index 48942df14bfab6c72e8ad7fb88a1c6e972a2688f..1393e5a4c4d756d05df4dba00533d534310e651d 100644 --- a/donate/templates/donate/base.html +++ b/donate/templates/donate/base.html @@ -48,29 +48,17 @@ {% block header %} <div class="pre-navbar d-none d-lg-flex" style="background:black;"> <div class="container d-flex justify-content-end"> - {% if page.root_page.custom_url_1 and page.root_page.custom_url_1_text %} + {% for custom_link in page.root_page.custom_links %} <a - href="{{ page.root_page.custom_url_1 }}" + href="{{ custom_link.value.url }}" class="header_link header_link--desktop mr-4 py-2" target="_blank" rel="noreferrer" > <i class="icon-external-link mr-2" title="Ikona odkazu"></i> - {{ page.root_page.custom_url_1_text }} + {{ custom_link.value.text }} </a> - {% endif %} - - {% if page.root_page.custom_url_2 and page.root_page.custom_url_2_text %} - <a - href="{{ page.root_page.custom_url_2 }}" - class="header_link header_link--desktop mr-4 py-2" - target="_blank" - rel="noreferrer" - > - <i class="icon-external-link mr-2" title="Ikona odkazu"></i> - {{ page.root_page.custom_url_2_text }} - </a> - {% endif %} + {% endfor %} </div> </div> @@ -102,29 +90,17 @@ {% endfor %} </ul> - {% if page.root_page.custom_url_1 and page.root_page.custom_url_1_text %} - <a - href="{{ page.root_page.custom_url_1 }}" - 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> - {{ page.root_page.custom_url_1_text }} - </a> - {% endif %} - - {% if page.root_page.custom_url_2 and page.root_page.custom_url_2_text %} + {% for custom_link in page.root_page.custom_links %} <a - href="{{ page.root_page.custom_url_2 }}" + href="{{ custom_link.value.url }}" 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> - {{ page.root_page.custom_url_2_text }} + {{ custom_link.value.text }} </a> - {% endif %} + {% endfor %} </div><!-- /navigation --> </div><!-- /container --> </nav>