diff --git a/senator/migrations/0007_senatoraboutpage.py b/senator/migrations/0007_senatoraboutpage.py new file mode 100644 index 0000000000000000000000000000000000000000..13b80009b22a586a0526401f0fd23d11788aecae --- /dev/null +++ b/senator/migrations/0007_senatoraboutpage.py @@ -0,0 +1,55 @@ +# Generated by Django 3.0.5 on 2020-04-17 12:59 + +import django.db.models.deletion +import wagtail.core.blocks +import wagtail.core.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailimages", "0001_squashed_0021"), + ("wagtailcore", "0045_assign_unlock_grouppagepermission"), + ("senator", "0006_senatormultitextpage"), + ] + + operations = [ + migrations.CreateModel( + name="SenatorAboutPage", + 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", + ), + ), + ( + "profile", + wagtail.core.fields.RichTextField( + blank=True, verbose_name="profil" + ), + ), + ( + "body", + wagtail.core.fields.StreamField( + [("paragraph", wagtail.core.blocks.RichTextBlock())] + ), + ), + ( + "image", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="wagtailimages.Image", + ), + ), + ], + options={"verbose_name": "[senátor] O mně",}, + bases=("wagtailcore.page",), + ), + ] diff --git a/senator/models.py b/senator/models.py index a791d0b8986412936f73a9f353ac76c662010252..ea8c509342755e789e4c96f6bbd721cc66fa2da0 100644 --- a/senator/models.py +++ b/senator/models.py @@ -26,6 +26,7 @@ class SenatorHomePage(Page): "senator.SenatorNewsIndexPage", "senator.SenatorTextPage", "senator.SenatorMultiTextPage", + "senator.SenatorAboutPage", ] class Meta: @@ -103,3 +104,23 @@ class SenatorMultiTextPage(Page): class Meta: verbose_name = "[senátor] Flexibilní textová stránka" + + +class SenatorAboutPage(Page): + profile = RichTextField("profil", blank=True) + image = models.ForeignKey("wagtailimages.Image", on_delete=models.PROTECT) + body = StreamField([("paragraph", blocks.RichTextBlock())]) + + search_fields = Page.search_fields + [ + index.SearchField("profile"), + index.SearchField("body"), + ] + + content_panels = Page.content_panels + [ + FieldPanel("profile", classname="full"), + ImageChooserPanel("image"), + StreamFieldPanel("body"), + ] + + class Meta: + verbose_name = "[senátor] O mně" diff --git a/senator/templates/senator/senator_about_page.html b/senator/templates/senator/senator_about_page.html new file mode 100644 index 0000000000000000000000000000000000000000..35dbe2607fde74a7a94625d272195c12897ee108 --- /dev/null +++ b/senator/templates/senator/senator_about_page.html @@ -0,0 +1,77 @@ +{% extends "senator/base.html" %} + +{% load wagtailcore_tags %} +{% load wagtailimages_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 wpb_row height_medium" id="kdojsem"> + <div class="l-section-h i-cf"> + <div class="g-cols vc_row type_default valign_top"> + <div class="vc_col-sm-4 vc_col-lg-4 vc_col-md-4 vc_col-xs-12 wpb_column vc_column_container"> + <div class="vc_column-inner"> + <div class="wpb_wrapper"> + <div class="w-image portret"> + <div class="w-image-h"> + {% image page.image fill-576x1024 class="attachment-large sizes-large" %} + </div> + </div> + </div> + </div> + </div> + <div class="vc_col-sm-8 vc_col-lg-8 vc_col-md-8 vc_col-xs-12 wpb_column vc_column_container"> + <div class="vc_column-inner"> + <div class="wpb_wrapper"> + <div class="wpb_text_column "> + <div class="wpb_wrapper"> + {{ page.profile|richtext }} + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</section> + +{% for block in page.body %} +<section class="l-section wpb_row height_medium {% cycle "color_alternate" "" %}"> + <div class="l-section-h i-cf"> + <div class="g-cols vc_row type_default valign_top"> + <div class="vc_col-sm-12 wpb_column vc_column_container"> + <div class="vc_column-inner"> + <div class="wpb_wrapper"> + <div class="wpb_text_column "> + <div class="wpb_wrapper"> + {% include_block block %} + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</section> +{% endfor %} + +{% endblock %}