Skip to content

Commit e86e394

Browse files
gutierriGutierri Barboza
andauthored
add admin actions description, if it exists (#58) (#60)
Co-authored-by: Gutierri Barboza <gutierri@work>
1 parent b59a93f commit e86e394

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

admin_confirm/admin.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,8 +464,9 @@ def func_wrapper(modeladmin, request, queryset):
464464
# get_actions will only return the actions that are allowed
465465
has_perm = modeladmin.get_actions(request).get(func.__name__) is not None
466466

467-
action_display_name = snake_to_title_case(func.__name__)
468-
title = f"Confirm Action: {action_display_name}"
467+
__, __, action_display_name = modeladmin.get_action(request.POST['action'])
468+
469+
title = f"{_('Confirm Action')}: {action_display_name}"
469470

470471
context = {
471472
**modeladmin.admin_site.each_context(request),

admin_confirm/tests/unit/test_confirm_actions.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,16 @@ def test_should_use_action_confirmation_template_if_set(self):
278278
self.assertEqual(expected_template, actual_template)
279279
# Clear our setting to not affect other tests
280280
ShopAdmin.action_confirmation_template = None
281+
282+
def test_action_confirm_title_equal_description_field(self):
283+
response = self.client.post(
284+
reverse("admin:market_shop_changelist"),
285+
data={
286+
"action": ["show_description"],
287+
"select_across": ["0"],
288+
"index": ["0"],
289+
"_selected_action": ["3", "2", "1"],
290+
},
291+
follow=True,
292+
)
293+
self.assertIn("Confirm Action: foobar description", response.rendered_content)

tests/market/admin/shop_admin.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
from django.contrib import admin
12
from django.contrib.admin import ModelAdmin
23
from admin_confirm import AdminConfirmMixin, confirm_action
34

45

56
class ShopAdmin(AdminConfirmMixin, ModelAdmin):
67
confirmation_fields = ["name"]
7-
actions = ["show_message", "show_message_no_confirmation"]
8+
actions = [
9+
"show_message", "show_message_no_confirmation", "show_description"
10+
]
811
search_fields = ["name"]
912

1013
@confirm_action
@@ -23,3 +26,8 @@ def show_message_no_confirmation(modeladmin, request, queryset):
2326

2427
def has_delete_permission(self, request, obj=None):
2528
return request.user.is_superuser
29+
30+
@confirm_action
31+
@admin.action(description='foobar description')
32+
def show_description(modeladmin, request, queryset):
33+
pass

0 commit comments

Comments
 (0)