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:
parent
f90a25551d
commit
2ab3b52d2a
|
@ -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 %}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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"')
|
||||||
|
|
Loading…
Reference in New Issue