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;
This commit is contained in:
Egor Pavlovich Gorbunov 2025-07-14 10:53:04 +03:00
parent eb7cc9847a
commit 210d569536

View file

@ -84,12 +84,20 @@ class FieldsetsMixin:
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
class ActivationActionsMixin: 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): def activate_selected(self, request, queryset):
queryset.update(is_active=True) queryset.update(is_active=True)
self.message_user(request, _("selected items have been activated.")) 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): def deactivate_selected(self, request, queryset):
queryset.update(is_active=False) queryset.update(is_active=False)
self.message_user(request, _("selected items have been deactivated.")) self.message_user(request, _("selected items have been deactivated."))