Skip to content

Commit

Permalink
🦵 Exhibit Body (#150)
Browse files Browse the repository at this point in the history
* Converts Exhibit.body to StreamField

* Fixes Exhibits body serializer

* Fixes lint error

* Reverts missing api exhibits/ fields

* Adds subheading type
  • Loading branch information
mrharpo committed Feb 5, 2024
1 parent 37df19f commit b217cea
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 7 deletions.
30 changes: 30 additions & 0 deletions exhibits/migrations/0006_alter_exhibitpage_body.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Generated by Django 4.2.8 on 2024-01-04 18:26

from django.db import migrations
import wagtail.blocks
import wagtail.fields


class Migration(migrations.Migration):
dependencies = [
("exhibits", "0005_exhibitpage_featured"),
]

operations = [
migrations.AlterField(
model_name="exhibitpage",
name="body",
field=wagtail.fields.StreamField(
[
("text", wagtail.blocks.RichTextBlock()),
(
"heading",
wagtail.blocks.RichTextBlock(
features=["italic"], form_classname="title", icon="title"
),
),
],
use_json_field=True,
),
),
]
36 changes: 36 additions & 0 deletions exhibits/migrations/0007_alter_exhibitpage_body.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Generated by Django 4.2.9 on 2024-01-10 20:56

from django.db import migrations
import wagtail.blocks
import wagtail.fields


class Migration(migrations.Migration):
dependencies = [
("exhibits", "0006_alter_exhibitpage_body"),
]

operations = [
migrations.AlterField(
model_name="exhibitpage",
name="body",
field=wagtail.fields.StreamField(
[
("text", wagtail.blocks.RichTextBlock()),
(
"heading",
wagtail.blocks.RichTextBlock(
features=["italic"], form_classname="title", icon="title"
),
),
(
"subheading",
wagtail.blocks.RichTextBlock(
features=["italic"], form_classname="title", icon="title"
),
),
],
use_json_field=True,
),
),
]
27 changes: 22 additions & 5 deletions exhibits/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
from rest_framework import serializers
from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel
from wagtail.api import APIField
from wagtail.fields import RichTextField
from wagtail.blocks import RichTextBlock
from wagtail.fields import StreamField
from wagtail.images.api.fields import ImageRenditionField
from wagtail.models import Orderable, Page
from wagtail.search import index
from wagtail_headless_preview.models import HeadlessMixin

from authors.serializers import AuthorSerializer
from ov_wag.serializers import RichTextSerializer


class ExhibitsOrderable(Orderable):
Expand Down Expand Up @@ -83,15 +83,32 @@ class ImageApiSchema(BaseModel):
class ExhibitPageApiSchema(BaseModel):
id: int
title: str
body: str
body: list[str]
cover_image: ImageApiSchema
cover_thumb: ImageApiSchema
hero_image: ImageApiSchema
hero_thumb: ImageApiSchema


class ExhibitPage(HeadlessMixin, Page):
body = RichTextField(blank=True)
body = StreamField(
[
('text', RichTextBlock()),
(
'heading',
RichTextBlock(
form_classname='title', features=['italic'], icon='title'
),
),
(
'subheading',
RichTextBlock(
form_classname='title', features=['italic'], icon='title'
),
),
],
use_json_field=True,
)

cover_image = models.ForeignKey(
'wagtailimages.Image',
Expand Down Expand Up @@ -137,7 +154,7 @@ class ExhibitPage(HeadlessMixin, Page):

api_fields: ClassVar[list[APIField]] = [
APIField('title'),
APIField('body', serializer=RichTextSerializer()),
APIField('body'),
APIField(
'cover_image',
serializer=ImageRenditionField('fill-1600x500'),
Expand Down
3 changes: 1 addition & 2 deletions exhibits/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ class ExhibitsAPIViewSet(BaseAPIViewSet):
listing_default_fields: ClassVar[list[str]] = [
*BaseAPIViewSet.listing_default_fields,
'title',
'body',
'authors',
'cover_image',
'cover_thumb',
'hero_image',
'hero_thumb',
'authors',
]

0 comments on commit b217cea

Please sign in to comment.