start work on stream fields
This commit is contained in:
parent
4fe11dd71c
commit
682fc92361
2 changed files with 16 additions and 6 deletions
12
project/common/fields.py
Normal file
12
project/common/fields.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
from wagtail.wagtailcore.fields import StreamField
|
||||||
|
from wagtail.wagtailcore import blocks
|
||||||
|
|
||||||
|
|
||||||
|
def build_stream_field():
|
||||||
|
return StreamField([
|
||||||
|
('h1', blocks.CharBlock(classname="h1", label="H1")),
|
||||||
|
('h2', blocks.CharBlock(classname="h2", label="H2")),
|
||||||
|
('paragraph', blocks.RichTextBlock()),
|
||||||
|
('raw_html', blocks.RawHTMLBlock(label="Raw HTML")),
|
||||||
|
('list', blocks.ListBlock(blocks.CharBlock(label="List Item")))
|
||||||
|
])
|
|
@ -1,13 +1,11 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
|
from project.common.fields import build_stream_field
|
||||||
from wagtail.wagtailcore.models import Page
|
from wagtail.wagtailcore.models import Page
|
||||||
from wagtail.wagtailcore.fields import RichTextField
|
|
||||||
from wagtail.wagtaildocs.edit_handlers import DocumentChooserPanel
|
from wagtail.wagtaildocs.edit_handlers import DocumentChooserPanel
|
||||||
from wagtail.wagtailadmin.edit_handlers import FieldPanel
|
from wagtail.wagtailadmin.edit_handlers import FieldPanel, StreamFieldPanel
|
||||||
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel
|
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel
|
||||||
from wagtail.wagtailsearch import index
|
from wagtail.wagtailsearch import index
|
||||||
|
|
||||||
from project.common.models import Entity
|
from project.common.models import Entity
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,7 +30,7 @@ class ProjectPage(Entity):
|
||||||
related_name='+'
|
related_name='+'
|
||||||
)
|
)
|
||||||
summary = models.CharField(max_length=500)
|
summary = models.CharField(max_length=500)
|
||||||
body = RichTextField()
|
body = build_stream_field()
|
||||||
project_url = models.URLField(validators=[validate_url], blank=True)
|
project_url = models.URLField(validators=[validate_url], blank=True)
|
||||||
download_url = models.URLField(validators=[validate_url], blank=True)
|
download_url = models.URLField(validators=[validate_url], blank=True)
|
||||||
asset = models.ForeignKey(
|
asset = models.ForeignKey(
|
||||||
|
@ -53,7 +51,7 @@ class ProjectPage(Entity):
|
||||||
content_panels = Page.content_panels + [
|
content_panels = Page.content_panels + [
|
||||||
ImageChooserPanel('main_image'),
|
ImageChooserPanel('main_image'),
|
||||||
FieldPanel('summary'),
|
FieldPanel('summary'),
|
||||||
FieldPanel('body'),
|
StreamFieldPanel('body'),
|
||||||
FieldPanel('download_url'),
|
FieldPanel('download_url'),
|
||||||
FieldPanel('project_url'),
|
FieldPanel('project_url'),
|
||||||
DocumentChooserPanel('asset')
|
DocumentChooserPanel('asset')
|
||||||
|
|
Reference in a new issue