Skip to content
Snippets Groups Projects
Verified Commit aed77072 authored by Alexa Valentová's avatar Alexa Valentová
Browse files

migrate blocks

parent e7993ff3
No related branches found
No related tags found
2 merge requests!994Release,!988Redesign
Pipeline #18369 passed
This commit is part of merge request !994. Comments created here will be created in the context of that merge request.
Showing
with 6288 additions and 220 deletions
...@@ -4,7 +4,7 @@ import django.db.models.deletion ...@@ -4,7 +4,7 @@ import django.db.models.deletion
import wagtailmetadata.models import wagtailmetadata.models
from django.db import migrations, models from django.db import migrations, models
import shared.models.base import shared.models.legacy
class Migration(migrations.Migration): class Migration(migrations.Migration):
...@@ -57,7 +57,7 @@ class Migration(migrations.Migration): ...@@ -57,7 +57,7 @@ class Migration(migrations.Migration):
}, },
bases=( bases=(
wagtailmetadata.models.WagtailImageMetadataMixin, wagtailmetadata.models.WagtailImageMetadataMixin,
shared.models.base.SubpageMixin, shared.models.main.SubpageMixin,
"wagtailcore.page", "wagtailcore.page",
models.Model, models.Model,
), ),
......
...@@ -5,7 +5,6 @@ import wagtail ...@@ -5,7 +5,6 @@ import wagtail
from django.db import migrations, models from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
("district", "0144_remove_districthomepage_custom_logo_and_more"), ("district", "0144_remove_districthomepage_custom_logo_and_more"),
......
# Generated by Django 5.0.4 on 2024-05-13 09:39 # Generated by Django 5.0.4 on 2024-05-13 09:39
import wagtail.blocks
import wagtail.documents.blocks
import wagtail.fields
from django.db import migrations, models from django.db import migrations, models
...@@ -25,45 +22,4 @@ class Migration(migrations.Migration): ...@@ -25,45 +22,4 @@ class Migration(migrations.Migration):
verbose_name="Ukázat obrázek v textu", verbose_name="Ukázat obrázek v textu",
), ),
), ),
migrations.AlterField(
model_name="districtarticlepage",
name="content",
field=wagtail.fields.StreamField(
[
(
"text",
wagtail.blocks.RichTextBlock(
template="styleguide2/includes/atoms/text/prose_richtext.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"
),
)
]
),
),
],
blank=True,
verbose_name="Článek",
),
),
] ]
...@@ -5,12 +5,7 @@ from django.db import migrations ...@@ -5,12 +5,7 @@ from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
("district", "0164_auto_20240512_1354"), ("district", "0161_auto_20240513_1733"),
] ]
operations = [ operations = []
migrations.RemoveField(
model_name="districthomepage",
name="show_calendar_on_hp",
),
]
# Generated by Django 5.0.4 on 2024-05-16 12:31 # Generated by Django 5.0.4 on 2024-05-16 12:31
import wagtail
from django.db import migrations from django.db import migrations
from wagtail.blocks import RichTextBlock import wagtail
from wagtail.models import Page
from shared.blocks import MainButtonBlock, MainButtonGroupBlock
def migrate_custom_page_header_blocks(apps, schema_editor):
DistrictCustomPage = apps.get_model("district", "DistrictCustomPage")
apps.get_model("wagtailimages", "Image")
for page in DistrictCustomPage.objects.all():
for block in page.content.get_prep_value():
if block["type"] != "image_banner":
continue
for content in block["value"]["content"]:
if content["type"] == "button_group":
buttons = []
for button in content["value"]["buttons"]:
buttons.append(
MainButtonBlock().to_python(
{
"button_link": (
button["value"]["link"]
if button["value"]["link"]
else (
(
Page.objects.filter(
id=button["value"]["page"]
)
.first()
.full_url
)
if button["value"]["page"]
else None
)
),
"button_text": button["value"]["title"],
}
)
)
page.new_content.append(
(
"button_group",
MainButtonGroupBlock().to_python({"buttons": buttons}),
)
)
if content["type"] == "button":
page.new_content.append(
(
"button",
MainButtonBlock().to_python(
{
"button_link": (
content["value"]["link"]
if content["value"]["link"]
else (
(
Page.objects.filter(
id=content["value"]["page"]
)
.first()
.full_url
)
if content["value"]["page"]
else None
)
),
"button_text": content["value"]["title"],
}
),
)
)
if content["type"] == "text":
page.new_content.append(
("text", RichTextBlock().to_python(content["value"]))
)
page.save()
class Migration(migrations.Migration): class Migration(migrations.Migration):
...@@ -154,5 +71,5 @@ class Migration(migrations.Migration): ...@@ -154,5 +71,5 @@ class Migration(migrations.Migration):
verbose_name="Obsah", verbose_name="Obsah",
), ),
), ),
migrations.RunPython(migrate_custom_page_header_blocks), # migrations.RunPython(migrate_custom_page_header_blocks),
] ]
...@@ -4,26 +4,25 @@ from django.db import migrations ...@@ -4,26 +4,25 @@ from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('district', '0191_delete_districtpersontag'), ("district", "0191_delete_districtpersontag"),
] ]
operations = [ operations = [
migrations.RemoveField( migrations.RemoveField(
model_name='districtarticlepage', model_name="districtarticlepage",
name='thumb_image', name="thumb_image",
), ),
migrations.RemoveField( migrations.RemoveField(
model_name='districtcontactpage', model_name="districtcontactpage",
name='text_backup', name="text_backup",
), ),
migrations.RemoveField( migrations.RemoveField(
model_name='districthomepage', model_name="districthomepage",
name='fallback_image', name="fallback_image",
), ),
migrations.RemoveField( migrations.RemoveField(
model_name='districtpeoplepage', model_name="districtpeoplepage",
name='content', name="content",
), ),
] ]
...@@ -5,20 +5,25 @@ from django.db import migrations, models ...@@ -5,20 +5,25 @@ from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('district', '0192_remove_districtarticlepage_thumb_image_and_more'), ("district", "0192_remove_districtarticlepage_thumb_image_and_more"),
('main', '0085_alter_mainpersonpage_primary_group'), ("main", "0085_alter_mainpersonpage_primary_group"),
] ]
operations = [ operations = [
migrations.RemoveField( migrations.RemoveField(
model_name='districthomepage', model_name="districthomepage",
name='show_pirati_cz_link', name="show_pirati_cz_link",
), ),
migrations.AddField( migrations.AddField(
model_name='districthomepage', model_name="districthomepage",
name='gdpr_and_cookies_page', name="gdpr_and_cookies_page",
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='main.mainsimplepage', verbose_name='Stránka pro GDPR'), field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
to="main.mainsimplepage",
verbose_name="Stránka pro GDPR",
),
), ),
] ]
...@@ -117,7 +117,7 @@ def add_people_blocks(apps, schema_editor): ...@@ -117,7 +117,7 @@ def add_people_blocks(apps, schema_editor):
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
("district", "0161_auto_20240513_1733"), ("district", "0193_remove_districthomepage_show_pirati_cz_link_and_more"),
] ]
operations = [ operations = [
......
This diff is collapsed.
...@@ -26,7 +26,13 @@ def add_calendar_block(apps, schema_editor): ...@@ -26,7 +26,13 @@ def add_calendar_block(apps, schema_editor):
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
("district", "0162_add_people_block"), ("district", "0195_alter_districtarticlepage_content"),
] ]
operations = [migrations.RunPython(add_calendar_block)] operations = [
migrations.RunPython(add_calendar_block),
migrations.RemoveField(
model_name="districthomepage",
name="show_calendar_on_hp",
),
]
...@@ -19,7 +19,7 @@ def add_newsletter_blocks(apps, schema_editor): ...@@ -19,7 +19,7 @@ def add_newsletter_blocks(apps, schema_editor):
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
("district", "0163_auto_20240509_1227"), ("district", "0196_auto_20240509_1227"),
] ]
operations = [migrations.RunPython(add_newsletter_blocks)] operations = [migrations.RunPython(add_newsletter_blocks)]
...@@ -37,8 +37,6 @@ from shared.blocks import ( ...@@ -37,8 +37,6 @@ from shared.blocks import (
ButtonGroupBlock, ButtonGroupBlock,
ChartBlock, ChartBlock,
FigureBlock, FigureBlock,
MainButtonBlock,
MainButtonGroupBlock,
NewsBlock, NewsBlock,
NewsletterSubscriptionBlock, NewsletterSubscriptionBlock,
PeopleOverviewBlock, PeopleOverviewBlock,
...@@ -219,6 +217,14 @@ class DistrictHomePage(CalendarMixin, MainHomePageMixin): ...@@ -219,6 +217,14 @@ class DistrictHomePage(CalendarMixin, MainHomePageMixin):
def search_page_model(self): def search_page_model(self):
return DistrictArticlePage return DistrictArticlePage
@property
def people_page_model(self):
return DistrictPeoplePage
@property
def contact_page_model(self):
return DistrictContactPage
@property @property
def calendar_page(self): def calendar_page(self):
return self._first_subpage_of_type(DistrictCalendarPage) return self._first_subpage_of_type(DistrictCalendarPage)
...@@ -1041,28 +1047,11 @@ class DistrictCustomPage(MainSimplePageMixin): ...@@ -1041,28 +1047,11 @@ class DistrictCustomPage(MainSimplePageMixin):
use_json_field=True, use_json_field=True,
) )
new_content = StreamField(
[
("button_group", MainButtonGroupBlock()),
("button", MainButtonBlock()),
(
"text",
RichTextBlock(
template="styleguide2/includes/atoms/text/prose_richtext.html"
),
),
],
verbose_name="Obsah",
blank=True,
use_json_field=True,
)
### PANELS ### PANELS
content_panels = Page.content_panels + [ content_panels = Page.content_panels + [
FieldPanel("main_image"), FieldPanel("main_image"),
FieldPanel("content"), FieldPanel("content"),
FieldPanel("new_content"),
] ]
### RELATIONS ### RELATIONS
......
...@@ -11,6 +11,22 @@ from wagtail.blocks import ( ...@@ -11,6 +11,22 @@ from wagtail.blocks import (
from wagtail.images.blocks import ImageChooserBlock from wagtail.images.blocks import ImageChooserBlock
from donate.constants import RICH_TEXT_FEATURES from donate.constants import RICH_TEXT_FEATURES
from shared.blocks import MenuItemBlock as MenuItemBlockBase
class MenuItemBlock(MenuItemBlockBase):
class Meta:
label = "Položka v menu"
template = "donate/blocks/menu_item.html"
class MenuParentBlock(StructBlock):
title = CharBlock(label="Titulek", required=True)
menu_items = ListBlock(MenuItemBlock(), label="Položky menu")
class Meta:
label = "Podmenu"
template = "donate/blocks/navbar_submenu.html"
class CustomLinkBlock(StructBlock): class CustomLinkBlock(StructBlock):
......
from wagtail.fields import StreamField
from shared.blocks import MenuItemBlock as MenuItemBlockBase
from shared.blocks import MenuParentBlock
from shared.models import MenuMixin as MenuMixinBase
class MenuItemBlock(MenuItemBlockBase):
class Meta:
label = "Položka v menu"
template = "donate/blocks/menu_item.html"
#
#
# class MenuParentBlock(MenuParentBlockBase):
# class Meta:
# label = "Podmenu"
# template = "styleguide/2.3.x/menu_parent.html"
class MenuMixin(MenuMixinBase):
menu = StreamField(
[
("menu_item", MenuItemBlock()),
(
"menu_parent",
MenuParentBlock(template="donate/blocks/navbar_submenu.html"),
),
], # , ("menu_parent", MenuParentBlock())
verbose_name="Menu",
blank=True,
use_json_field=True,
)
class Meta:
abstract = True
# Generated by Django 5.0.4 on 2024-05-21 10:02
import wagtail.blocks
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('donate', '0046_donatehomepage_transparency_footer_items'),
]
operations = [
migrations.AlterField(
model_name='donatehomepage',
name='menu',
field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('menu_parent', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('menu_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Položky menu'))]))], blank=True, verbose_name='Menu'),
),
]
...@@ -34,11 +34,12 @@ from .blocks import ( ...@@ -34,11 +34,12 @@ from .blocks import (
CustomContentBlock, CustomContentBlock,
CustomLinkBlock, CustomLinkBlock,
DistrictDonationBlock, DistrictDonationBlock,
MenuItemBlock,
MenuParentBlock,
PartySupportFormBlock, PartySupportFormBlock,
ProjectIndexBlock, ProjectIndexBlock,
) )
from .forms import DonateForm from .forms import DonateForm
from .menu import MenuMixin
from .utils import get_donated_amount_from_api from .utils import get_donated_amount_from_api
...@@ -100,7 +101,6 @@ class DonateFormAmountsMixin(models.Model): ...@@ -100,7 +101,6 @@ class DonateFormAmountsMixin(models.Model):
class DonateHomePage( class DonateHomePage(
MenuMixin,
DonateFormMixin, DonateFormMixin,
DonateFormAmountsMixin, DonateFormAmountsMixin,
Page, Page,
...@@ -109,6 +109,20 @@ class DonateHomePage( ...@@ -109,6 +109,20 @@ class DonateHomePage(
): ):
### FIELDS ### FIELDS
# menu
menu = StreamField(
[
("menu_item", MenuItemBlock()),
(
"menu_parent",
MenuParentBlock(),
),
], # , ("menu_parent", MenuParentBlock())
verbose_name="Menu",
blank=True,
use_json_field=True,
)
# lead section # lead section
lead_title = models.CharField("hlavní nadpis", max_length=250, blank=True) lead_title = models.CharField("hlavní nadpis", max_length=250, blank=True)
lead_body = RichTextField("hlavní popis", blank=True) lead_body = RichTextField("hlavní popis", blank=True)
...@@ -183,6 +197,15 @@ class DonateHomePage( ...@@ -183,6 +197,15 @@ class DonateHomePage(
FieldPanel("transparency_footer_items"), FieldPanel("transparency_footer_items"),
] ]
menu_panels = [
MultiFieldPanel(
[
FieldPanel("menu"),
],
heading="Nastavení menu",
),
]
promote_panels = make_promote_panels(admin_help.build(admin_help.IMPORTANT_TITLE)) promote_panels = make_promote_panels(admin_help.build(admin_help.IMPORTANT_TITLE))
settings_panels = [ settings_panels = [
...@@ -227,7 +250,7 @@ class DonateHomePage( ...@@ -227,7 +250,7 @@ class DonateHomePage(
ObjectList(content_panels, heading="Obsah"), ObjectList(content_panels, heading="Obsah"),
ObjectList(promote_panels, heading="Propagovat"), ObjectList(promote_panels, heading="Propagovat"),
ObjectList(settings_panels, heading="Nastavení"), ObjectList(settings_panels, heading="Nastavení"),
ObjectList(MenuMixin.menu_panels, heading="Menu"), ObjectList(menu_panels, heading="Menu"),
] ]
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment