diff --git a/.isort.cfg b/.isort.cfg index 1c35b69a72a98586a6b6d0ba165c5690f2d1ea5c..b1d9cc78fc0f276b22216a69376fd883cc21b6c8 100644 --- a/.isort.cfg +++ b/.isort.cfg @@ -4,4 +4,4 @@ line_length = 88 multi_line_output = 3 default_sectiont = "THIRDPARTY" include_trailing_comma = true -known_third_party = arrow,django,environ,faker,ics,pirates,pytest,pytz,requests,snapshottest,wagtail +known_third_party = arrow,django,environ,faker,ics,pirates,pytest,pytz,requests,snapshottest,wagtail,wagtailmetadata diff --git a/senate/migrations/0002_senatehomepage_search_image.py b/senate/migrations/0002_senatehomepage_search_image.py new file mode 100644 index 0000000000000000000000000000000000000000..5e647978b01520eaef6106f2c8a1ecd4bf50eb4d --- /dev/null +++ b/senate/migrations/0002_senatehomepage_search_image.py @@ -0,0 +1,27 @@ +# Generated by Django 3.0.6 on 2020-06-01 14:39 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailimages", "0022_uploadedimage"), + ("senate", "0001_initial"), + ] + + operations = [ + migrations.AddField( + model_name="senatehomepage", + name="search_image", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.Image", + verbose_name="Search image", + ), + ), + ] diff --git a/senate/models.py b/senate/models.py index 9a9758007da1eac4588ecd5e896791592c95ee91..5c84490f1e02ab0d259afd885f0c3aa3d2131baf 100644 --- a/senate/models.py +++ b/senate/models.py @@ -1,10 +1,17 @@ from django.db import models from django.utils.translation import gettext_lazy -from wagtail.admin.edit_handlers import FieldPanel, MultiFieldPanel, StreamFieldPanel +from wagtail.admin.edit_handlers import ( + FieldPanel, + HelpPanel, + MultiFieldPanel, + StreamFieldPanel, +) from wagtail.core import blocks from wagtail.core.fields import StreamField from wagtail.core.models import Page from wagtail.images.blocks import ImageChooserBlock +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtailmetadata.models import MetadataPageMixin class PersonBlock(blocks.StructBlock): @@ -21,7 +28,7 @@ class PersonBlock(blocks.StructBlock): label = "osoba" -class SenateHomePage(Page): +class SenateHomePage(MetadataPageMixin, Page): senators = StreamField( [("item", PersonBlock())], verbose_name="naši senátoři", blank=True ) @@ -39,7 +46,15 @@ class SenateHomePage(Page): promote_panels = [ MultiFieldPanel( - [FieldPanel("seo_title"), FieldPanel("search_description")], + [ + HelpPanel( + "Název stránky na předchozím tabu slouží k rozlišení stránek " + "v Majáku. V prohlížeči a SEO metadatech se zobrazí tento titulek." + ), + FieldPanel("seo_title"), + FieldPanel("search_description"), + ImageChooserPanel("search_image"), + ], gettext_lazy("Common page configuration"), ), ] diff --git a/senate/templates/senate/base.html b/senate/templates/senate/base.html index 90ebb63ffceca31100dda63585978842008eb8ee..fbab4db856da910925c2292959d80d459644dd54 100644 --- a/senate/templates/senate/base.html +++ b/senate/templates/senate/base.html @@ -1,13 +1,11 @@ -{% load static wagtailuserbar wagtailcore_tags %} +{% load static wagtailuserbar wagtailcore_tags wagtailmetadata_tags %} <!doctype html> <html lang="cs"> <head> <meta charset="utf-8"> - - <title>{% firstof page.seo_title page.title %}</title> - <meta name="description" content="{{ page.search_description }}"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0, shrink-to-fit=no"> - <meta name="author" content="Piráti"> + {% meta_tags %} + <script src="https://kit.fontawesome.com/cbdc6198f3.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="{% static "shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css" %}"> <link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">