add support for featuring events
This commit is contained in:
@ -34,6 +34,7 @@ INSTALLED_APPS = [
|
||||
"graphene_django",
|
||||
"wagtail.contrib.forms",
|
||||
"wagtail.contrib.redirects",
|
||||
"wagtail.contrib.settings",
|
||||
"wagtail.embeds",
|
||||
"wagtail.sites",
|
||||
"wagtail.users",
|
||||
|
@ -0,0 +1,38 @@
|
||||
# Generated by Django 5.0.6 on 2024-05-14 22:01
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('events', '0019_alter_eventorganizer_options_eventpage_organizers'),
|
||||
('wagtailcore', '0093_uploadedfile'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='EventPromoSettings',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.site')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FeaturedEventsOrderble',
|
||||
fields=[
|
||||
('id', models.BigAutoField(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')),
|
||||
('event_promo_settings', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='featured_events', to='events.eventpromosettings')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['sort_order'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.6 on 2024-05-14 22:03
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('events', '0020_eventpromosettings_featuredeventsorderble'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='FeaturedEventsOrderble',
|
||||
new_name='FeaturedEventsOrderable',
|
||||
),
|
||||
]
|
@ -0,0 +1,28 @@
|
||||
# Generated by Django 5.0.6 on 2024-05-14 22:05
|
||||
|
||||
import django.db.models.deletion
|
||||
import modelcluster.fields
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('events', '0021_rename_featuredeventsorderble_featuredeventsorderable'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='featuredeventsorderable',
|
||||
options={},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='featuredeventsorderable',
|
||||
name='sort_order',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='featuredeventsorderable',
|
||||
name='event_promo_settings',
|
||||
field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='featured_events', to='events.eventpromosettings'),
|
||||
),
|
||||
]
|
@ -23,6 +23,10 @@ from wagtail.admin.panels import (
|
||||
PageChooserPanel,
|
||||
TitleFieldPanel,
|
||||
)
|
||||
from wagtail.contrib.settings.models import (
|
||||
BaseSiteSetting,
|
||||
register_setting,
|
||||
)
|
||||
from wagtail.fields import StreamField
|
||||
from wagtail.images.blocks import ImageChooserBlock
|
||||
from wagtail.models import Orderable, Page
|
||||
@ -109,6 +113,35 @@ class EventOrganizer(ClusterableModel):
|
||||
return self.name
|
||||
|
||||
|
||||
@register_setting
|
||||
# @register_query_field("eventPromoSettings")
|
||||
class EventPromoSettings(ClusterableModel, BaseSiteSetting):
|
||||
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 FeaturedEventsOrderable(ClusterableModel):
|
||||
event_promo_settings = ParentalKey("events.EventPromoSettings", related_name="featured_events")
|
||||
event = models.ForeignKey(
|
||||
"events.EventPage",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
panels = [
|
||||
PageChooserPanel("event", "events.EventPage"),
|
||||
]
|
||||
|
||||
|
||||
class EventPage(Page):
|
||||
# no children
|
||||
subpage_types = []
|
||||
|
Reference in New Issue
Block a user