Add common page model with stream field
This commit is contained in:
parent
29a05febdb
commit
bac41e2b74
6 changed files with 92 additions and 0 deletions
15
project/common/blocks.py
Normal file
15
project/common/blocks.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
from wagtail.core.fields import StreamField
|
||||
from wagtail.core import blocks
|
||||
from wagtail.images.blocks import ImageChooserBlock
|
||||
from wagtail.documents.blocks import DocumentChooserBlock
|
||||
from wagtail.embeds.blocks import EmbedBlock
|
||||
from wagtailmarkdown.blocks import MarkdownBlock
|
||||
|
||||
def build_stream_field():
|
||||
return StreamField([
|
||||
('document', DocumentChooserBlock()),
|
||||
('image', ImageChooserBlock()),
|
||||
('markdown', MarkdownBlock()),
|
||||
('paragraph', blocks.RichTextBlock()),
|
||||
('raw_html', blocks.RawHTMLBlock(label="Raw HTML")),
|
||||
])
|
0
project/pages/__init__.py
Normal file
0
project/pages/__init__.py
Normal file
54
project/pages/migrations/0001_initial.py
Normal file
54
project/pages/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Generated by Django 2.0.7 on 2018-07-25 08:02
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import wagtail.core.blocks
|
||||
import wagtail.core.fields
|
||||
import wagtail.documents.blocks
|
||||
import wagtail.images.blocks
|
||||
import wagtailmarkdown.blocks
|
||||
import wagtailmetadata.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('wagtailimages', '0020_add-verbose-name'),
|
||||
('wagtailcore', '0040_page_draft_title'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SectionIndexPage',
|
||||
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')),
|
||||
('created', models.DateTimeField(auto_now_add=True)),
|
||||
('modified', models.DateTimeField(auto_now=True)),
|
||||
('post_date', models.DateTimeField(blank=True, null=True)),
|
||||
('body', wagtail.core.fields.StreamField([('document', wagtail.documents.blocks.DocumentChooserBlock()), ('image', wagtail.images.blocks.ImageChooserBlock()), ('markdown', wagtailmarkdown.blocks.MarkdownBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock()), ('raw_html', wagtail.core.blocks.RawHTMLBlock(label='Raw HTML'))])),
|
||||
('hide_list', models.BooleanField(default=False)),
|
||||
('search_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(wagtailmetadata.models.MetadataMixin, 'wagtailcore.page', models.Model),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SimpleContentPage',
|
||||
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')),
|
||||
('created', models.DateTimeField(auto_now_add=True)),
|
||||
('modified', models.DateTimeField(auto_now=True)),
|
||||
('post_date', models.DateTimeField(blank=True, null=True)),
|
||||
('body', wagtail.core.fields.StreamField([('document', wagtail.documents.blocks.DocumentChooserBlock()), ('image', wagtail.images.blocks.ImageChooserBlock()), ('markdown', wagtailmarkdown.blocks.MarkdownBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock()), ('raw_html', wagtail.core.blocks.RawHTMLBlock(label='Raw HTML'))])),
|
||||
('search_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(wagtailmetadata.models.MetadataMixin, 'wagtailcore.page', models.Model),
|
||||
),
|
||||
]
|
0
project/pages/migrations/__init__.py
Normal file
0
project/pages/migrations/__init__.py
Normal file
22
project/pages/models.py
Normal file
22
project/pages/models.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
from django.db import models
|
||||
from project.common.blocks import build_stream_field
|
||||
from project.common.models import Entity
|
||||
from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel
|
||||
|
||||
|
||||
class SimpleContentPage(Entity):
|
||||
body = build_stream_field()
|
||||
|
||||
content_panels = Entity.content_panels + [
|
||||
StreamFieldPanel('body')
|
||||
]
|
||||
|
||||
|
||||
class SectionIndexPage(Entity):
|
||||
body = build_stream_field()
|
||||
hide_list = models.BooleanField(default=False)
|
||||
|
||||
content_panels = Entity.content_panels + [
|
||||
StreamFieldPanel('body'),
|
||||
FieldPanel('hide_list')
|
||||
]
|
|
@ -44,6 +44,7 @@ INSTALLED_APPS = [
|
|||
'project.home',
|
||||
'project.search',
|
||||
'project.common',
|
||||
'project.pages',
|
||||
|
||||
'wagtail.contrib.forms',
|
||||
'wagtail.contrib.redirects',
|
||||
|
|
Reference in a new issue