From 210d56953698f375ee9994d16174049251ea0f00 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Mon, 14 Jul 2025 10:53:04 +0300 Subject: [PATCH] Features: 1) Add actions on top and bottom in `ActivationActionsMixin`; 2) Define permissions for activate and deactivate actions. Fixes: None; Extra: Refactor actions list in `ActivationActionsMixin` for better structure and readability; --- core/admin.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/admin.py b/core/admin.py index fe4b3776..d5b9dad2 100644 --- a/core/admin.py +++ b/core/admin.py @@ -84,12 +84,20 @@ class FieldsetsMixin: # noinspection PyUnresolvedReferences class ActivationActionsMixin: - @action(description=_("activate selected %(verbose_name_plural)s")) + actions_on_top = True + actions_on_bottom = True + actions = [ + "delete_selected", + "activate_selected", + "deactivate_selected", + ] + + @action(description=_("activate selected %(verbose_name_plural)s"), permissions=["change"]) def activate_selected(self, request, queryset): queryset.update(is_active=True) self.message_user(request, _("selected items have been activated.")) - @action(description=_("deactivate selected %(verbose_name_plural)s")) + @action(description=_("deactivate selected %(verbose_name_plural)s"), permissions=["change"]) def deactivate_selected(self, request, queryset): queryset.update(is_active=False) self.message_user(request, _("selected items have been deactivated."))