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

migrate blocks

parent e7993ff3
Branches
No related tags found
2 merge requests!994Release,!988Redesign
Pipeline #18369 passed
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)]
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -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 to comment