Skip to content
Snippets Groups Projects
Commit 5b01e186 authored by Ondrej Rehounek's avatar Ondrej Rehounek
Browse files

district: Article page - similar (latest) articles, author page link, black bg available

parent 5601760c
Branches
No related tags found
2 merge requests!418Release,!414district and region modules
Pipeline #6105 passed
# Generated by Django 3.2.8 on 2021-11-17 08:06
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("district", "0008_auto_20211116_1553"),
]
operations = [
migrations.AddField(
model_name="districtarticlepage",
name="author_page",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="district.districtpersonpage",
),
),
migrations.AddField(
model_name="districtarticlepage",
name="is_black",
field=models.BooleanField(default=False, verbose_name="Má tmavé pozadí?"),
),
]
......@@ -202,11 +202,19 @@ class DistrictArticleTag(TaggedItemBase):
class DistrictArticlePage(ArticleMixin, SubpageMixin, MetadataPageMixin, Page):
### FIELDS
author_page = models.ForeignKey(
"district.DistrictPersonPage", on_delete=models.SET_NULL, null=True
)
is_black = models.BooleanField("Má tmavé pozadí?", default=False)
tags = ClusterTaggableManager(through=DistrictArticleTag, blank=True)
### PANELS
content_panels = ArticleMixin.content_panels + [FieldPanel("tags")]
content_panels = ArticleMixin.content_panels + [
FieldPanel("author_page"),
FieldPanel("is_black"),
FieldPanel("tags"),
]
### RELATIONS
......@@ -218,6 +226,16 @@ class DistrictArticlePage(ArticleMixin, SubpageMixin, MetadataPageMixin, Page):
class Meta:
verbose_name = "Aktualita"
def get_context(self, request):
context = super().get_context(request)
context["related_articles"] = (
self.get_siblings(inclusive=False)
.live() # TODO filtrovat na stejné tagy?
.specific()
.order_by("-uniwebarticlepage__date")[:3]
)
return context
class DistrictArticlesPage(SubpageMixin, MetadataPageMixin, Page):
### FIELDS
......
......@@ -80,20 +80,32 @@
<div v-if="show || isLgScreenSize" class="navbar__main navbar__section navbar__section--expandable container-padding--zero lg:container-padding--auto">
<ul class="navbar-menu text-white">
{% if page.root_page.articles_page %}
<li class="navbar-menu__item"><a href="{% pageurl page.root_page.articles_page %}" class="navbar-menu__link">{{ page.root_page.articles_page }}</a></li>
<li class="navbar-menu__item">
<a href="{% pageurl page.root_page.articles_page %}" class="navbar-menu__link">
Aktuality
</a>
</li>
{% endif %}
{% if page.root_page.people_page %}
<li class="navbar-menu__item"><a href="{% pageurl page.root_page.people_page %}" class="navbar-menu__link">{{ page.root_page.people_page }}</a></li>
<li class="navbar-menu__item">
<a href="{% pageurl page.root_page.people_page %}" class="navbar-menu__link">
Lidé
</a>
</li>
{% endif %}
{% if page.root_page.program_page %}
<li class="navbar-menu__item">
<a href="{% pageurl page.root_page.program_page %}" class="navbar-menu__link">
Program
{# TODO ask {{ page.root_page.program_page }} #}
{# TODO more complicated #}
</a></li>
{% endif %}
{% if page.root_page.contact_page %}
<li class="navbar-menu__item"><a href="{% pageurl page.root_page.contact_page %}" class="navbar-menu__link">{{ page.root_page.contact_page }}</a></li>
<li class="navbar-menu__item">
<a href="{% pageurl page.root_page.contact_page %}" class="navbar-menu__link">
Kontakt
</a>
</li>
{% endif %}
</ul>
</div>
......
......@@ -2,52 +2,48 @@
{% load static wagtailcore_tags wagtailimages_tags %}
{% block content %}
<div class="container container--default py-8 lg:py-24">
<article itemtype="http://schema.org/BlogPosting" itemscope="">
<header>
<article>
<link itemprop="mainEntityOfPage" href="{{ page.url }}">
<meta itemprop="datePublished" content="{{ page.last_published_at }}">
<meta itemprop="dateModified" content="">
<meta itemprop="dateModified" content="{{ page.latest_revision_created_at }}">
<h1 itemprop="headline" class="head-alt-md md:head-alt-lg max-w-5xl mb-4">{{ page.title }}</h1>
<h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4">
{{ page.title }}
</h1>
<div class="flex flex-col md:flex-row md:items-center">
<div class="inline-flex divide-x flex-grow">
<span class="pr-2">{{ page.date|date:"SHORT_DATE_FORMAT" }}</span>
<span class="pl-2" itemprop="author" itemtype="http://schema.org/Person" itemscope="">
<span itemprop="name">{{ page.author }}</span>
</span>
</div>
<div class="my-4">
{% for tag in page.tags.all %}
<a href="{{ page.root_page.tags_page.url }}#{{ tag}}" class="btn btn--grey-125 btn--condensed" ><div class="btn__body ">{{ tag }}</div></a>
<a href="{{ page.root_page.tags_page.url }}#{{ tag }}" class="btn btn--grey-125 btn--condensed">
<div class="btn__body ">{{ tag }}</div>
</a>
{% endfor %}
</div>
</div>
<figure class="figure">
{% image page.image width-2000 as img %}
<img src="{{ img.url }}" alt="{{ page.title }}" />
</figure>
</header>
<div class="lg:flex mt-8 lg:space-x-16">
<div class="lg:w-2/3">
<div itemprop="description" class="w-full content-block">
<div itemprop="description" class="content-block w-full">
{{ page.text|richtext }}
</div>
{% if page.author_page %}
{% include "shared/person_badge_snippet.html" with person=page.author_page title="Autor" %}
{% endif %}
</div>
</div>
<div class="pt-8 lg:w-1/3 md:pt-0">
<div class="space-y-8">
<div class="sharebox md:card md:elevation-10 ">
<div class="md:card__body">
<span class="head-alt-base md:head-alt-md">Sdílení je aktem lásky</span>
......@@ -68,16 +64,25 @@
<img src="{% static "shared/img/flag.png" %}" alt="Pirátská strana" class="w-80 object-cover m-auto"/>
</div>
</div>
</div>
</div>
</div>
</article>
{% if related_articles|length %}
<section class="mt-16 md:mt-24">
<h1 class="head-alt-base md:head-alt-md pb-4">
Další podobné články
</h1>
<div class="article-card-list grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 lg:gap-8">
{% for article in related_articles %}
{% include "shared/article_preview.html" %}
{% endfor %}
</div>
{% include "shared/more_articles_snippet.html" %}
</section>
{% endif %}
</div>
{% endblock %}
{% load wagtailcore_tags wagtailimages_tags %}
<article itemtype="http://schema.org/BlogPosting" class="card card--hoveractive article-card" itemscope="">
<article
itemtype="http://schema.org/BlogPosting"
class="card card--hoveractive article-card{% if article.is_black %} bg-black{% endif %}"
itemscope=""
>
<link itemprop="mainEntityOfPage" href="{{ article.url }}">
......@@ -24,6 +28,12 @@
onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"
class="social-icon social-icon--fill bg-brands-twitter text-white text-sm social-icon--4"
><i class="ico--twitter"></i></a>
<a
href="https://www.linkedin.com/sharing/share-offsite/?url={{ article.full_url|urlencode }}"
onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"
class="social-icon social-icon--fill bg-brands-linkedin text-white text-sm social-icon--4">
<i class="ico--linkedin"></i>
</a>
</div>
</div>
......@@ -42,14 +52,20 @@
</div>
</div>
<div class="card__body article-card__body">
<a href="{{ article.url }}"><h1 class="card-headline mb-4">{{article.title}}</h1></a>
<p class="card-body-text flex-grow">{{article.perex}}</p>
<div class="card__body article-card__body{% if article.is_black %} text-white{% endif %}">
<a href="{{ article.url }}">
<h1 class="card-headline mb-4">
{{ article.title }}
</h1>
</a>
<p class="card-body-text flex-grow{% if article.is_black %} bg-black{% endif %}">
{{ article.perex }}
</p>
<div class="inline-block-nogap mt-4">
{% for tag in article.tags.all %}
<a
href="{{ page.root_page.tags_page.url }}?tag={{ tag.slug }}"
class="btn article-card__category-button btn--condensed text-sm font-light btn--grey-125 btn--hoveractive"
class="btn article-card__category-button btn--condensed text-sm font-light btn--grey-{% if article.is_black %}700{% else %}125{% endif %} btn--hoveractive"
>
<div class="btn__body">{{ tag }}</div>
</a>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment