Commit fa1a74ff authored by Ramiro Morales's avatar Ramiro Morales
Browse files

[1.2.X] Fixed #14012 (again) -- Admin app: Don't show the full user edition...

[1.2.X] Fixed #14012 (again) -- Admin app: Don't show the full user edition view after adding a user in a FK popup. Thanks dburke for reporting this regression introduced in r14628.

Backport of [15637] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15638 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent f87936fa
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -142,9 +142,12 @@ class UserAdmin(admin.ModelAdmin):
        its superclass implementation but is customized because the User model
        has a slightly different workflow.
        """
        if '_addanother' not in request.POST:
            # The 'Save' button should act like the 'Save and continue
            # editing' button
        # We should allow further modification of the user just added i.e. the
        # 'Save' button should behave like the 'Save and continue editing'
        # button except in two scenarios:
        # * The user has pressed the 'Save and add another' button
        # * We are adding a user in a popup
        if '_addanother' not in request.POST and '_popup' not in request.POST:
            request.POST['_continue'] = 1
        return super(UserAdmin, self).response_add(request, obj, post_url_continue)

+12 −0
Original line number Diff line number Diff line
@@ -2448,13 +2448,25 @@ class UserAdminTest(TestCase):
                          [u"The two password fields didn't match."])

    def test_user_fk_popup(self):
        """Quick user addition in a FK popup shouldn't invoke view for further user customization"""
        response = self.client.get('/test_admin/admin/admin_views/album/add/')
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, '/test_admin/admin/auth/user/add')
        self.assertContains(response, 'class="add-another" id="add_id_owner" onclick="return showAddAnotherPopup(this);"')
        response = self.client.get('/test_admin/admin/auth/user/add/?_popup=1')
        self.assertEqual(response.status_code, 200)
        self.assertNotContains(response, 'name="_continue"')
        self.assertNotContains(response, 'name="_addanother"')
        data = {
            'username': 'newuser',
            'password1': 'newpassword',
            'password2': 'newpassword',
            '_popup': '1',
            '_save': '1',
        }
        response = self.client.post('/test_admin/admin/auth/user/add/?_popup=1', data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'dismissAddAnotherPopup')

    def test_save_add_another_button(self):
        user_count = User.objects.count()