Files
neuf-www/dnscms/home/models.py

46 lines
1.1 KiB
Python

from django.db import models
from grapple.models import (
GraphQLCollection,
GraphQLForeignKey,
)
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from wagtail.admin.panels import (
InlinePanel,
PageChooserPanel,
)
from wagtail.models import Orderable, Page
class HomePage(Page):
max_count = 1
content_panels = Page.content_panels + [
InlinePanel("featured_events", heading="Fremhevede arrangementer")
]
graphql_fields = [
GraphQLCollection(
GraphQLForeignKey,
"featured_events",
"events.EventPage",
source="featured_events.event",
required=True,
item_required=True,
),
]
search_fields = []
class HomePageFeaturedEvents(ClusterableModel, Orderable):
parent = ParentalKey("home.HomePage", related_name="featured_events")
event = models.ForeignKey(
"events.EventPage",
on_delete=models.CASCADE,
)
panels = [
PageChooserPanel("event", "events.EventPage"),
]