diff --git a/district/migrations/0002_districtarticles.py b/district/migrations/0002_districtarticles.py new file mode 100644 index 0000000000000000000000000000000000000000..ce672eb99587bfdadb911c816b61d1c96c1d53b3 --- /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 a09eab04bed9795534df4180e99187fa39d6a363..eb1d1000e01fa8ec7f5b94751e12724a12bf37be 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 0000000000000000000000000000000000000000..3620753e8063aa54772156702352fc2dcab6ebc0 --- /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 d689df0508c75635bfe2992c49cd6adcc585cd7f..0b8691143e4e88f4df7b2c6fe6fcd92862a7af0d 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 0000000000000000000000000000000000000000..e109ae7c8e754f4dc11c78a3e9d21950a15c238e --- /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 b4a0b2098487fa88166b050be5a184fdfbaa84cb..3d5b2640a95c29a98e8fea166b54e639d046059e 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 d3a0e74929cbe65d84d4c615fdfc60262fee5cee..2ba81e80bcc253124c7388bd6720f0bfff9a5e21 100644 --- a/district/templates/shared/article.html +++ b/district/templates/shared/article.html @@ -80,4 +80,7 @@ </div> +{% include "district/_more_articles.html" %} + + {% endblock %}