Skip to content
Snippets Groups Projects
Commit 3359514b authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

add hoax section, add teams section to people page

parent 685fb489
Branches
No related tags found
2 merge requests!732Release,!729Add hoax section, add teams section to people page
Pipeline #11654 passed
......@@ -372,4 +372,39 @@ class CardLinkWithHeadlineBlock(CardLinkWithHeadlineBlockMixin):
label = "Karty odkazů s nadpisem"
class HoaxBlock(StructBlock):
title = CharBlock(label="Titulek")
hoax = RichTextBlock(label="Hoax")
image = ImageChooserBlock(label="Obrázek")
image_explanation = RichTextBlock(label="Popis obrázku", required=False)
reality = RichTextBlock(label="Realita")
class Meta:
icon = "text"
label = "Hoax"
template = "main/blocks/hoax_block.html"
class TeamBlock(StructBlock):
title = CharBlock(label="Název sekce")
slug = CharBlock(
label="Slug skupiny",
required=False,
help_text="Není třeba vyplňovat, bude automaticky vyplněno",
)
team_list = ListBlock(
CardLinkWithHeadlineBlock(label="Karta týmu"),
label="Týmy",
)
class Meta:
icon = "group"
label = "Týmy"
def get_prep_value(self, value):
value = super().get_prep_value(value)
value["slug"] = slugify(value["title"])
return value
# TwitterCarouselBlock
# Generated by Django 4.1.6 on 2023-02-27 22:30
from django.db import migrations, models
import django.db.models.deletion
import shared.models
import wagtail.blocks
import wagtail.fields
import wagtail.images.blocks
import wagtailmetadata.models
class Migration(migrations.Migration):
dependencies = [
('wagtailimages', '0025_alter_image_file_alter_rendition_file'),
('wagtailcore', '0083_workflowcontenttype'),
('main', '0045_alter_mainprogrampage_program'),
]
operations = [
migrations.AlterModelOptions(
name='mainpeoplepage',
options={'verbose_name': 'Lidé a týmy'},
),
migrations.AlterField(
model_name='mainpeoplepage',
name='people',
field=wagtail.fields.StreamField([('people_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug skupiny', required=False)), ('person_list', wagtail.blocks.ListBlock(wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['main.MainPersonPage']), label='Skupina osob'))], label='Seznam osob')), ('team_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název sekce')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug skupiny', required=False)), ('team_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Titulek bloku', required=False)), ('card_items', 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 odkazu'))], label='Karta týmu'), label='Týmy'))]))], blank=True, use_json_field=True, verbose_name='Lidé a týmy'),
),
migrations.CreateModel(
name='MainHoaxPage',
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')),
('description', wagtail.fields.RichTextField(blank=True, null=True, verbose_name='Popis')),
('content', wagtail.fields.StreamField([('hoax', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('hoax', wagtail.blocks.RichTextBlock(label='Hoax')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('image_explanation', wagtail.blocks.RichTextBlock(label='Popis obrázku', required=False)), ('reality', wagtail.blocks.RichTextBlock(label='Realita'))]))], blank=True, use_json_field=True, verbose_name='Hoaxy a jejich vysvětlení')),
('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={
'verbose_name': 'Hoaxy',
},
bases=(shared.models.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, 'wagtailcore.page', models.Model),
),
]
......@@ -182,6 +182,7 @@ class MainHomePage(
"main.MainSimplePage",
"main.MainContactPage",
"main.MainCrossroadPage",
"main.MainHoaxPage",
]
### OTHERS
......@@ -626,8 +627,11 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
perex = RichTextField()
people = StreamField(
[("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))],
verbose_name="Lidé",
[
("people_group", blocks.PeopleGroupBlock(label="Seznam osob")),
("team_group", blocks.TeamBlock()),
],
verbose_name="Lidé a týmy",
blank=True,
use_json_field=True,
)
......@@ -648,7 +652,7 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
### OTHERS
class Meta:
verbose_name = "Lidé"
verbose_name = "Lidé a týmy"
class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
......@@ -883,3 +887,44 @@ class MainCrossroadPage(
class Meta:
verbose_name = "Rozcestník s kartami"
class MainHoaxPage(
ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
):
### FIELDS
description = RichTextField(
"Popis",
blank=True,
null=True,
)
content = StreamField(
[
(("hoax"), blocks.HoaxBlock())
],
verbose_name="Hoaxy a jejich vysvětlení",
blank=True,
use_json_field=True,
)
### PANELS
content_panels = Page.content_panels + [
FieldPanel("description"),
FieldPanel("content"),
]
promote_panels = make_promote_panels()
settings_panels = []
### RELATIONS
parent_page_types = ["main.MainHomePage"]
subpage_types = []
### OTHERS
class Meta:
verbose_name = "Hoaxy"
main/static/main/images/hoax.webp

4.85 KiB

main/static/main/images/person-table.png

228 KiB

This diff is collapsed.
{% load wagtailimages_tags static %}
{% image self.image width-800 as img %}
<ui-popout>
<template slot="toggler">
{{ self.title }}
</template>
<ui-popout-content>
<div class="flex flex-wrap gap-4 lg:flex-nowrap">
<div class="grow lg:grow-0 lg:basis-2/3 max-w-screen-lg">
<div class="prose max-w-none">
{{ self.hoax }}
</div>
<img
class="mt-10"
src="{% static "main/images/hoax.webp" %}"
alt="Hoax"
>
<h3 class="head-2xl mt-10">Jak to je?</h3>
<div class="prose max-w-none">
{{ self.reality }}
</div>
</div>
<div class="lg:basis-1/3">
<img
class="w-full mb-3"
src="{{ img.url }}"
alt="{{ img.alt }}"
>
<small class="text-grey-300">
<i>{{ self.image_explanation }}</i>
</small>
</div>
</div>
</ui-popout-content>
</ui-popout>
{% extends "main/base.html" %}
{% load wagtailcore_tags %}
{% block content %}
{% include 'main/includes/layout/simple_page_header.html' %}
<main role="main" class="mb-10 xl:mb-32 __js-root">
<div class="grid-container mb-2 lg:mb-12">
<div class="grid-full">
{% if page.description %}
<div class="prose max-w-none mb-10">
{{ page.description }}
</div>
{% endif %}
{% for block in page.content %}
{% include_block block %}
{% endfor %}
</div>
</div>
</main>
{% endblock %}
......@@ -34,14 +34,27 @@
</ui-horizontal-scrollable>
</div>
<div class="flex flex-wrap gap-4">
{% for people_group in page.people %}
<template v-if="isCurrentView('{{ people_group.value.slug }}-{{ forloop.counter }}')">
{% for person_page in people_group.value.person_list %}
{% for block in page.people %}
<template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')">
{% if block.block_type == "people_group" %}
{% for person_page in block.value.person_list %}
{% include 'main/includes/person_contact_big.html' %}
{% endfor %}
{% endif %}
</template>
{% endfor %}
</div>
{% for block in page.people %}
<template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')">
<div class="grid-full">
{% if block.block_type == "team_group" %}
{% for card_block in block.value.team_list %}
{% include_block card_block %}
{% endfor %}
{% endif %}
</div>
</template>
{% endfor %}
</ui-view-provider>
</div>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment