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

WIP: PDP - homepage

parent 1fe4fba0
No related branches found
No related tags found
No related merge requests found
# Generated by Django 3.1.2 on 2020-11-27 09:39
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
class Migration(migrations.Migration):
initial = True
dependencies = [
("wagtailcore", "0052_pagelogentry"),
("wagtailimages", "0022_uploadedimage"),
]
operations = [
migrations.CreateModel(
name="PdpHomePage",
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",
),
),
(
"matomo_id",
models.IntegerField(
blank=True,
null=True,
verbose_name="Matomo ID pro sledování návštěvnosti",
),
),
(
"top_menu",
wagtail.core.fields.StreamField(
[
(
"item",
wagtail.core.blocks.StructBlock(
[
(
"name",
wagtail.core.blocks.CharBlock(
label="název"
),
),
(
"page",
wagtail.core.blocks.PageChooserBlock(
label="stránka",
page_type=[
"uniweb.UniwebHomePage",
"uniweb.UniwebFlexiblePage",
],
),
),
]
),
)
],
blank=True,
verbose_name="horní menu",
),
),
(
"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",
},
bases=(
"wagtailcore.page",
wagtailmetadata.models.MetadataMixin,
models.Model,
),
),
]
from django.db import models
from django.utils.translation import gettext_lazy
from wagtail.admin.edit_handlers import (
FieldPanel,
HelpPanel,
MultiFieldPanel,
StreamFieldPanel,
)
from wagtail.core.fields import StreamField
from wagtail.core.models import Page
from wagtail.images.edit_handlers import ImageChooserPanel
# Create your models here.
from shared.mixins import MatomoMixin
from tuning import help
from uniweb import models as uniweb
class PdpHomePage(
Page,
uniweb.UniwebContentMixin,
uniweb.UniwebTopmenuMixin,
uniweb.MetadataPageMixin,
MatomoMixin,
):
### PANELS
content_panels = Page.content_panels + [
StreamFieldPanel("content"),
]
promote_panels = [
MultiFieldPanel(
[
FieldPanel("seo_title"),
FieldPanel("search_description"),
ImageChooserPanel("search_image"),
HelpPanel(help.build(help.IMPORTANT_TITLE)),
],
gettext_lazy("Common page configuration"),
),
]
settings_panels = [
MultiFieldPanel(
[
# definovano v MatomoMixin, TODO obstrahovat rozsireni settings_panels do mixinu
FieldPanel("matomo_id"),
],
"nastavení webu",
),
StreamFieldPanel("top_menu"), # z uniwebTopmenuMixin
]
subpage_types = [
# "uniweb.UniwebFlexiblePage",
]
### OTHERS
class Meta:
verbose_name = "Pirátská datová platforma"
@property
def root_page(self):
return self
from django.db import models
class MatomoMixin(models.Model):
matomo_id = models.IntegerField(
"Matomo ID pro sledování návštěvnosti", blank=True, null=True
)
class Meta:
abstract = True
......@@ -16,6 +16,7 @@ from wagtail.images.blocks import ImageChooserBlock
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtailmetadata.models import MetadataPageMixin
from shared.mixins import MatomoMixin
from tuning import help
from .constants import (
......@@ -221,18 +222,24 @@ class UniwebContentMixin(models.Model):
abstract = True
class UniwebHomePage(Page, UniwebContentMixin, MetadataPageMixin):
### FIELDS
class UniwebTopmenuMixin(models.Model):
# settings
matomo_id = models.IntegerField(
"Matomo ID pro sledování návštěvnosti", blank=True, null=True
)
top_menu = StreamField(
[("item", MenuItemBlock())],
verbose_name="horní menu",
blank=True,
)
class Meta:
abstract = True
class UniwebHomePage(
Page, UniwebContentMixin, UniwebTopmenuMixin, MetadataPageMixin, MatomoMixin
):
### FIELDS
# settings
narrow_layout = models.BooleanField(
"zúžený obsah stránky",
default=False,
......@@ -260,12 +267,12 @@ class UniwebHomePage(Page, UniwebContentMixin, MetadataPageMixin):
settings_panels = [
MultiFieldPanel(
[
FieldPanel("matomo_id"),
FieldPanel("matomo_id"), # z MatomoMixin
FieldPanel("narrow_layout"),
],
"nastavení webu",
),
StreamFieldPanel("top_menu"),
StreamFieldPanel("top_menu"), # z UniwebTopmenuMixin
]
### RELATIONS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment