Skip to content

Commit

Permalink
Fixed #12650 -- Don't generate invalid XHTML in the admin, databrowse…
Browse files Browse the repository at this point in the history
… apps when

the i18n context processor is active. Thanks to Rob Hudson for the report and
fix suggestion.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14104 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
ramiro committed Oct 10, 2010
1 parent 05d438b commit d084439
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
2 changes: 1 addition & 1 deletion django/contrib/admin/templates/admin/base.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE|default:"en-us" }}" xml:lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/base.css{% endblock %}" />
Expand Down
2 changes: 1 addition & 1 deletion django/contrib/databrowse/templates/databrowse/base.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE|default:"en-us" }}" xml:lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<title>{% block title %}{% endblock %}</title>
{% block style %}
Expand Down
30 changes: 30 additions & 0 deletions tests/regressiontests/admin_views/tests.py
Expand Up @@ -18,6 +18,7 @@
from django.utils.encoding import iri_to_uri
from django.utils.html import escape
from django.utils.translation import get_date_formats, activate, deactivate
import django.template.context

# local test models
from models import Article, BarAccount, CustomArticle, EmptyModel, \
Expand Down Expand Up @@ -2254,3 +2255,32 @@ def test_filters(self):

except ImportError:
pass

class ValidXHTMLTests(TestCase):
fixtures = ['admin-views-users.xml']
urlbit = 'admin'

def setUp(self):
self._context_processors = None
self._use_i18n, settings.USE_I18N = settings.USE_I18N, False
if 'django.core.context_processors.i18n' in settings.TEMPLATE_CONTEXT_PROCESSORS:
self._context_processors = settings.TEMPLATE_CONTEXT_PROCESSORS
cp = list(settings.TEMPLATE_CONTEXT_PROCESSORS)
cp.remove('django.core.context_processors.i18n')
settings.TEMPLATE_CONTEXT_PROCESSORS = tuple(cp)
# Force re-evaluation of the contex processor list
django.template.context._standard_context_processors = None
self.client.login(username='super', password='secret')

def tearDown(self):
self.client.logout()
if self._context_processors is not None:
settings.TEMPLATE_CONTEXT_PROCESSORS = self._context_processors
# Force re-evaluation of the contex processor list
django.template.context._standard_context_processors = None
settings.USE_I18N = self._use_i18n

def testLangNamePresent(self):
response = self.client.get('/test_admin/%s/admin_views/' % self.urlbit)
self.failIf(' lang=""' in response.content)
self.failIf(' xml:lang=""' in response.content)

0 comments on commit d084439

Please sign in to comment.