Fixed #14012 -- Corrected the handling of the create user popup dialog in the admin. Thanks to gk@lka.hu for the report, and Ramiro Morales for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13501 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2010-08-06 14:58:05 +00:00
parent f90a25551d
commit 2ab3b52d2a
3 changed files with 20 additions and 4 deletions

View File

@ -2,8 +2,12 @@
{% load i18n %} {% load i18n %}
{% block form_top %} {% block form_top %}
{% if not is_popup %}
<p>{% trans "First, enter a username and password. Then, you'll be able to edit more user options." %}</p> <p>{% trans "First, enter a username and password. Then, you'll be able to edit more user options." %}</p>
<input type="hidden" name="_continue" value="1" /> <input type="hidden" name="_continue" value="1" />
{% else %}
<p>{% trans "Enter a username and password." %}</p>
{% endif %}
{% endblock %} {% endblock %}
{% block after_field_sets %} {% block after_field_sets %}

View File

@ -10,6 +10,7 @@ from django.core.mail import EmailMessage
from django.db import models from django.db import models
from django import forms from django import forms
from django.forms.models import BaseModelFormSet from django.forms.models import BaseModelFormSet
from django.contrib.auth.models import User
from django.contrib.contenttypes import generic from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
@ -579,6 +580,10 @@ class Pizza(models.Model):
class PizzaAdmin(admin.ModelAdmin): class PizzaAdmin(admin.ModelAdmin):
readonly_fields = ('toppings',) readonly_fields = ('toppings',)
class Album(models.Model):
owner = models.ForeignKey(User)
title = models.CharField(max_length=30)
admin.site.register(Article, ArticleAdmin) admin.site.register(Article, ArticleAdmin)
admin.site.register(CustomArticle, CustomArticleAdmin) admin.site.register(CustomArticle, CustomArticleAdmin)
admin.site.register(Section, save_as=True, inlines=[ArticleInline]) admin.site.register(Section, save_as=True, inlines=[ArticleInline])
@ -625,3 +630,4 @@ admin.site.register(Promo)
admin.site.register(ChapterXtra1) admin.site.register(ChapterXtra1)
admin.site.register(Pizza, PizzaAdmin) admin.site.register(Pizza, PizzaAdmin)
admin.site.register(Topping) admin.site.register(Topping)
admin.site.register(Album)

View File

@ -2113,11 +2113,9 @@ class ReadonlyTest(TestCase):
response = self.client.get('/test_admin/admin/admin_views/pizza/add/') response = self.client.get('/test_admin/admin/admin_views/pizza/add/')
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
class IncompleteFormTest(TestCase): class UserAdminTest(TestCase):
""" """
Tests validation of a ModelForm that doesn't explicitly have all data Tests user CRUD functionality.
corresponding to model fields. Model validation shouldn't fail
such a forms.
""" """
fixtures = ['admin-views-users.xml'] fixtures = ['admin-views-users.xml']
@ -2149,3 +2147,11 @@ class IncompleteFormTest(TestCase):
self.assert_('password' not in adminform.form.errors) self.assert_('password' not in adminform.form.errors)
self.assertEquals(adminform.form.errors['password2'], self.assertEquals(adminform.form.errors['password2'],
[u"The two password fields didn't match."]) [u"The two password fields didn't match."])
def test_user_fk_popup(self):
response = self.client.get('/test_admin/admin/admin_views/album/add/')
self.failUnlessEqual(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.assertNotContains(response, 'name="_continue"')