Skip to content
Snippets Groups Projects
Commit 28b09afa authored by jarmil's avatar jarmil
Browse files

WIP: PDP: subpage, a presun Jupyteru zuniwebu do PDP

parent a03e8929
No related branches found
No related tags found
No related merge requests found
# Generated by Django 3.1.2 on 2020-11-27 10:04
import django.db.models.deletion
import wagtail.contrib.table_block.blocks
import wagtail.core.blocks
import wagtail.core.fields
import wagtail.documents.blocks
import wagtail.images.blocks
import wagtailmetadata.models
from django.db import migrations, models
import uniweb.models
class Migration(migrations.Migration):
dependencies = [
("wagtailcore", "0052_pagelogentry"),
("wagtailimages", "0022_uploadedimage"),
("pdp", "0001_initial"),
]
operations = [
migrations.CreateModel(
name="PdpSubPage",
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",
),
),
(
"content",
wagtail.core.fields.StreamField(
[
(
"title",
wagtail.core.blocks.CharBlock(
group="nadpisy",
icon="title",
label="nadpis",
template="uniweb/blocks/title.html",
),
),
(
"advanced_title",
wagtail.core.blocks.StructBlock(
[
(
"align",
wagtail.core.blocks.ChoiceBlock(
choices=[
("left", "vlevo"),
("center", "uprostřed"),
("right", "vpravo"),
],
label="zarovnání",
),
),
(
"color",
wagtail.core.blocks.ChoiceBlock(
choices=[
("black_on_white", "černá na bílé"),
("white_on_black", "bílá na černé"),
("white_on_blue", "bílá na modré"),
(
"white_on_cyan",
"bílá na tyrkysové",
),
(
"white_on_violet",
"bílá na fialové",
),
],
label="barva",
),
),
(
"title",
wagtail.core.blocks.CharBlock(
label="nadpis"
),
),
]
),
),
(
"picture_title",
wagtail.core.blocks.StructBlock(
[
(
"color",
wagtail.core.blocks.ChoiceBlock(
choices=[
("black_on_white", "černá na bílé"),
("white_on_black", "bílá na černé"),
("white_on_blue", "bílá na modré"),
(
"white_on_cyan",
"bílá na tyrkysové",
),
(
"white_on_violet",
"bílá na fialové",
),
],
label="barva",
),
),
(
"title",
wagtail.core.blocks.CharBlock(
label="nadpis"
),
),
(
"picture",
wagtail.images.blocks.ImageChooserBlock(
help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)",
label="obrázek",
),
),
]
),
),
(
"text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
group="texty",
label="text",
template="uniweb/blocks/text.html",
),
),
(
"advanced_text",
wagtail.core.blocks.StructBlock(
[
(
"align",
wagtail.core.blocks.ChoiceBlock(
choices=[
("left", "vlevo"),
("center", "uprostřed"),
("right", "vpravo"),
],
label="zarovnání",
),
),
(
"color",
wagtail.core.blocks.ChoiceBlock(
choices=[
("black_on_white", "černá na bílé"),
("white_on_black", "bílá na černé"),
("white_on_blue", "bílá na modré"),
(
"white_on_cyan",
"bílá na tyrkysové",
),
(
"white_on_violet",
"bílá na fialové",
),
],
label="barva",
),
),
(
"text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="text",
),
),
]
),
),
(
"text_columns",
wagtail.core.blocks.StructBlock(
[
(
"left_text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="levý sloupec",
),
),
(
"right_text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="pravý sloupec",
),
),
]
),
),
(
"advanced_text_columns",
wagtail.core.blocks.StructBlock(
[
(
"align",
wagtail.core.blocks.ChoiceBlock(
choices=[
("left", "vlevo"),
("center", "uprostřed"),
("right", "vpravo"),
],
label="zarovnání",
),
),
(
"color",
wagtail.core.blocks.ChoiceBlock(
choices=[
("black_on_white", "černá na bílé"),
("white_on_black", "bílá na černé"),
("white_on_blue", "bílá na modré"),
(
"white_on_cyan",
"bílá na tyrkysové",
),
(
"white_on_violet",
"bílá na fialové",
),
],
label="barva",
),
),
(
"left_text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="levý sloupec",
),
),
(
"right_text",
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="pravý sloupec",
),
),
]
),
),
(
"gallery",
wagtail.core.blocks.ListBlock(
wagtail.images.blocks.ImageChooserBlock(
label="obrázek"
),
group="ostatní",
icon="image",
label="galerie",
template="uniweb/blocks/gallery.html",
),
),
(
"picture_list",
wagtail.core.blocks.StructBlock(
[
(
"color",
wagtail.core.blocks.ChoiceBlock(
choices=[
("black_on_white", "černá na bílé"),
("white_on_black", "bílá na černé"),
("white_on_blue", "bílá na modré"),
(
"white_on_cyan",
"bílá na tyrkysové",
),
(
"white_on_violet",
"bílá na fialové",
),
],
label="barva",
),
),
(
"items",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.RichTextBlock(
features=[
"h2",
"h3",
"h4",
"h5",
"bold",
"italic",
"ol",
"ul",
"hr",
"link",
"document-link",
"image",
"superscript",
"subscript",
"strikethrough",
"blockquote",
],
label="odstavec",
),
label="odstavce",
),
),
(
"picture",
wagtail.images.blocks.ImageChooserBlock(
help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)",
label="obrázek",
),
),
]
),
),
(
"table",
wagtail.contrib.table_block.blocks.TableBlock(
group="ostatní",
label="tabulka",
template="uniweb/blocks/table.html",
),
),
(
"jupyter",
wagtail.documents.blocks.DocumentChooserBlock(
group="ostatní", label="Jupyter notebook"
),
),
],
blank=True,
verbose_name="obsah stránky",
),
),
(
"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": "Pirátská datová platforma - podstránka",
},
bases=(
"wagtailcore.page",
uniweb.models.SubpageMixin,
wagtailmetadata.models.MetadataMixin,
models.Model,
),
),
]
......@@ -8,18 +8,37 @@ from wagtail.admin.edit_handlers import (
)
from wagtail.core.fields import StreamField
from wagtail.core.models import Page
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin
from shared.mixins import MatomoMixin
from tuning import help
from uniweb import models as uniweb
class PdpContentMixin(models.Model):
content = StreamField(
uniweb.UNIWEB_STREAM_CHOICES
+ [
(
"jupyter",
DocumentChooserBlock(label="Jupyter notebook", group="ostatní"),
),
],
verbose_name="obsah stránky",
blank=True,
)
class Meta:
abstract = True
class PdpHomePage(
Page,
uniweb.UniwebContentMixin,
PdpContentMixin,
uniweb.UniwebTopmenuMixin,
uniweb.MetadataPageMixin,
MetadataPageMixin,
MatomoMixin,
):
......@@ -53,7 +72,7 @@ class PdpHomePage(
]
subpage_types = [
# "uniweb.UniwebFlexiblePage",
"pdp.PdpSubPage",
]
### OTHERS
......@@ -64,3 +83,35 @@ class PdpHomePage(
@property
def root_page(self):
return self
class PdpSubPage(Page, PdpContentMixin, uniweb.SubpageMixin, MetadataPageMixin):
### FIELDS
### PANELS
promote_panels = [
MultiFieldPanel(
[
FieldPanel("slug"),
FieldPanel("seo_title"),
FieldPanel("search_description"),
ImageChooserPanel("search_image"),
HelpPanel(help.build(help.NO_SEO_TITLE, help.NO_SEARCH_IMAGE)),
],
gettext_lazy("Common page configuration"),
),
]
content_panels = Page.content_panels + [
StreamFieldPanel("content"),
]
settings_panels = []
### RELATIONS
parent_page_types = ["pdp.PdpHomePage"]
subpage_types = []
### OTHERS
class Meta:
verbose_name = "Pirátská datová platforma - podstránka"
{% extends "uniweb/base.html" %}
{% block content %}
<main>
{% include "uniweb/snippet_sections.html" %}
</main>
{% endblock %}
{% extends "uniweb/base.html" %}
{% load wagtailcore_tags %}
{% block content %}
<main>
{% include "uniweb/snippet_sections.html" %}
</main>
{% endblock %}
......@@ -11,7 +11,6 @@ from wagtail.contrib.table_block.blocks import TableBlock
from wagtail.core import blocks
from wagtail.core.fields import StreamField
from wagtail.core.models import Page
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.images.blocks import ImageChooserBlock
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin
......@@ -164,56 +163,55 @@ class SubpageMixin:
return self.search_image or self.root_page.get_meta_image()
UNIWEB_STREAM_CHOICES = [
(
"title",
blocks.CharBlock(
label="nadpis",
icon="title",
group="nadpisy",
template="uniweb/blocks/title.html",
),
),
("advanced_title", AdvancedTitleBlock()),
("picture_title", PictureTitleBlock()),
(
"text",
blocks.RichTextBlock(
label="text",
features=RICH_TEXT_FEATURES,
group="texty",
template="uniweb/blocks/text.html",
),
),
("advanced_text", AdvancedTextBlock()),
("text_columns", ColumnsTextBlock()),
("advanced_text_columns", AdvancedColumnsTextBlock()),
(
"gallery",
blocks.ListBlock(
ImageChooserBlock(label="obrázek"),
label="galerie",
icon="image",
group="ostatní",
template="uniweb/blocks/gallery.html",
),
),
("picture_list", PictureListBlock()),
(
"table",
TableBlock(
label="tabulka",
group="ostatní",
template="uniweb/blocks/table.html",
),
),
]
class UniwebContentMixin(models.Model):
content = StreamField(
[
(
"title",
blocks.CharBlock(
label="nadpis",
icon="title",
group="nadpisy",
template="uniweb/blocks/title.html",
),
),
("advanced_title", AdvancedTitleBlock()),
("picture_title", PictureTitleBlock()),
(
"text",
blocks.RichTextBlock(
label="text",
features=RICH_TEXT_FEATURES,
group="texty",
template="uniweb/blocks/text.html",
),
),
("advanced_text", AdvancedTextBlock()),
("text_columns", ColumnsTextBlock()),
("advanced_text_columns", AdvancedColumnsTextBlock()),
(
"gallery",
blocks.ListBlock(
ImageChooserBlock(label="obrázek"),
label="galerie",
icon="image",
group="ostatní",
template="uniweb/blocks/gallery.html",
),
),
("picture_list", PictureListBlock()),
(
"table",
TableBlock(
label="tabulka",
group="ostatní",
template="uniweb/blocks/table.html",
),
),
(
"jupyter",
DocumentChooserBlock(label="Jupyter notebook", group="ostatní"),
),
],
UNIWEB_STREAM_CHOICES,
verbose_name="obsah stránky",
blank=True,
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment