from wagtail.blocks import CharBlock, ListBlock, PageChooserBlock, StructBlock, URLBlock


class PersonUrlBlock(StructBlock):
    title = CharBlock(label="Název", required=True)
    url = URLBlock(label="URL", required=True)
    custom_icon = CharBlock(
        label="Vlastní ikonka ze styleguide",
        required=False,
        help_text="Pro vlastní ikonku zadejde název ikonky z https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons (bez tečky), např. 'ico--beer'",
    )


class PersonCustomPositionBlock(StructBlock):
    position = CharBlock(label="Název pozice", required=False)
    person = PageChooserBlock(
        label="Osoba",
        page_type=["uniweb.UniwebPersonPage"],
    )

    class Meta:
        icon = "user"
        label = "Osoba s volitelnou pozicí"


class PeopleGroupListBlock(StructBlock):
    group_title = CharBlock(label="Titulek", required=True)
    person_list = ListBlock(
        PersonCustomPositionBlock(),
        label="List osob",
    )

    class Meta:
        template = "uniweb/blocks/people_group_block.html"
        icon = "list-ul"
        label = "Skupina členů"