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 ( ...@@ -8,18 +8,37 @@ from wagtail.admin.edit_handlers import (
) )
from wagtail.core.fields import StreamField from wagtail.core.fields import StreamField
from wagtail.core.models import Page from wagtail.core.models import Page
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.images.edit_handlers import ImageChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin
from shared.mixins import MatomoMixin from shared.mixins import MatomoMixin
from tuning import help from tuning import help
from uniweb import models as uniweb 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( class PdpHomePage(
Page, Page,
uniweb.UniwebContentMixin, PdpContentMixin,
uniweb.UniwebTopmenuMixin, uniweb.UniwebTopmenuMixin,
uniweb.MetadataPageMixin, MetadataPageMixin,
MatomoMixin, MatomoMixin,
): ):
...@@ -53,7 +72,7 @@ class PdpHomePage( ...@@ -53,7 +72,7 @@ class PdpHomePage(
] ]
subpage_types = [ subpage_types = [
# "uniweb.UniwebFlexiblePage", "pdp.PdpSubPage",
] ]
### OTHERS ### OTHERS
...@@ -64,3 +83,35 @@ class PdpHomePage( ...@@ -64,3 +83,35 @@ class PdpHomePage(
@property @property
def root_page(self): def root_page(self):
return 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 ...@@ -11,7 +11,6 @@ from wagtail.contrib.table_block.blocks import TableBlock
from wagtail.core import blocks from wagtail.core import blocks
from wagtail.core.fields import StreamField from wagtail.core.fields import StreamField
from wagtail.core.models import Page from wagtail.core.models import Page
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.images.blocks import ImageChooserBlock from wagtail.images.blocks import ImageChooserBlock
from wagtail.images.edit_handlers import ImageChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin from wagtailmetadata.models import MetadataPageMixin
...@@ -164,9 +163,7 @@ class SubpageMixin: ...@@ -164,9 +163,7 @@ class SubpageMixin:
return self.search_image or self.root_page.get_meta_image() return self.search_image or self.root_page.get_meta_image()
class UniwebContentMixin(models.Model): UNIWEB_STREAM_CHOICES = [
content = StreamField(
[
( (
"title", "title",
blocks.CharBlock( blocks.CharBlock(
...@@ -209,11 +206,12 @@ class UniwebContentMixin(models.Model): ...@@ -209,11 +206,12 @@ class UniwebContentMixin(models.Model):
template="uniweb/blocks/table.html", template="uniweb/blocks/table.html",
), ),
), ),
( ]
"jupyter",
DocumentChooserBlock(label="Jupyter notebook", group="ostatní"),
), class UniwebContentMixin(models.Model):
], content = StreamField(
UNIWEB_STREAM_CHOICES,
verbose_name="obsah stránky", verbose_name="obsah stránky",
blank=True, blank=True,
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment