diff --git a/main/blocks.py b/main/blocks.py index 3816978271702c5e911adbfb3a9dd34b80cc8876..539ab8e558f4c14f11a322f5acb650bc66ad7c23 100644 --- a/main/blocks.py +++ b/main/blocks.py @@ -6,6 +6,7 @@ from wagtail.core.blocks import ( StructBlock, TextBlock, URLBlock, + RichTextBlock ) from wagtail.documents.blocks import DocumentChooserBlock from wagtail.images.blocks import ImageChooserBlock @@ -174,4 +175,13 @@ class ArticleDownloadBlock(StructBlock): template = "main/blocks/article_download_block.html" +class TwoTextColumnBlock(StructBlock): + text_column_1 = RichTextBlock(label="První sloupec textu") + text_column_2 = RichTextBlock(label="Druhý sloupec textu") + + class Meta: + icon = "text" + label = "Text ve dvou sloupcích" + + # TwitterCarouselBlock diff --git a/main/migrations/0018_alter_maincontactpage_contact_boxes.py b/main/migrations/0018_alter_maincontactpage_contact_boxes.py new file mode 100644 index 0000000000000000000000000000000000000000..9abe6570081bc48a124eb0a6c8d0fee814603b1e --- /dev/null +++ b/main/migrations/0018_alter_maincontactpage_contact_boxes.py @@ -0,0 +1,20 @@ +# Generated by Django 4.0.7 on 2022-08-24 19:58 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0017_remove_mainarticlespage_timeline'), + ] + + operations = [ + migrations.AlterField( + model_name='maincontactpage', + name='contact_boxes', + field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('button_link', wagtail.blocks.URLBlock(label='Odkaz tlačítka')), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka')), ('title', wagtail.blocks.CharBlock(label='Titulek')), ('subtitle', wagtail.blocks.CharBlock(label='Podtitulek'))]))], blank=True, use_json_field=None, verbose_name='Kontaktní boxy'), + ), + ] diff --git a/main/migrations/0019_alter_maincontactpage_text.py b/main/migrations/0019_alter_maincontactpage_text.py new file mode 100644 index 0000000000000000000000000000000000000000..954778a55f667fac8a961cc9be5a23c840ea408a --- /dev/null +++ b/main/migrations/0019_alter_maincontactpage_text.py @@ -0,0 +1,20 @@ +# Generated by Django 4.0.7 on 2022-08-24 20:25 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0018_alter_maincontactpage_contact_boxes'), + ] + + operations = [ + migrations.AlterField( + model_name='maincontactpage', + name='text', + field=wagtail.fields.StreamField([('two_columns_text', wagtail.blocks.StructBlock([('text_column_1', wagtail.blocks.RichTextBlock(label='První sloupec textu')), ('text_column_2', wagtail.blocks.RichTextBlock(label='Druhý sloupec textu'))]))], blank=True, use_json_field=None, verbose_name='Kontaktní informace'), + ), + ] diff --git a/main/models.py b/main/models.py index 562b29fc88bfc15289123e7843e135706b404ddd..b0f84de5837f1a6dd572cfb40a8adbdd817f7d91 100644 --- a/main/models.py +++ b/main/models.py @@ -46,7 +46,6 @@ class ARTICLE_TYPES(models.IntegerChoices): class MainHomePage(MenuMixin, ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): - # header contact_newcomers = models.URLField( @@ -295,7 +294,6 @@ class MainArticleTag(TaggedItemBase): class MainArticlePage( ArticleMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page ): - ### FIELDS article_type = models.PositiveSmallIntegerField( "Typ článku", choices=ARTICLE_TYPES.choices, default=ARTICLE_TYPES.PRESS_RELEASE @@ -364,7 +362,6 @@ class MainArticlePage( class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): - ### FIELDS perex = models.TextField() @@ -394,7 +391,6 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): - ### FIELDS perex = models.TextField() @@ -424,7 +420,6 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): - ### FIELDS main_image = models.ForeignKey( "wagtailimages.Image", @@ -531,7 +526,6 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, class MainContactPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): - ### FIELDS contact_people = StreamField( @@ -540,18 +534,22 @@ class MainContactPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin blank=True, ) contact_boxes = StreamField( - [("item", blocks.PersonContactBlock())], + [("item", blocks.PersonContactBoxBlock())], verbose_name="Kontaktní boxy", blank=True, ) - text = RichTextField("Text", blank=True, features=RICH_TEXT_DEFAULT_FEATURES) + text = StreamField( + [("two_columns_text", blocks.TwoTextColumnBlock())], + verbose_name="Kontaktní informace", + blank=True + ) ### PANELS content_panels = Page.content_panels + [ + FieldPanel("text"), FieldPanel("contact_people"), FieldPanel("contact_boxes"), - FieldPanel("text"), ] promote_panels = make_promote_panels() diff --git a/main/templates/main/includes/person_contact_big.html b/main/templates/main/includes/person_contact_big.html index 7384ac074f33574cf24891395a9ba5e9c6445707..da113cea3c6323886f14a4da8a03af57cb7d774b 100644 --- a/main/templates/main/includes/person_contact_big.html +++ b/main/templates/main/includes/person_contact_big.html @@ -1,9 +1,11 @@ +{% load wagtailimages_tags %} <div class="flex mb-8 person-box-big max-w-md xl:max-w-xl flex-col xl:flex-row xl:mb-16"> <div class="shrink-0 mr-2"> + {% image person_page.profile_image fill-350x350 as profile_image %} <img class="rounded-full shadow-sm w-30 xl:w-60 mb-2" - src="https://randomuser.me/api/portraits/women/26.jpg" - alt=" {{ name }}" + src="{{ profile_image.url }}" + alt=" {{ person_page.title }}" > </div> <div class="flex flex-col justify-between py-4"> diff --git a/main/templates/main/main_contact_page.html b/main/templates/main/main_contact_page.html index fbe52c1a63403af9bf3e86fdfef56865002d3b91..ac27fe53bf9ab7310444a4c8d1285c4069a2b015 100644 --- a/main/templates/main/main_contact_page.html +++ b/main/templates/main/main_contact_page.html @@ -11,48 +11,16 @@ <h2 class="font-alt text-3xl sm:text-4xl mb-5"> Kontakty pro veřejnost </h2> - <div class="flex flex-wrap justify-between"> - <div class="leading-5 w-1/2"> - <span class="font-bold">Informační linka:</span><br/> - +420 703 681 682<br/> - +420 608 963 111<br/> - <br/> - <span class="font-bold">Provozní doba:</span><br/> - Po, St, Pá: 8-16:30<br/> - Út, Čt: 11-19:30<br/> - <br/> - <span class="font-bold">E-mail:</span><br> - <a href="mailto:info@pirati.cz" class="text-turquoise-500 underline"> - info@pirati.cz - </a><br> - <br> - <span class="font-bold">International Department</span><br> - <a href="mailto:international@pirati.cz" class="text-turquoise-500 underline"> - international@pirati.cz - </a><br> - <br> - </div> - <div class="leading-5 w-5/6 sm:w-5/12"> - <span class="font-bold">Informační linka:</span><br/> - +420 703 681 682<br/> - +420 608 963 111<br/> - <br/> - <span class="font-bold">Provozní doba:</span><br/> - Po, St, Pá: 8-16:30<br/> - Út, Čt: 11-19:30<br/> - <br/> - <span class="font-bold">E-mail:</span><br> - <a href="mailto:info@pirati.cz" class="text-turquoise-500 underline"> - info@pirati.cz - </a><br> - <br> - <span class="font-bold">Transparentní účet</span><br> - 24190421219/3190 (Fio banka)<br> - <a href="" class="text-turquoise-500 underline"> - další transparentní účty - </a><br> + {% for text_block in page.text %} + <div class="flex flex-wrap justify-between"> + <div class="leading-5 w-1/2"> + {{ text_block.value.text_column_1|richtext }} + </div> + <div class="leading-5 w-5/6 sm:w-5/12"> + {{ text_block.value.text_column_2|richtext }} + </div> </div> - </div> + {% endfor %} </div> <div class="w-full max-w-2xl"> <h2 class="font-alt text-4xl mb-5"> @@ -78,18 +46,18 @@ hm, image... </div> <h3 class="font-alt mb-3 text-xl"> - Adresář + {{ contact_block.value.title }} </h3> <p> - Další osoby naleznete na stránce pirati.cz + {{ contact_block.value.subtitle }} </p> </div> - <a href="" class="btn btn__slide__wrap"> + <a href="{{ contact_block.value.button_link }}" class="btn btn__slide__wrap"> <span class="btn bg-black text-white w-32"> - Lidé + {{ contact_block.value.button_text }} </span> <span class="btn bg-blue-300 text-white w-32"> - Lidé + {{ contact_block.value.button_text }} </span> </a> </div> @@ -107,7 +75,8 @@ {% for contact_person_box in page.contact_people %} <div class="flex person-box mb-4 mr-4"> <div class="mr-7"> - <img class="rounded-full shadow-sm w-20 sm:w-40" src="https://randomuser.me/api/portraits/women/26.jpg" + {% image contact_person_box.value.person.profile_image fill-250x250 as profile_image %} + <img class="rounded-full shadow-sm w-20 sm:w-40" src="{{ profile_image.url }}" alt="user image"> </div> <div class="flex flex-col py-4"> @@ -118,7 +87,7 @@ {{ contact_person_box.value.person.position }} </span> <span> - {{ contact_person_box.value.person.phone}} + {{ contact_person_box.value.person.phone }} </span> <span class="text-turquoise-500"> {{ contact_person_box.value.person.email }} @@ -127,8 +96,7 @@ </div> {% endfor %} </div> - </div> - </section> + </section> </div> </main> {% endblock content %}