angrybeanie_wagtail/env/lib/python3.12/site-packages/wagtail/users/wagtail_hooks.py

36 lines
1.2 KiB
Python
Raw Permalink Normal View History

2025-07-25 21:32:16 +10:00
from django.apps import apps
from django.core.exceptions import ImproperlyConfigured
from django.utils.module_loading import import_string
from wagtail import hooks
from wagtail.users.views.bulk_actions import (
AssignRoleBulkAction,
DeleteBulkAction,
SetActiveStateBulkAction,
)
def get_viewset_cls(app_config, viewset_name):
try:
viewset_cls = import_string(getattr(app_config, viewset_name))
except (AttributeError, ImportError) as e:
raise ImproperlyConfigured(
f"Invalid setting for {app_config.__class__.__name__}.{viewset_name}: {e}"
)
return viewset_cls
@hooks.register("register_admin_viewset")
def register_viewset():
app_config = apps.get_app_config("wagtailusers")
user_viewset_cls = get_viewset_cls(app_config, "user_viewset")
group_viewset_cls = get_viewset_cls(app_config, "group_viewset")
return [
user_viewset_cls("wagtailusers_users", url_prefix="users"),
group_viewset_cls("wagtailusers_groups", url_prefix="groups"),
]
for action_class in [AssignRoleBulkAction, DeleteBulkAction, SetActiveStateBulkAction]:
hooks.register("register_bulk_action", action_class)