diff --git a/majak/settings/base.py b/majak/settings/base.py index 3482621f72dd27fef144b667405449a9882407cf..20c8e6b12d3e5b2babb676b149b73319f413ab94 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -146,3 +146,5 @@ WAGTAIL_SITE_NAME = "majak" # Base URL to use when referring to full URLs within the Wagtail admin backend - # e.g. in notification emails. Don't include '/admin' or a trailing slash BASE_URL = "http://example.com" + +WAGTAIL_ALLOW_UNICODE_SLUGS = False diff --git a/senator/migrations/0002_senatornewsindexpage_senatornewspage.py b/senator/migrations/0002_senatornewsindexpage_senatornewspage.py new file mode 100644 index 0000000000000000000000000000000000000000..5999fa928879893e17357faab257bce5e9c50762 --- /dev/null +++ b/senator/migrations/0002_senatornewsindexpage_senatornewspage.py @@ -0,0 +1,60 @@ +# Generated by Django 3.0.5 on 2020-04-16 20:58 + +import django.db.models.deletion +import wagtail.core.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0045_assign_unlock_grouppagepermission"), + ("senator", "0001_initial"), + ] + + operations = [ + migrations.CreateModel( + name="SenatorNewsIndexPage", + 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", + ), + ), + ], + options={"abstract": False,}, + bases=("wagtailcore.page",), + ), + migrations.CreateModel( + name="SenatorNewsPage", + 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", + ), + ), + ("date", models.DateField(verbose_name="datum")), + ("perex", models.TextField(verbose_name="perex")), + ( + "body", + wagtail.core.fields.RichTextField( + blank=True, verbose_name="článek" + ), + ), + ], + options={"abstract": False,}, + bases=("wagtailcore.page",), + ), + ] diff --git a/senator/models.py b/senator/models.py index 6ed7bcce92f5ac4f1a55f9b7353d6aa1ecf0904e..e1438b96ea8aaa81ccde64e95ea1eb1af4b8ab10 100644 --- a/senator/models.py +++ b/senator/models.py @@ -2,6 +2,7 @@ from django.db import models from wagtail.admin.edit_handlers import FieldPanel from wagtail.core.fields import RichTextField from wagtail.core.models import Page +from wagtail.search import index class SenatorHomePage(Page): @@ -18,3 +19,29 @@ class SenatorHomePage(Page): FieldPanel("about"), FieldPanel("my_work"), ] + + +class SenatorNewsIndexPage(Page): + def get_context(self, request): + # Update context to include only published posts, ordered by reverse-chron + context = super().get_context(request) + articles = self.get_children().live().order_by("-first_published_at") + context["articles"] = articles + return context + + +class SenatorNewsPage(Page): + date = models.DateField("datum") + perex = models.TextField("perex") + body = RichTextField("článek", blank=True) + + search_fields = Page.search_fields + [ + index.SearchField("perex"), + index.SearchField("body"), + ] + + content_panels = Page.content_panels + [ + FieldPanel("date"), + FieldPanel("perex"), + FieldPanel("body", classname="full"), + ] diff --git a/senator/templates/senator/base.html b/senator/templates/senator/base.html index d9dc74f6a2d8f93e89e2f161a2eb3fe6ec5c0098..ed5001e1219b5358239c4a6445a43f63ff1f51fe 100644 --- a/senator/templates/senator/base.html +++ b/senator/templates/senator/base.html @@ -847,6 +847,8 @@ <div class="l-subheader for_hidden hidden"></div> </header> + {% block titlebar %}{% endblock %} + <div class="l-main"> <div class="l-main-h i-cf"> diff --git a/senator/templates/senator/senator_news_index_page.html b/senator/templates/senator/senator_news_index_page.html new file mode 100644 index 0000000000000000000000000000000000000000..c09728687c6fc7dafcb0f8f04840e6b4db6e71a8 --- /dev/null +++ b/senator/templates/senator/senator_news_index_page.html @@ -0,0 +1,80 @@ +{% extends "senator/base.html" %} + +{% load wagtailcore_tags %} + +{% block titlebar %} + +<div class="l-titlebar size_medium color_default"> + <div class="l-titlebar-overlay" style="background-color:#f3f3f3"></div> + <div class="l-titlebar-h"> + <div class="l-titlebar-content"> + <h1 itemprop="headline">{{ page.title }}</h1> + </div> + <div class="g-breadcrumbs" xmlns:v="http://rdf.data-vocabulary.org/#"> + <span typeof="v:Breadcrumb"> + <a class="g-breadcrumbs-item" rel="v:url" property="v:title" href="/">Úvodní stránka</a> + </span> + <span class="g-breadcrumbs-separator"></span> + <span class="g-breadcrumbs-item">{{ page.title }}</span> + </div> + </div> +</div> + +{% endblock %} + +{% block content %} + +<section class="l-section"> + <div class="l-section-h i-cf"> + <div class="w-blog layout_flat type_masonry cols_3 with_isotope" itemscope itemtype="https://schema.org/Blog"> + <div class="w-blog-preloader"> + <div class="g-preloader type_1"> + <div></div> + </div> + </div> + <div class="w-blog-list"> + + {% for article in articles %} + <article class="w-blog-post nezarazene post-23687 post type-post status-publish format-standard hentry category-nezarazene" data-id="23687" data-categories="nezarazene"> + <div class="w-blog-post-h"> + <a href="{% pageurl article %}" aria-label="{{ article.title }}"> + <div class="w-blog-post-preview"> + <span class="w-blog-post-preview-icon"></span> + </div> + </a> + <div class="w-blog-post-body"> + <h2 class="w-blog-post-title"> + <a class="entry-title" rel="bookmark" href="{% pageurl article %}">{{ article.title }}</a> + </h2> + <div class="w-blog-post-meta"> + <time class="w-blog-post-meta-date date updated">{{ article.specific.date }}</time><span class="w-blog-post-meta-author vcard author hidden"><a href="https://lukaswagenknecht.cz/author/admin/" class="fn">admin</a></span> </div> + <div class="w-blog-post-content"> + <p>{{ article.specific.perex }}</p> + </div> + <a class="w-blog-post-more w-btn color_ style_" href="{% pageurl article %}"> + <span class="w-btn-label">Zobrazit celé</span> + </a> + </div> + </div> + </article> + {% endfor %} + + </div> + + {% comment %} + <div class="g-pagination"> + <nav class="navigation pagination" role="navigation"> + <h2 class="screen-reader-text">Navigace pro příspěvky</h2> + <div class="nav-links"><span aria-current='page' class='page-numbers current'><span>1</span></span> + <a class='page-numbers' href='https://lukaswagenknecht.cz/novinky/page/2/'><span>2</span></a> + <a class='page-numbers' href='https://lukaswagenknecht.cz/novinky/page/3/'><span>3</span></a> + <a class='page-numbers' href='https://lukaswagenknecht.cz/novinky/page/4/'><span>4</span></a> + <a class="next page-numbers" href="https://lukaswagenknecht.cz/novinky/page/2/">></a></div> + </nav> + </div> + {% endcomment %} + </div> + + </div> +</section> +{% endblock %} diff --git a/senator/templates/senator/senator_news_page.html b/senator/templates/senator/senator_news_page.html new file mode 100644 index 0000000000000000000000000000000000000000..4f226098fd3e13a8f2bacefbb7c52c2d6a6a63c3 --- /dev/null +++ b/senator/templates/senator/senator_news_page.html @@ -0,0 +1,46 @@ +{% extends "senator/base.html" %} + +{% load wagtailcore_tags %} + +{% block titlebar %} + +<div class="l-titlebar size_medium color_default"> + <div class="l-titlebar-overlay" style="background-color:#f3f3f3"></div> + <div class="l-titlebar-h"> + <div class="l-titlebar-content"> + <h1 itemprop="headline">{{ page.get_parent.title }}</h1> + </div> + <div class="g-breadcrumbs" xmlns:v="http://rdf.data-vocabulary.org/#"> + <span typeof="v:Breadcrumb"><a class="g-breadcrumbs-item" rel="v:url" property="v:title" href="/">Úvodní stránka</a></span> + <span class="g-breadcrumbs-separator"></span> + <span typeof="v:Breadcrumb"><a class="g-breadcrumbs-item" rel="v:url" property="v:title" href="{{ page.get_parent.url }}">{{ page.get_parent.title }}</a></span> + <span class="g-breadcrumbs-separator"></span> + <span class="g-breadcrumbs-item">{{ page.title }}</span> + </div> + </div> +</div> + +{% endblock %} + +{% block content %} + +<article class="l-section for_blogpost preview_none post-23625 post type-post status-publish format-standard has-post-thumbnail hentry category-nezarazene"> + <div class="l-section-h i-cf"> + <div class="w-blog"> + <div class="w-blog-post-body"> + <h1 class="w-blog-post-title entry-title" itemprop="headline">{{ page.title }}</h1> + <div class="w-blog-post-meta"> + <time class="w-blog-post-meta-date date updated" itemprop="datePublished" datetime="2019-12-04 13:01:57">{{ page.date }}</time> + </div> + </div> + </div> + </div> +</article> + +<section class="l-section"> + <div class="l-section-h i-cf" itemprop="text"> + {{ page.body|richtext }} + </div> +</section> + +{% endblock %}