move featured events from settings to home page

This commit is contained in:
2024-05-15 01:05:10 +02:00
parent c1e26b39ed
commit 469b4bd1e9
11 changed files with 197 additions and 108 deletions

6
dnscms/home/apps.py Normal file
View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class HomeConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "home"

View File

@ -0,0 +1,28 @@
# Generated by Django 5.0.6 on 2024-05-14 22:54
import django.db.models.deletion
import modelcluster.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('events', '0025_delete_featuredeventsorderable'),
('home', '0006_remove_event_page_ptr_delete_association_and_more'),
]
operations = [
migrations.CreateModel(
name='HomePageFeaturedEvents',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.eventpage')),
('parent', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='featured_events', to='home.homepage')),
],
options={
'abstract': False,
},
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 5.0.6 on 2024-05-14 22:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0007_homepagefeaturedevents'),
]
operations = [
migrations.AlterField(
model_name='homepagefeaturedevents',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,15 +1,44 @@
from django.db import models
from wagtail.models import Page
from wagtail.fields import StreamField
from wagtail import blocks
from wagtail.admin.panels import FieldPanel
from wagtail.images.blocks import ImageChooserBlock
# https://docs.wagtail.org/en/stable/topics/pages.html
# https://docs.wagtail.org/en/stable/reference/streamfield/blocks.html#wagtail.fields.StreamField
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):
pass
max_count = 1
subpage_types = []
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,
),
]
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"),
]