diff --git a/elections/blocks.py b/elections/blocks.py index 82f3d47fddd43d703e24c55c7a0d0108eeef7329..3e64aa1749c8d9cc0443bf921afa174f526dde98 100644 --- a/elections/blocks.py +++ b/elections/blocks.py @@ -88,13 +88,9 @@ class ProgramBlock(StructBlock): class PersonFaqAnswerBlock(StructBlock): - question = CharBlock( - label="Otázka" - ) + question = CharBlock(label="Otázka") - answer = TextBlock( - label="Odpověď" - ) + answer = TextBlock(label="Odpověď") class Meta: icon = "form" @@ -103,18 +99,13 @@ class PersonFaqAnswerBlock(StructBlock): class PersonFaqAnswersBlock(StructBlock): section_name = CharBlock( - label="Název sekce", - help_text="Např. 'Otevřenost a transparentnost'" + label="Název sekce", help_text="Např. 'Otevřenost a transparentnost'" ) - topic = CharBlock( - label="Téma", - help_text="Např. 'téma Markéty Gregorové'" - ) + topic = CharBlock(label="Téma", help_text="Např. 'téma Markéty Gregorové'") person_page = PageChooserBlock( - label="Stránka kandidáta", - page_type=["elections.ElectionsCandidatePage"] + label="Stránka kandidáta", page_type=["elections.ElectionsCandidatePage"] ) image = ImageChooserBlock( @@ -123,10 +114,7 @@ class PersonFaqAnswersBlock(StructBlock): required=False, ) - questions = ListBlock( - PersonFaqAnswerBlock(label="Odpověď"), - label="Otázky" - ) + questions = ListBlock(PersonFaqAnswerBlock(label="Odpověď"), label="Otázky") class Meta: icon = "form" diff --git a/elections/migrations/0003_electionsfaqpage.py b/elections/migrations/0003_electionsfaqpage.py index 6efb248d915bb07fedd9141f6099bbcae0614250..a0e4d1427d13697005eb56d0c6e9867b0cbc8c54 100644 --- a/elections/migrations/0003_electionsfaqpage.py +++ b/elections/migrations/0003_electionsfaqpage.py @@ -1,36 +1,140 @@ # Generated by Django 4.1.10 on 2024-01-08 12:25 -from django.db import migrations, models import django.db.models.deletion -import shared.models.base import wagtail.blocks import wagtail.fields import wagtail.images.blocks import wagtailmetadata.models +from django.db import migrations, models +import shared.models.base -class Migration(migrations.Migration): +class Migration(migrations.Migration): dependencies = [ - ('calendar_utils', '0004_auto_20220505_1228'), - ('wagtailcore', '0083_workflowcontenttype'), - ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), - ('elections', '0002_initial'), + ("calendar_utils", "0004_auto_20220505_1228"), + ("wagtailcore", "0083_workflowcontenttype"), + ("wagtailimages", "0025_alter_image_file_alter_rendition_file"), + ("elections", "0002_initial"), ] operations = [ migrations.CreateModel( - name='ElectionsFaqPage', + name="ElectionsFaqPage", fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), - ('calendar_url', models.URLField(blank=True, help_text='Kalendář se po uložení stránky aktualizuje na pozadí. U plnějších kalendářů to může trvat i desítky sekund.', null=True, verbose_name='URL kalendáře ve formátu iCal')), - ('content', wagtail.fields.StreamField([('person_answers', wagtail.blocks.StructBlock([('topic', wagtail.blocks.CharBlock(help_text="Např. 'téma Markéty Gregorové'", label='Téma')), ('person', wagtail.blocks.PageChooserBlock(label='Stránka kandidáta', page_type=['elections.ElectionsCandidatePage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('questions', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('question', wagtail.blocks.CharBlock(label='Otázka')), ('answer', wagtail.blocks.TextBlock(label='Odpověď'))], label='Odpověď'), label='Otázky'))]))], blank=True, use_json_field=True, verbose_name='Obsah')), - ('calendar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='calendar_utils.calendar')), - ('search_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image', verbose_name='Search image')), + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "calendar_url", + models.URLField( + blank=True, + help_text="Kalendář se po uložení stránky aktualizuje na pozadí. U plnějších kalendářů to může trvat i desítky sekund.", + null=True, + verbose_name="URL kalendáře ve formátu iCal", + ), + ), + ( + "content", + wagtail.fields.StreamField( + [ + ( + "person_answers", + wagtail.blocks.StructBlock( + [ + ( + "topic", + wagtail.blocks.CharBlock( + help_text="Např. 'téma Markéty Gregorové'", + label="Téma", + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Stránka kandidáta", + page_type=[ + "elections.ElectionsCandidatePage" + ], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "questions", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "question", + wagtail.blocks.CharBlock( + label="Otázka" + ), + ), + ( + "answer", + wagtail.blocks.TextBlock( + label="Odpověď" + ), + ), + ], + label="Odpověď", + ), + label="Otázky", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + ( + "calendar", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="calendar_utils.calendar", + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), ], options={ - 'abstract': False, + "abstract": False, }, - bases=(shared.models.base.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, 'wagtailcore.page', models.Model), + bases=( + shared.models.base.SubpageMixin, + wagtailmetadata.models.WagtailImageMetadataMixin, + "wagtailcore.page", + models.Model, + ), ), ] diff --git a/elections/migrations/0004_alter_electionsfaqpage_options.py b/elections/migrations/0004_alter_electionsfaqpage_options.py index afcb580551adafca51b1f3aa1e1d5ef27245f678..cccfc77a5bfefa91d2b91aa12092b525f99ba088 100644 --- a/elections/migrations/0004_alter_electionsfaqpage_options.py +++ b/elections/migrations/0004_alter_electionsfaqpage_options.py @@ -4,14 +4,13 @@ from django.db import migrations class Migration(migrations.Migration): - dependencies = [ - ('elections', '0003_electionsfaqpage'), + ("elections", "0003_electionsfaqpage"), ] operations = [ migrations.AlterModelOptions( - name='electionsfaqpage', - options={'verbose_name': 'Otázky a odpovědi'}, + name="electionsfaqpage", + options={"verbose_name": "Otázky a odpovědi"}, ), ] diff --git a/elections/migrations/0005_electionsfaqpage_all_topics_name_and_more.py b/elections/migrations/0005_electionsfaqpage_all_topics_name_and_more.py index a25887495229e56e213e8ee74ab8d4611c8902dc..6b2cfed2987484ca68895fb4b046f709a45a09cc 100644 --- a/elections/migrations/0005_electionsfaqpage_all_topics_name_and_more.py +++ b/elections/migrations/0005_electionsfaqpage_all_topics_name_and_more.py @@ -1,27 +1,96 @@ # Generated by Django 4.1.10 on 2024-01-09 08:21 -from django.db import migrations, models import wagtail.blocks import wagtail.fields import wagtail.images.blocks +from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [ - ('elections', '0004_alter_electionsfaqpage_options'), + ("elections", "0004_alter_electionsfaqpage_options"), ] operations = [ migrations.AddField( - model_name='electionsfaqpage', - name='all_topics_name', - field=models.CharField(default='všechna témata', help_text="např. 'všechna témata'", max_length=32, verbose_name='Nadpis štítku pro všechna témata'), + model_name="electionsfaqpage", + name="all_topics_name", + field=models.CharField( + default="všechna témata", + help_text="např. 'všechna témata'", + max_length=32, + verbose_name="Nadpis štítku pro všechna témata", + ), preserve_default=False, ), migrations.AlterField( - model_name='electionsfaqpage', - name='content', - field=wagtail.fields.StreamField([('person_answers', wagtail.blocks.StructBlock([('section_name', wagtail.blocks.CharBlock(help_text="Např. 'Otevřenost a transparentnost'", label='Název sekce')), ('topic', wagtail.blocks.CharBlock(help_text="Např. 'téma Markéty Gregorové'", label='Téma')), ('person_page', wagtail.blocks.PageChooserBlock(label='Stránka kandidáta', page_type=['elections.ElectionsCandidatePage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('questions', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('question', wagtail.blocks.CharBlock(label='Otázka')), ('answer', wagtail.blocks.TextBlock(label='Odpověď'))], label='Odpověď'), label='Otázky'))]))], blank=True, use_json_field=True, verbose_name='Obsah'), + model_name="electionsfaqpage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "person_answers", + wagtail.blocks.StructBlock( + [ + ( + "section_name", + wagtail.blocks.CharBlock( + help_text="Např. 'Otevřenost a transparentnost'", + label="Název sekce", + ), + ), + ( + "topic", + wagtail.blocks.CharBlock( + help_text="Např. 'téma Markéty Gregorové'", + label="Téma", + ), + ), + ( + "person_page", + wagtail.blocks.PageChooserBlock( + label="Stránka kandidáta", + page_type=["elections.ElectionsCandidatePage"], + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta", + label="Obrázek", + required=False, + ), + ), + ( + "questions", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "question", + wagtail.blocks.CharBlock( + label="Otázka" + ), + ), + ( + "answer", + wagtail.blocks.TextBlock( + label="Odpověď" + ), + ), + ], + label="Odpověď", + ), + label="Otázky", + ), + ), + ] + ), + ) + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), ), ] diff --git a/elections/models.py b/elections/models.py index b9e38d86a7ee967bdcd247b1a5415230f71bd4ee..943777befd6ca137f1cb0e47b01d9766775088e9 100644 --- a/elections/models.py +++ b/elections/models.py @@ -301,7 +301,7 @@ class ElectionsFaqPage( all_topics_name = models.CharField( "Nadpis štítku pro všechna témata", max_length=32, - help_text="např. 'všechna témata'" + help_text="např. 'všechna témata'", ) ## PANELS diff --git a/shared/static/styleguide2/pirati-ui.svg b/shared/static/styleguide2/pirati-ui.svg index ffc20eccf43c3d89476c0124b2475cd314fe2ecd..c6e3a71ad07f5229dda5d69c9289dc5ce339be12 100644 --- a/shared/static/styleguide2/pirati-ui.svg +++ b/shared/static/styleguide2/pirati-ui.svg @@ -127,4 +127,4 @@ <glyph unicode="" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" /> <glyph unicode="" glyph-name="twitter" horiz-adv-x="1001" d="M596.009 526.629l372.819 433.371h-88.346l-323.718-376.29-258.553 376.29h-298.21l390.983-569.018-390.983-454.457h88.351l341.855 397.375 273.051-397.375h298.21l-405.458 590.103zM475 385.969l-354.815 507.521h135.702l624.636-893.48h-135.702l-269.821 385.959z" /> <glyph unicode="" glyph-name="stats-dots" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96s96-42.98 96-96c0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96s96-42.98 96-96c0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" /> -</font></defs></svg> \ No newline at end of file +</font></defs></svg>