angrybeanie_wagtail/env/lib/python3.12/site-packages/wagtail/snippets/apps.py

29 lines
1.4 KiB
Python
Raw Normal View History

2025-07-25 21:32:16 +10:00
from django.apps import AppConfig
from django.db.models.signals import post_migrate
from django.utils.translation import gettext_lazy as _
class WagtailSnippetsAppConfig(AppConfig):
name = "wagtail.snippets"
label = "wagtailsnippets"
verbose_name = _("Wagtail snippets")
def ready(self):
from .models import create_extra_permissions, register_deferred_snippets
# Register all snippets for which register_snippet was called up to this point -
# these registrations had to be deferred as we could not guarantee that models were
# fully loaded at that point (but now they are).
register_deferred_snippets()
# Models with certain mixins, e.g. DraftStateMixin, may require extra permissions
# in the admin. We need to make sure these are available without having to be
# created manually.
# Django also uses post_migrate signal to create permissions for models based on
# the model's Meta options:
# https://github.com/django/django/blob/64b3c413da011f55469165256261f406a277e822/django/contrib/auth/apps.py#L19-L22
# However, we cannot put the extra permissions in the model mixin's Meta class,
# as we do not know the concrete model's name. Thus, we use our own signal handler
# to create the extra permissions.
post_migrate.connect(create_extra_permissions, sender=self)