From a233d2f0696a52cdf6559cb187ba8cd29a38b925 Mon Sep 17 00:00:00 2001 From: Jarmil <jarmil.halamicek@seznam.cz> Date: Wed, 7 Oct 2020 13:02:41 +0200 Subject: [PATCH] Stranka aktuality --- district/migrations/0002_districtarticles.py | 58 +++++++++++++++++++ district/models.py | 44 +++++++++++--- .../templates/district/_more_articles.html | 10 ++++ district/templates/district/base.html | 2 +- .../templates/district/district_articles.html | 15 +++++ .../district/district_home_page.html | 2 + district/templates/shared/article.html | 3 + 7 files changed, 126 insertions(+), 8 deletions(-) create mode 100644 district/migrations/0002_districtarticles.py create mode 100644 district/templates/district/_more_articles.html create mode 100644 district/templates/district/district_articles.html diff --git a/district/migrations/0002_districtarticles.py b/district/migrations/0002_districtarticles.py new file mode 100644 index 00000000..ce672eb9 --- /dev/null +++ b/district/migrations/0002_districtarticles.py @@ -0,0 +1,58 @@ +# Generated by Django 3.1.1 on 2020-10-07 09:57 + +import django.db.models.deletion +import wagtailmetadata.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0052_pagelogentry"), + ("wagtailimages", "0022_uploadedimage"), + ("district", "0001_initial"), + ] + + operations = [ + migrations.CreateModel( + name="DistrictArticles", + 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", + ), + ), + ( + "max_items", + models.IntegerField( + blank=True, + null=True, + verbose_name="Maximalni pocet prvku na strance", + ), + ), + ( + "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": "Aktuality",}, + bases=( + wagtailmetadata.models.MetadataMixin, + "wagtailcore.page", + models.Model, + ), + ), + ] diff --git a/district/models.py b/district/models.py index a09eab04..eb1d1000 100644 --- a/district/models.py +++ b/district/models.py @@ -1,18 +1,12 @@ from django.db import models from django.utils.translation import gettext_lazy -from wagtail.admin.edit_handlers import ( - FieldPanel, - HelpPanel, - MultiFieldPanel, - StreamFieldPanel, -) +from wagtail.admin.edit_handlers import FieldPanel, MultiFieldPanel, StreamFieldPanel from wagtail.core import blocks from wagtail.core.fields import StreamField from wagtail.core.models import Page from wagtailmetadata.models import MetadataPageMixin from shared.models import Article -from tuning import help class DistrictHomePage(MetadataPageMixin, Page): @@ -52,6 +46,7 @@ class DistrictHomePage(MetadataPageMixin, Page): ### RELATIONS subpage_types = [ "shared.Article", + "DistrictArticles", ] ### OTHERS @@ -63,6 +58,41 @@ class DistrictHomePage(MetadataPageMixin, Page): def articles(self): return self.get_descendants().type(Article).live().specific() + @property + def articles_page(self): + return self.get_descendants().type(DistrictArticles).live().specific()[0] + @property def root_page(self): return self + + +class DistrictArticles(MetadataPageMixin, Page): + ### FIELDS + + max_items = models.IntegerField( + "Maximalni pocet prvku na strance", blank=True, null=True + ) + + ### PANELS + + content_panels = Page.content_panels + [ + FieldPanel("max_items"), + ] + + settings_panels = [] + + ### OTHERS + + class Meta: + verbose_name = "Aktuality" + + def get_context(self, request): + context = super().get_context(request) + context["articles"] = ( + self.get_siblings(inclusive=False) + .type(Article) + .live() + .specific()[: self.max_items] + ) + return context diff --git a/district/templates/district/_more_articles.html b/district/templates/district/_more_articles.html new file mode 100644 index 00000000..3620753e --- /dev/null +++ b/district/templates/district/_more_articles.html @@ -0,0 +1,10 @@ +<nav class="text-center mb-3"> + <a href="/aktuality/" class="btn btn--icon text-xl pt-8" rel="next" > + <div class="btn__body-wrap"> + <div class="btn__body ">Dalšà články</div> + <div class="btn__icon "> + <i class="ico--chevron-right"></i> + </div> + </div> +</a> +</nav> diff --git a/district/templates/district/base.html b/district/templates/district/base.html index d689df05..0b869114 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -41,7 +41,7 @@ <div> <div class="container container--wide navbar__content max-w-screen-xl" :class="{'navbar__content--initialized': true}"> <div class="navbar__brand my-4 flex items-center lg:pr-8 lg:my-0"> - <a href="#"> + <a href="/"> <img src="{% static "uniweb/assets/images/logo-round-white.svg" %}" class="w-8" /> </a> </div> diff --git a/district/templates/district/district_articles.html b/district/templates/district/district_articles.html new file mode 100644 index 00000000..e109ae7c --- /dev/null +++ b/district/templates/district/district_articles.html @@ -0,0 +1,15 @@ +{% extends "district/base.html" %} + +{% block content %} +<main> + + <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4 mt-5">Aktuálnà témata</h1> + + <div class="article-card-list grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 lg:gap-8"> + {% for a in articles %} + {% include "shared/article_preview.html" with article=a %} + {% endfor %} + </div> + +</main> +{% endblock %} diff --git a/district/templates/district/district_home_page.html b/district/templates/district/district_home_page.html index b4a0b209..3d5b2640 100644 --- a/district/templates/district/district_home_page.html +++ b/district/templates/district/district_home_page.html @@ -13,6 +13,8 @@ {% endfor %} </div> + {% include "district/_more_articles.html" %} + <div class="d-flex"> <a href="{{page.facebook}}" class="super-button bg-brands-facebook text-white container-padding--zero lg:container-padding--auto lg:w-full m-2" > diff --git a/district/templates/shared/article.html b/district/templates/shared/article.html index d3a0e749..2ba81e80 100644 --- a/district/templates/shared/article.html +++ b/district/templates/shared/article.html @@ -80,4 +80,7 @@ </div> +{% include "district/_more_articles.html" %} + + {% endblock %} -- GitLab