Skip to content
Snippets Groups Projects
Select Git revision
  • aac6d1d3cb6ab603ac90ef62253fe11ace92db8a
  • master default protected
  • feat/new-image-formats
  • clickable-select-chevron
  • 2.20.0
  • 2.19.0
  • 2.18.0
  • 2.17.0
  • 2.16.1
  • 2.16.0
  • 2.15.0
  • 2.14.0
  • 2.13.0
  • 2.12.1
  • 2.11.0
  • 2.10.0
  • 2.9.1
  • 2.9.0
  • 2.8.0
  • 2.7.1
  • 2.7.0
  • 2.6.0
  • 2.5.2
  • 2.5.1
24 results

candidate-detail.mustache

Blame
  • 0094_alter_districtelectioncampaignpage_candidates.py 13.03 KiB
    # Generated by Django 4.0.4 on 2022-07-22 07:53
    
    import wagtail.blocks
    import wagtail.fields
    import wagtail.images.blocks
    from django.db import migrations
    from wagtail.blocks import StreamValue
    
    
    def person_chooser_list_block_to_compact_block(block):
        for person_page in block["value"]["candidate_list"]:
            person_page["type"] = "person_page"
        return block
    
    
    def compact_block_to_person_chooser_list_block(block):
        for index, compact_block in enumerate(block["value"]["candidate_list"]):
            if compact_block["type"] == "person_page":
                compact_block["type"] = "item"
            else:
                del block["value"]["candidate_list"][index]
    
        return block
    
    
    def get_content(page, mapper):
        stream_data = []
        mapped = False
    
        for block in page.candidates.raw_data:
            if block["type"] == "candidates":
                stream_data.append(mapper(block))
                mapped = True
            else:
                stream_data.append(block)
    
        return stream_data, mapped
    
    
    def migrate(apps, mapper):
        DistrictElectionCampaignPage = apps.get_model(
            "district", "DistrictElectionCampaignPage"
        )
    
        for page in DistrictElectionCampaignPage.objects.all():
            candidates, mapped = get_content(page, mapper)
    
            if mapped:
                page.candidates = StreamValue(page.candidates, candidates, is_lazy=True)
                page.save()
    
    
    def forwards(apps, schema_editor):
        migrate(apps, person_chooser_list_block_to_compact_block)
    
    
    def backwards(apps, schema_editor):
        migrate(apps, compact_block_to_person_chooser_list_block)
    
    
    class Migration(migrations.Migration):
        dependencies = [
            ("district", "0093_alter_districthomepage_subheader"),
        ]
    
        operations = [
            migrations.AlterField(
                model_name="districtelectioncampaignpage",
                name="candidates",
                field=wagtail.fields.StreamField(
                    [
                        (
                            "candidates",
                            wagtail.blocks.StructBlock(
                                [
                                    (
                                        "candidate_list",
                                        wagtail.blocks.StreamBlock(
                                            [
                                                (
                                                    "person_page",
                                                    wagtail.blocks.PageChooserBlock(
                                                        label="Osoba",
                                                        page_type=[
                                                            "district.DistrictPersonPage"
                                                        ],
                                                    ),
                                                ),
                                                (
                                                    "person_block",
                                                    wagtail.blocks.StructBlock(
                                                        [
                                                            (
                                                                "title",
                                                                wagtail.blocks.CharBlock(
                                                                    label="Jméno a příjmení",
                                                                    max_length=128,
                                                                    required=True,
                                                                ),
                                                            ),
                                                            (
                                                                "job",
                                                                wagtail.blocks.CharBlock(
                                                                    help_text="Např. 'Informatik'",
                                                                    label="Povolání",
                                                                    max_length=128,
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "profile_photo",
                                                                wagtail.images.blocks.ImageChooserBlock(
                                                                    label="Profilová fotka",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "email",
                                                                wagtail.blocks.EmailBlock(
                                                                    label="Email",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "city",
                                                                wagtail.blocks.CharBlock(
                                                                    label="Město/obec",
                                                                    max_length=64,
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "age",
                                                                wagtail.blocks.IntegerBlock(
                                                                    label="Věk",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "is_pirate",
                                                                wagtail.blocks.BooleanBlock(
                                                                    default=True,
                                                                    label="Je členem Pirátské strany?",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "other_party",
                                                                wagtail.blocks.CharBlock(
                                                                    label="Strana",
                                                                    max_length=64,
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "other_party_logo",
                                                                wagtail.images.blocks.ImageChooserBlock(
                                                                    help_text="Vyplňte pokud osoba není Pirát",
                                                                    label="Logo strany",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "facebook_url",
                                                                wagtail.blocks.URLBlock(
                                                                    label="Odkaz na Facebook",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "instagram_url",
                                                                wagtail.blocks.URLBlock(
                                                                    label="Odkaz na Instagram",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "twitter_url",
                                                                wagtail.blocks.URLBlock(
                                                                    label="Odkaz na Twitter",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "youtube_url",
                                                                wagtail.blocks.URLBlock(
                                                                    label="Odkaz na Youtube kanál",
                                                                    required=False,
                                                                ),
                                                            ),
                                                            (
                                                                "flickr_url",
                                                                wagtail.blocks.URLBlock(
                                                                    label="Odkaz na Flickr",
                                                                    required=False,
                                                                ),
                                                            ),
                                                        ]
                                                    ),
                                                ),
                                            ],
                                            label="Kandidáti",
                                        ),
                                    ),
                                    (
                                        "candidate_list_big_count",
                                        wagtail.blocks.IntegerBlock(
                                            default=7,
                                            label="Počet kanditátů s velkým náhledem",
                                        ),
                                    ),
                                    (
                                        "candidate_list_shown_count",
                                        wagtail.blocks.IntegerBlock(
                                            default=16,
                                            label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)",
                                        ),
                                    ),
                                    (
                                        "cta_text",
                                        wagtail.blocks.CharBlock(
                                            label="Text 'call-to-action' baneru",
                                            required=False,
                                        ),
                                    ),
                                    (
                                        "cta_link",
                                        wagtail.blocks.URLBlock(
                                            label="Odkaz 'call-to-action' baneru",
                                            required=False,
                                        ),
                                    ),
                                    (
                                        "cta_button_text",
                                        wagtail.blocks.CharBlock(
                                            label="Text tlačítka 'call-to-action' baneru",
                                            max_length=24,
                                            required=False,
                                        ),
                                    ),
                                ]
                            ),
                        )
                    ],
                    blank=True,
                    use_json_field=None,
                    verbose_name="Kandidátní listina",
                ),
            ),
            migrations.RunPython(forwards, backwards),
        ]