Commit 8a59084c authored by Karen Tracey's avatar Karen Tracey
Browse files

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
parent 627f4623
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+6 −0
Original line number Diff line number Diff line
@@ -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
+29 −1
Original line number Diff line number Diff line
@@ -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']