29 lines
1.4 KiB
Python
29 lines
1.4 KiB
Python
|
|
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)
|