Fixed #12218: Added some helpful messages when Go is pressed in admin actions and there
is nothing to do because no action was selected or no items are selected. git-svn-id: http://code.djangoproject.com/svn/django/trunk@11837 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
627f4623b7
commit
8a59084c3a
1
AUTHORS
1
AUTHORS
|
@ -397,6 +397,7 @@ answer newbie questions, and generally made Django that much better:
|
|||
Jozko Skrablin <jozko.skrablin@gmail.com>
|
||||
Ben Slavin <benjamin.slavin@gmail.com>
|
||||
sloonz <simon.lipp@insa-lyon.fr>
|
||||
Paul Smith <blinkylights23@gmail.com>
|
||||
Warren Smith <warren@wandrsmith.net>
|
||||
smurf@smurf.noris.de
|
||||
Vsevolod Solovyov
|
||||
|
|
|
@ -692,6 +692,9 @@ class ModelAdmin(BaseModelAdmin):
|
|||
# perform an action on it, so bail.
|
||||
selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME)
|
||||
if not selected:
|
||||
# Reminder that something needs to be selected or nothing will happen
|
||||
msg = "Items must be selected in order to perform actions on them. No items have been changed."
|
||||
self.message_user(request, _(msg))
|
||||
return None
|
||||
|
||||
response = func(self, request, queryset.filter(pk__in=selected))
|
||||
|
@ -703,6 +706,9 @@ class ModelAdmin(BaseModelAdmin):
|
|||
return response
|
||||
else:
|
||||
return HttpResponseRedirect(".")
|
||||
else:
|
||||
msg = "No action selected."
|
||||
self.message_user(request, _(msg))
|
||||
|
||||
@csrf_protect
|
||||
@transaction.commit_on_success
|
||||
|
|
|
@ -1157,7 +1157,6 @@ class AdminActionsTest(TestCase):
|
|||
self.assert_('action-checkbox-column' in response.content,
|
||||
"Expected an action-checkbox-column in response")
|
||||
|
||||
|
||||
def test_multiple_actions_form(self):
|
||||
"""
|
||||
Test that actions come from the form whose submit button was pressed (#10618).
|
||||
|
@ -1175,6 +1174,35 @@ class AdminActionsTest(TestCase):
|
|||
self.assertEquals(len(mail.outbox), 1)
|
||||
self.assertEquals(mail.outbox[0].subject, 'Greetings from a function action')
|
||||
|
||||
def test_user_message_on_none_selected(self):
|
||||
"""
|
||||
User should see a warning when 'Go' is pressed and no items are selected.
|
||||
"""
|
||||
action_data = {
|
||||
ACTION_CHECKBOX_NAME: [],
|
||||
'action' : 'delete_selected',
|
||||
'index': 0,
|
||||
}
|
||||
response = self.client.post('/test_admin/admin/admin_views/subscriber/', action_data)
|
||||
msg = """Items must be selected in order to perform actions on them. No items have been changed."""
|
||||
self.assertContains(response, msg)
|
||||
self.failUnlessEqual(Subscriber.objects.count(), 2)
|
||||
|
||||
def test_user_message_on_no_action(self):
|
||||
"""
|
||||
User should see a warning when 'Go' is pressed and no action is selected.
|
||||
"""
|
||||
action_data = {
|
||||
ACTION_CHECKBOX_NAME: [1, 2],
|
||||
'action' : '',
|
||||
'index': 0,
|
||||
}
|
||||
response = self.client.post('/test_admin/admin/admin_views/subscriber/', action_data)
|
||||
msg = """No action selected."""
|
||||
self.assertContains(response, msg)
|
||||
self.failUnlessEqual(Subscriber.objects.count(), 2)
|
||||
|
||||
|
||||
class TestInlineNotEditable(TestCase):
|
||||
fixtures = ['admin-views-users.xml']
|
||||
|
||||
|
|
Loading…
Reference in New Issue