Skip to content
Snippets Groups Projects
Commit 455a5982 authored by Tomáš Valenta's avatar Tomáš Valenta Committed by josef.bouse
Browse files

finish homepage without eu section

parent 8a79a444
No related branches found
No related tags found
2 merge requests!861Release: New homepage design,!841Feat/new homepage
Showing
with 279 additions and 170 deletions
# Generated by Django 4.1.10 on 2023-12-15 15:38
from django.db import migrations
import modelcluster.contrib.taggit
class Migration(migrations.Migration):
dependencies = [
('main', '0085_mainarticlesectiontagged_sectiontag_and_more'),
]
operations = [
migrations.AddField(
model_name='mainarticlepage',
name='section_tags',
field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.', through='main.MainArticleSectionTagged', to='main.SectionTag', verbose_name='Tagy pro rozdělení do sekcí'),
),
]
# Generated by Django 4.1.10 on 2023-12-15 15:48
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0086_mainarticlepage_section_tags'),
]
operations = [
migrations.AddField(
model_name='mainhomepage',
name='main_section_tag',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Hlavní stránka'),
),
]
# Generated by Django 4.1.10 on 2023-12-15 16:19
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main', '0087_mainhomepage_main_section_tag'),
]
operations = [
migrations.AlterField(
model_name='mainhomepage',
name='europarl_section_tag',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Eurovolby'),
),
]
......@@ -10,7 +10,7 @@ from django.shortcuts import render
from django.utils import timezone
from modelcluster.contrib.taggit import ClusterTaggableManager
from modelcluster.fields import ParentalKey
from taggit.models import TaggedItemBase
from taggit.models import TaggedItemBase, TagBase
from wagtail.admin.panels import (
FieldPanel,
HelpPanel,
......@@ -19,7 +19,7 @@ from wagtail.admin.panels import (
PageChooserPanel,
TabbedInterface,
)
from wagtail.blocks import RichTextBlock
from wagtail.blocks import RichTextBlock, PageChooserBlock
from wagtail.contrib.routable_page.models import RoutablePageMixin, route
from wagtail.fields import RichTextField, StreamField
from wagtail.models import Page
......@@ -27,7 +27,6 @@ from wagtail.search import index
from wagtailmetadata.models import MetadataPageMixin
from calendar_utils.models import CalendarMixin
from elections2021.constants import REGION_CHOICES # pozor, import ze sousedního modulu
from shared.forms import SubscribeForm
from shared.models import ( # MenuMixin,
ArticleMixin,
......@@ -47,11 +46,6 @@ from .forms import JekyllImportForm
from .menu import MenuMixin
class ARTICLE_TYPES(models.IntegerChoices):
WORK_TIMELINE = 1, "Článek na timeline Piráti pracují"
PRESS_RELEASE = 2, "Tisková zpráva"
class MainHomePage(
MenuMixin,
RoutablePageMixin,
......@@ -93,6 +87,7 @@ class MainHomePage(
[
("carousel", blocks.HomePageCarouseSlideBlock()),
("news", blocks.NewsBlock()),
("europarl_news", blocks.EuroparlNewsBlock()),
("people", blocks.PeopleOverviewBlock()),
("regions", blocks.RegionsBlock()),
("boxes", blocks.BoxesBlock()),
......@@ -107,7 +102,7 @@ class MainHomePage(
[
("other_links", blocks.OtherLinksBlock()),
],
verbose_name="Bloky dalších odkazů v zápatí webu",
verbose_name="Odkazy v zápatí webu",
blank=True,
use_json_field=True,
)
......@@ -129,6 +124,24 @@ class MainHomePage(
null=True,
)
main_section_tag = models.ForeignKey(
"main.SectionTag",
verbose_name="Tag pro rozdělení - Hlavní stránka",
on_delete=models.PROTECT,
related_name="+",
blank=True,
null=True,
)
europarl_section_tag = models.ForeignKey(
"main.SectionTag",
verbose_name="Tag pro rozdělení - Eurovolby",
on_delete=models.PROTECT,
related_name="+",
blank=True,
null=True,
)
matomo_id = models.IntegerField(
"Matomo ID pro sledování návštěvnosti", blank=True, null=True
)
......@@ -158,6 +171,13 @@ class MainHomePage(
FieldPanel("donation_page_text"),
FieldPanel("social_links"),
FieldPanel("matomo_id"),
MultiFieldPanel(
[
FieldPanel("europarl_section_tag"),
FieldPanel("main_section_tag"),
],
heading="Tagy"
),
]
### EDIT HANDLERS
......@@ -202,17 +222,19 @@ class MainHomePage(
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, args, kwargs)
context["regions"] = REGION_CHOICES
context["article_data_list"] = (
MainArticlePage.objects.filter(region__isnull=False)
MainArticlePage.objects
.filter(
models.Q(section_tags__isnull=True)
| models.Q(section_tags=self.main_section_tag)
)
.live()
.order_by("-date")[:3]
)
articles_for_article_section = self.materialize_shared_articles_query(
self.append_all_shared_articles_query(
MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.PRESS_RELEASE)
MainArticlePage.objects.all()
)[:8]
)
context["article_main"] = (
......@@ -234,11 +256,13 @@ class MainHomePage(
region=request.GET.get("region", None)
)[:3]
context = {"article_data_list": sorted_article_qs[:3]}
data = {
"html": render(
request, "main/includes/small_article_preview.html", context
).content.decode("utf-8")
}
return JsonResponse(data=data, safe=False)
def serve(self, request, *args, **kwargs):
......@@ -261,6 +285,14 @@ class MainHomePage(
def articles_page(self):
return self._first_subpage_of_type(MainArticlesPage)
@property
def people_page(self):
return self._first_subpage_of_type(MainPeoplePage)
@property
def contact_page(self):
return self._first_subpage_of_type(MainContactPage)
@property
def root_page(self):
return self
......@@ -322,7 +354,6 @@ class MainArticlesPage(
ArticlesPageMixin,
Page,
):
perex = models.TextField()
last_import_log = models.TextField(
"Výstup z posledního importu", null=True, blank=True
)
......@@ -355,7 +386,6 @@ class MainArticlesPage(
### PANELS
content_panels = Page.content_panels + [
FieldPanel("perex"),
FieldPanel("shared_tags"),
]
promote_panels = make_promote_panels()
......@@ -379,7 +409,7 @@ class MainArticlesPage(
def get_article_data_list(self, months_back: int = 1):
target_date_list = (
MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.WORK_TIMELINE)
MainArticlePage.objects
.order_by("-date")
.live()
.values_list("date", flat=True)
......@@ -394,7 +424,6 @@ class MainArticlesPage(
sorted_article_qs = (
MainArticlePage.objects.filter(
date__gt=first_day_of_target_month,
article_type=ARTICLE_TYPES.WORK_TIMELINE,
)
.live()
.order_by("-date")
......@@ -404,16 +433,12 @@ class MainArticlesPage(
current_month_data = self.get_empty_month_data(timezone.now().date())
article_counter = 1
for article in sorted_article_qs:
if article.date.month != current_month_data["month_number"]:
article_data_list.append(current_month_data) # append completed month
current_month_data = self.get_empty_month_data(article.date)
article_counter = 1
current_column = "left_column" if article_counter % 2 else "right_column"
current_month_data[current_column].append(article)
article_counter += 1
current_month_data["articles"].append(article)
article_data_list.append(current_month_data) # last iteration
......@@ -425,12 +450,10 @@ class MainArticlesPage(
if get_articles:
article_timeline_list = self.get_article_data_list(1)
ctx["article_timeline_list"] = article_timeline_list
ctx["show_next_timeline_articles"] = MainArticlePage.objects.filter(
article_type=ARTICLE_TYPES.WORK_TIMELINE
).live().count() > len(article_timeline_list)
ctx["show_next_timeline_articles"] = MainArticlePage.objects.live().count() > len(article_timeline_list)
article_list = self.append_all_shared_articles_query(
MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.PRESS_RELEASE)
MainArticlePage.objects.all()
).order_by("-union_date", "union_title")[
:11
] # dám LIMIT +1, abych věděl, jestli má cenu show_next
......@@ -439,43 +462,39 @@ class MainArticlesPage(
)
ctx["show_next_article"] = len(article_list) > 10
tags = []
for article in MainArticlePage.objects.all()[:50]:
for tag in article.tags.names():
if tag in tags:
continue
tags.append(tag)
ctx["tags"] = tags
return ctx
def get_timeline_articles_response(self, request):
article_list = self.get_article_data_list(int(request.GET.get("months", None)))
context = {"article_data_list": article_list}
try:
months = int(request.GET.get("months", None))
except ValueError:
months = 1
article_list = self.get_article_data_list(months)
context = {"article_timeline_list": article_list}
data = {
"html": render(
request, "main/blocks/articles_timeline_block.html", context
request, "main/includes/organisms/articles/articles_timeline_list.html", context
).content.decode("utf-8"),
"last_article": article_list[-1]
== MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.WORK_TIMELINE)
== MainArticlePage.objects.all()
.order_by("-date")
.live()
.last(),
}
return JsonResponse(data=data, safe=False)
def get_articles_response(self, request):
article_page = self.get_page_with_shared_articles(
self.append_all_shared_articles_query(
MainArticlePage.objects.filter(
article_type=ARTICLE_TYPES.PRESS_RELEASE
),
).order_by("-union_date", "union_title"),
10,
request.GET.get("page", 1),
)
context = {"article_data_list": article_page.object_list}
html_content = render(
request, "main/includes/person_article_preview.html", context
).content
data = {
"html": html_content.decode("utf-8"),
"has_next": article_page.has_next(),
}
return JsonResponse(data=data, safe=False)
def get_all_articles_search_response(self, request):
article_page = self.search_articles(
request.GET["q"],
......@@ -542,8 +561,7 @@ class MainArticlesPage(
return {
"month_number": date_obj.month,
"month_text": MONTH_NAMES[date_obj.month - 1],
"left_column": [],
"right_column": [],
"articles": []
}
......@@ -555,21 +573,35 @@ class MainArticleTag(TaggedItemBase):
)
class SectionTag(TagBase):
class Meta:
verbose_name = "Tag pro rozdělení do sekcí"
verbose_name_plural = "Tagy pro rozdělení do sekcí"
class MainArticleSectionTagged(TaggedItemBase):
tag = models.ForeignKey(
SectionTag,
on_delete=models.CASCADE,
related_name="%(app_label)s_%(class)s_items",
)
content_object = ParentalKey(
"main.MainArticlePage",
on_delete=models.CASCADE,
related_name="section_tagged_items",
)
class MainArticlePage(
ArticleMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
):
### FIELDS
article_type = models.PositiveSmallIntegerField(
"Typ článku", choices=ARTICLE_TYPES.choices, default=ARTICLE_TYPES.PRESS_RELEASE
)
is_black = models.BooleanField("Má tmavé pozadí?", default=False)
content = StreamField(
[
("text", RichTextBlock(template="main/blocks/rich_text_block.html")),
("text", RichTextBlock(template="main/includes/atoms/text/prose_richtext.html")),
("quote", blocks.ArticleQuoteBlock()),
("download", blocks.ArticleDownloadBlock()),
("image", blocks.ArticleImageBlock()),
],
verbose_name="Článek",
blank=True,
......@@ -583,21 +615,25 @@ class MainArticlePage(
blank=True,
verbose_name="Stránka autora (osoby)",
)
region = models.CharField(
choices=REGION_CHOICES,
null=True,
blank=True,
max_length=3,
verbose_name="Kraj",
help_text="Kraj, ke kterému se článek vztahuje",
tags = ClusterTaggableManager(
through=MainArticleTag,
related_name="tagged_articles",
blank=True
)
tags = ClusterTaggableManager(through=MainArticleTag, blank=True)
shared_tags = ClusterTaggableManager(
verbose_name="Tagy pro sdílení mezi weby",
through=SharedTaggedMainArticle,
blank=True,
)
section_tags = ClusterTaggableManager(
through=MainArticleSectionTagged,
verbose_name="Tagy pro rozdělení do sekcí",
help_text="Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.",
related_name="sectioned_articles",
blank=True,
)
search_fields = ArticleMixin.search_fields + [
index.SearchField("author_page"),
index.FilterField("slug"),
......@@ -606,11 +642,9 @@ class MainArticlePage(
### PANELS
content_panels = ArticleMixin.content_panels + [
FieldPanel("article_type"),
FieldPanel("author_page"),
FieldPanel("is_black"),
FieldPanel("region"),
FieldPanel("tags"),
FieldPanel("section_tags"),
FieldPanel("shared_tags"),
]
......@@ -643,7 +677,6 @@ class MainArticlePage(
class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
### FIELDS
perex = RichTextField()
program = StreamField(
[
("program_group", blocks.ProgramGroupBlock()),
......@@ -657,7 +690,7 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
### PANELS
content_panels = Page.content_panels + [FieldPanel("perex"), FieldPanel("program")]
content_panels = Page.content_panels + [FieldPanel("program")]
promote_panels = make_promote_panels()
......@@ -677,7 +710,13 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
### FIELDS
perex = RichTextField()
perex_col_1 = models.TextField(
verbose_name="Perex - první sloupec",
)
perex_col_2 = models.TextField(
verbose_name="Perex - druhý sloupec",
)
people = StreamField(
[
("people_group", blocks.PeopleGroupBlock(label="Seznam osob")),
......@@ -690,7 +729,11 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
### PANELS
content_panels = Page.content_panels + [FieldPanel("perex"), FieldPanel("people")]
content_panels = Page.content_panels + [
FieldPanel("perex_col_1"),
FieldPanel("perex_col_2"),
FieldPanel("people"),
]
promote_panels = make_promote_panels()
......@@ -745,6 +788,9 @@ class MainPersonPage(
position = models.CharField(
"Pozice/povolání", max_length=200, blank=True, null=True
)
primary_group = models.CharField(
"Kategorie", help_text="např. 'Europarlament' nebo 'Sněmovna'", max_length=32, blank=True, null=True
)
perex = models.TextField()
text = RichTextField()
......@@ -757,8 +803,10 @@ class MainPersonPage(
use_json_field=True,
)
people = StreamField(
[("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))],
related_people = StreamField(
[
("person", PageChooserBlock(page_type="main.MainPersonPage", label="Detail osoby"))
],
verbose_name="Další lidé",
blank=True,
use_json_field=True,
......@@ -787,7 +835,7 @@ class MainPersonPage(
FieldPanel("phone"),
FieldPanel("calendar_url"),
FieldPanel("social_links"),
FieldPanel("people"),
FieldPanel("related_people"),
]
def get_context(self, request) -> dict:
......@@ -795,7 +843,7 @@ class MainPersonPage(
context["article_page_list"] = MainArticlePage.objects.filter(
author_page=self.id
)
).order_by("-date").live()[:3]
return context
......
......@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
import requests
from main.models import ARTICLE_TYPES, MainArticlePage, MainArticlesPage
from main.models import MainArticlePage, MainArticlesPage
from shared.utils import create_image_from_url
if TYPE_CHECKING:
......@@ -18,9 +18,7 @@ class TimelineArticleDownloadService:
@staticmethod
def get_existing_articles_slugs() -> list[str]:
return MainArticlePage.objects.filter(
article_type=ARTICLE_TYPES.WORK_TIMELINE
).values_list("slug", flat=True)
return MainArticlePage.objects.values_list("slug", flat=True)
def get_articles_response(self):
response = requests.get(self.api_url)
......@@ -46,7 +44,6 @@ class TimelineArticleDownloadService:
img_obj = None
article_to_save = MainArticlePage(
article_type=ARTICLE_TYPES.WORK_TIMELINE,
title=article["title"],
slug=article["slug"],
perex=article["description"].replace(" ", " "),
......
This diff is collapsed.
{% load wagtailimages_tags %}
<div
class="
{{ classes }}
......@@ -7,9 +9,11 @@
lg:mx-8 lg:my-4 lg:w-2/5
"
>
{% image image original as side_image %}
<img
class="my-0"
src="{{ image_url }}"
src="{{ side_image.url }}"
>
{% if image_source %}
......
<a
href="{{ url }}"
href="{% if url %}{{ url }}{% else %}{% endif %}"
class="
flex items-center group rounded-full font-condensed uppercase font-semibold tracking-tight
hover:no-underline
......
{% extends 'patterns/atoms/buttons/round_button.html' %}
{% extends 'main/includes/atoms/buttons/round_button.html' %}
{% block size_classes %}text-sm pl-7 pr-2 py-2{% endblock %}
<div class="__js-root">
<ui-full-calendar events='{{ calendar_data }}'></ui-full-calendar>
<ui-full-calendar events='{{ calendar_data|safe }}'></ui-full-calendar>
</div>
<div class="flex gap-3 text-grey-185 {{ classes }}">
<a href="#" class="underline">
{% if first_link %}
<a href="{{ first_link }}" class="underline">
{{ first_text }}
</a>
{% else %}
<span>{{ first_text }}</span>
{% endif %}
⎯⎯
......
<div class="prose [&_p]:leading-7 [&_p]:text-black [&_p]:text-lg" style="max-width:100ch">
{{ self }}
</div>
<div class="prose">
<p>
„{{ self.quote }}“<br>
─ {{ self.autor_name }}
</p>
</div>
<div>
<div
class="
{{ classes }}
font-condensed text-justify
[&_p]:leading-7 [&_p]:text-black [&_p]:text-lg
"
>
{% include "main/includes/atoms/articles/side_image.html" with classes="lg:float-right" image_url=image_url image_source=image_source %}
<p>
{{ text_1 }}
</p>
<p>
{{ text_2 }}
</p>
<p>
{{ text_1 }}
</p>
{% include "main/includes/atoms/articles/side_image.html" with classes="lg:float-left" image_url=image_url image_source=image_source %}
<p>
{{ text_2 }}
</p>
</div>
</div>
{% load wagtailimages_tags %}
<div
class="
flex flex-col mb-8 bg-grey-180 drop-shadow
......@@ -5,32 +7,35 @@
{{ classes }}
"
>
<a href="#">
<a href="{{ article.url }}">
{% image article.image width-512 as image %}
<img
src="../../../../static/images/person-table.png" alt=""
src="{{ image.url }}"
alt=""
class="w-full"
>
</a>
<div class="flex flex-col px-8 pb-6 pt-5">
<div class="text-grey-350 font-condensed mb-2">
{{ date }}
{{ article.date }}
</div>
<a href="#" class="mb-2 underline-offset-4">
<h2 class="head-3xl">{{ title }}</h2>
<a href="{{ article.url }}" class="mb-2 underline-offset-4">
<h2 class="head-3xl">{{ article.title }}</h2>
</a>
<div class="mb-6">
{% include 'main/includes/molecules/tags/inline_tags.html' %}
{% include 'main/includes/molecules/tags/inline_tags.html' with tags=article.get_tags %}
</div>
<p class="mb-8">
{{ text }}
{{ article.perex }}
</p>
<div class="flex justify-end">
{% include 'main/includes/atoms/buttons/round_button.html' with button_text='Zjisti více' %}
{% include 'main/includes/atoms/buttons/round_button.html' with url=article.url button_text='Číst dále' %}
</div>
</div>
</div>
......@@ -16,11 +16,11 @@
<div>
<span class="font-bold mr-1">Soubor:</span>
<span class="overflow-hidden text-ellipsis">{{ filename }}</span>
<span class="overflow-hidden text-ellipsis">{{ self.file }}</span>
</div>
</div>
<div class="flex flex-col justify-center items-start">
{% include 'main/includes/atoms/buttons/round_button.html' with button_text='Stáhnout' %}
{% include 'main/includes/atoms/buttons/round_button.html' with url=self.file.url button_text='Stáhnout' %}
</div>
</div>
{% load wagtailcore_tags %}
{% if url %}
<a
href="{{ url }}"
......@@ -8,7 +10,10 @@
>
{% if icon %}
<i class="{{ icon }} mr-6 text-6xl xl:justify-self-end"></i>
<img
src="{{ icon.url }}"
class="inline-block mr-6 xl:justify-self-end"
>
{% endif %}
<div class="flex flex-col">
......@@ -16,12 +21,8 @@
{{ title }}
</h3>
<p class="leading-6">
{{ text }}
{{ text|richtext }}
</p>
</div>
{% if url %}
</a>
{% else %}
</div>
{% endif %}
</{% if url %}a{% else %}div{% endif %}>
<article class="min-w-96 flex flex-col min-h-[600px] {{ classes }}">
<a href="#">
<img src="{{ image }}" alt="{{ header }}" draggable="false" class="w-full h-80 object-cover">
<a href="{{ url }}">
<img src="{{ image.url }}" alt="{{ header }}" draggable="false" class="w-full h-80 object-cover">
</a>
<div class="p-6 bg-white text-black {{ description_classes }} h-full flex flex-col justify-between">
<div class="mb-6">
......@@ -12,7 +12,7 @@
<div class="flex flex-col mt-3 gap-3 justify-between mt-auto">
<h2 class="font-alt text-4xl">
<a href="#" class="underline-offset-4">
<a href="{{ url }}" class="underline-offset-4">
{{ header }}
</a>
</h2>
......@@ -24,7 +24,7 @@
</div>
<div class="flex justify-center">
{% include 'main/includes/atoms/buttons/round_button.html' with button_text="Zjisti více" %}
{% include 'main/includes/atoms/buttons/round_button.html' with url=url button_text="Zjisti více" classes=None %}
</div>
</div>
</article>
{% load static %}
{% firstof url "#" as real_url %}
<div
class="
flex flex-col grow bg-grey-180
......@@ -7,10 +11,10 @@
{{ classes }}
">
<div class="xl:shrink-0">
<a href="#">
<a href="{{ real_url }}">
<img
class="h-full w-full xl:w-60 object-cover"
src="../../../../static/images/person-table.png"
src="{% if image %}{{ image.url }}{% else %}{% static 'shared/img/unknown_pirate_160x160.jpg' %}{% endif %}"
alt="{{ name }}"
>
</a>
......@@ -25,28 +29,36 @@
<div class="flex flex-col">
<a
class="hover:no-underline block font-bold mb-1 text-xl xl:text-3xl"
href="#"
href="{{ real_url }}"
><h4>{{ name }}</h4></a>
{% if function %}
<span class="leading-6 mb-4 xl:mb-6">
{{ function }}
</span>
{% endif %}
</div>
<div class="flex flex-col">
{% if telephone %}
<a
class="font-bold mb-2"
href="tel:{{ telephone }}"
>{{ telephone }}</a>
{% endif %}
{% if mail %}
<a
class="font-bold"
href="mailto:{{ mail }}"
>{{ mail }}</a>
{% endif %}
{% if url %}
<div class="flex mt-5">
{% include 'main/includes/atoms/buttons/round_button_small.html' with button_text='Zjisti více' %}
{% include 'main/includes/atoms/buttons/round_button_small.html' with url=url button_text='Detail osoby' %}
</div>
{% endif %}
</div>
</div>
</div>
......
{% load wagtailcore_tags %}
<div class="__js-root">
<ui-popout>
<template slot="toggler">
......@@ -5,7 +7,7 @@
</template>
<ui-popout-content>
<div class="prose max-w-screen-lg">
{% include "main/includes/atoms/text/paragraph.html" with text=text %}
{{ content|richtext }}
</div>
</ui-popout-content>
</ui-popout>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment