dnscms: better organizer chooser, fixes slugs for organizers, better slugs
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class DnsCmsConfig(AppConfig):
|
||||
name = "dnscms"
|
||||
|
||||
def ready(self):
|
||||
from dnscms import signals # noqa: F401
|
||||
@@ -173,7 +173,7 @@ MEDIA_URL = "/media/"
|
||||
# Wagtail settings
|
||||
|
||||
WAGTAIL_SITE_NAME = "dnscms"
|
||||
WAGTAIL_ALLOW_UNICODE_SLUGS = False
|
||||
WAGTAIL_ALLOW_UNICODE_SLUGS = True
|
||||
# Headless: the Next.js frontend uses trailing-slash-free URLs, so strip
|
||||
# trailing slashes from links generated by Wagtail (e.g. the GraphQL `url` field).
|
||||
WAGTAIL_APPEND_SLASH = False
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
from django.db.models.signals import pre_save
|
||||
from django.dispatch import receiver
|
||||
from wagtail.models import Page
|
||||
|
||||
from dnscms.utils import slugify
|
||||
|
||||
SLUGGED_SNIPPETS = {"events.EventOrganizer", "events.EventCategory"}
|
||||
|
||||
|
||||
@receiver(pre_save)
|
||||
def normalize_slug(sender, instance, **kwargs):
|
||||
label = f"{sender._meta.app_label}.{sender.__name__}"
|
||||
if isinstance(instance, Page) or label in SLUGGED_SNIPPETS:
|
||||
if getattr(instance, "slug", None):
|
||||
instance.slug = slugify(instance.slug)
|
||||
@@ -0,0 +1,7 @@
|
||||
from django.utils.text import slugify as django_slugify
|
||||
|
||||
NORWEGIAN_TRANSLITERATIONS = str.maketrans({"æ": "ae", "ø": "o", "å": "a"})
|
||||
|
||||
|
||||
def slugify(value: str) -> str:
|
||||
return django_slugify(value.lower().translate(NORWEGIAN_TRANSLITERATIONS))
|
||||
Reference in New Issue
Block a user