from wagtail.core.blocks import ( CharBlock, ListBlock, PageChooserBlock, StructBlock, TextBlock, URLBlock, ) from wagtail.images.blocks import ImageChooserBlock class CTAMixin: button_link = URLBlock(label="Odkaz tlačítka") button_text = CharBlock(label="Text tlačítka") class BoxBlock(CTAMixin, StructBlock): image = ImageChooserBlock(label="Logo/obrázek") title = CharBlock(label="Nadpis") class BoxesBlock(StructBlock): title = CharBlock(label="Nadpis") list = ListBlock(BoxBlock, label="Boxíky") class HomePageCarouseSlideBlock(CTAMixin, StructBlock): line_1 = CharBlock() line_2 = CharBlock() class HomePageCarouselBlock(StructBlock): slides = ListBlock(HomePageCarouseSlideBlock) class PeopleGroupBlock(StructBlock): title = CharBlock() person_list = ListBlock(PageChooserBlock(page_type="main.MainPersonPage")) class ProgramBlock(StructBlock): icon = ImageChooserBlock(label="Ikona") title = CharBlock(label="Titulek článku programu") text = TextBlock(label="Obsah") class ProgramGroupBlock(StructBlock): title = CharBlock(label="Titulek části programu") point_list = ListBlock(ProgramBlock(), label="Jednotlivé články programu") class TweetsBlock(StructBlock): title = CharBlock(label="Titulek") # NewsBlock - zatím asi hardcoded # PeopleOverviewBlock - zatím asi hardcoded # RegionOverviewBlock - zatím asi hardcoded class PersonContactBlock(StructBlock): position = CharBlock(label="Název pozice", required=False) # email, phone? person = PageChooserBlock( label="Osoba", page_type=["district.DistrictPersonPage"], ) class Meta: icon = "user" label = "Osoba s volitelnou pozicí" class PersonContactBoxBlock(CTAMixin, StructBlock): title = CharBlock(label="Titulek") subtitle = CharBlock(label="Podtitulek") # Footer class LinkBlock(StructBlock): text = CharBlock() link = URLBlock() class OtherLinksBlock(StructBlock): title = CharBlock() list = ListBlock(LinkBlock) class SocialLinkBlock(LinkBlock): icon = CharBlock() # TODO CSS class name or somthing better? # TwitterCarouselBlock