diff --git a/main/blocks.py b/main/blocks.py index ce1ec8319603b69be1e882859481b23398667d54..f0ffe7fe26f04414518c8366f561f88e9be3c702 100644 --- a/main/blocks.py +++ b/main/blocks.py @@ -14,6 +14,25 @@ from wagtail.images.blocks import ImageChooserBlock from shared.blocks import CardLinkBlockMixin, CardLinkWithHeadlineBlockMixin +PROGRAM_RICH_TEXT_FEATURES = [ + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", +] + class CardLinkBlock(CardLinkBlockMixin): page = PageChooserBlock( @@ -57,6 +76,7 @@ class ProgramGroupBlockMixin(StructBlock): perex = RichTextBlock( label="Perex části programu", required=False, + features=PROGRAM_RICH_TEXT_FEATURES, ) # point_list = ListBlock(ProgramBlock(), label="Jednotlivé články programu") @@ -164,7 +184,10 @@ class ProgramBlock(StructBlock): required=False, ) title = CharBlock(label="Titulek článku programu") - text = RichTextBlock(label="Obsah") + text = RichTextBlock( + label="Obsah", + features=PROGRAM_RICH_TEXT_FEATURES, + ) class Meta: icon = "date" @@ -173,7 +196,10 @@ class ProgramBlock(StructBlock): class ProgramBlockPopout(StructBlock): title = CharBlock(label="Titulek vyskakovacího bloku") - content = RichTextBlock(label="Obsah") + content = RichTextBlock( + label="Obsah", + features=PROGRAM_RICH_TEXT_FEATURES, + ) class Meta: icon = "date" diff --git a/main/migrations/0045_alter_mainprogrampage_program.py b/main/migrations/0045_alter_mainprogrampage_program.py new file mode 100644 index 0000000000000000000000000000000000000000..1cada2e279788620e8cc7fb85b463f4320449e31 --- /dev/null +++ b/main/migrations/0045_alter_mainprogrampage_program.py @@ -0,0 +1,21 @@ +# Generated by Django 4.1.5 on 2023-02-14 13:33 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0044_alter_mainprogrampage_program'), + ] + + operations = [ + migrations.AlterField( + model_name='mainprogrampage', + name='program', + field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('perex', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Perex části programu', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('perex', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Perex části programu', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['main.MainArticlesPage', 'main.MainArticlePage', 'main.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug části programu', required=False)), ('perex', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Perex části programu', required=False)), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))]))], blank=True, use_json_field=True, verbose_name='Program'), + ), + ] diff --git a/main/templates/main/main_program_page.html b/main/templates/main/main_program_page.html index cac34f0f786a6d95b971f702ce8981d52a53d7b7..04701efdecaa22eafa15523eba0018b665bef6f4 100644 --- a/main/templates/main/main_program_page.html +++ b/main/templates/main/main_program_page.html @@ -87,9 +87,11 @@ {% for category in program_group.value.categories %} <li class="grow"> <div class="flex gap-3 mb-3 items-center bg-grey-150 p-5"> - {% image category.icon height-24 as icon %} + {% image category.icon max-75x75 as icon %} <img src="{{ icon.url }}" + width="20" + height="20" alt=""{% comment %} (decorative image, https://stackoverflow.com/a/52557065) {% endcomment %} > <h2 class="font-alt text-2xl">{{ category.name }}</h2>