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.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15637 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
12bd7bcb35
commit
4b13e76deb
|
@ -142,9 +142,12 @@ class UserAdmin(admin.ModelAdmin):
|
||||||
its superclass implementation but is customized because the User model
|
its superclass implementation but is customized because the User model
|
||||||
has a slightly different workflow.
|
has a slightly different workflow.
|
||||||
"""
|
"""
|
||||||
if '_addanother' not in request.POST:
|
# We should allow further modification of the user just added i.e. the
|
||||||
# The 'Save' button should act like the 'Save and continue
|
# 'Save' button should behave like the 'Save and continue editing'
|
||||||
# editing' button
|
# 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
|
request.POST['_continue'] = 1
|
||||||
return super(UserAdmin, self).response_add(request, obj, post_url_continue)
|
return super(UserAdmin, self).response_add(request, obj, post_url_continue)
|
||||||
|
|
||||||
|
|
|
@ -2637,13 +2637,25 @@ class UserAdminTest(TestCase):
|
||||||
[u"The two password fields didn't match."])
|
[u"The two password fields didn't match."])
|
||||||
|
|
||||||
def test_user_fk_popup(self):
|
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/')
|
response = self.client.get('/test_admin/admin/admin_views/album/add/')
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertContains(response, '/test_admin/admin/auth/user/add')
|
self.assertContains(response, '/test_admin/admin/auth/user/add')
|
||||||
self.assertContains(response, 'class="add-another" id="add_id_owner" onclick="return showAddAnotherPopup(this);"')
|
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')
|
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="_continue"')
|
||||||
self.assertNotContains(response, 'name="_addanother"')
|
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):
|
def test_save_add_another_button(self):
|
||||||
user_count = User.objects.count()
|
user_count = User.objects.count()
|
||||||
|
|
Loading…
Reference in New Issue