Features: 1) Add return type annotations for admin actions.

Fixes: 1) Correct translation wrapping by converting to strings with str().

Extra: 1) Minor refactoring and cleanup in admin action methods for clarity.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-05-20 19:46:10 +03:00
parent 87369b48a9
commit 57a6654c89

View file

@ -34,25 +34,27 @@ from .models import (
class BasicModelAdmin(ModelAdmin): class BasicModelAdmin(ModelAdmin):
@admin.action(description=_("activate selected %(verbose_name_plural)s")) @admin.action(description=str(_("activate selected %(verbose_name_plural)s")))
def activate_selected(self, request, queryset): def activate_selected(self, request, queryset) -> str:
queryset.update(is_active=True) queryset.update(is_active=True)
return ""
@admin.action(description=_("deactivate selected %(verbose_name_plural)s")) @admin.action(description=str(_("deactivate selected %(verbose_name_plural)s")))
def deactivate_selected(self, request, queryset): def deactivate_selected(self, request, queryset) -> str:
queryset.update(is_active=False) queryset.update(is_active=False)
return ""
def get_actions(self, request): def get_actions(self, request):
actions = super().get_actions(request) actions = super().get_actions(request)
actions["activate_selected"] = ( actions["activate_selected"] = (
self.activate_selected, self.activate_selected,
"activate_selected", "activate_selected",
_("activate selected %(verbose_name_plural)s"), str(_("activate selected %(verbose_name_plural)s")),
) )
actions["deactivate_selected"] = ( actions["deactivate_selected"] = (
self.deactivate_selected, self.deactivate_selected,
"deactivate_selected", "deactivate_selected",
_("deactivate selected %(verbose_name_plural)s"), str(_("deactivate selected %(verbose_name_plural)s")),
) )
return actions return actions