summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2010-05-02 19:48:17 +0000
committerJannis Leidel <jannis@leidel.info>2010-05-02 19:48:17 +0000
commit99a512300cd4e61d86269d3b28bf5a8add5980c1 (patch)
treeeace83db217add96737617c1603684b64a1eb75b
parentef0e10cccf7788948e7254a208b8477911e6cbb0 (diff)
[1.1.X] Fixed #13388 - Refined changes made in r12384 in the JavaScript i18n admin view.
Backport of r13069 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@13070 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/views/i18n.py2
-rw-r--r--tests/regressiontests/admin_views/tests.py32
2 files changed, 32 insertions, 2 deletions
diff --git a/django/views/i18n.py b/django/views/i18n.py
index 23d248a2bc..e151496bcd 100644
--- a/django/views/i18n.py
+++ b/django/views/i18n.py
@@ -169,7 +169,7 @@ def javascript_catalog(request, domain='djangojs', packages=None):
except IOError:
catalog = None
if catalog is not None:
- t.update(catalog._catalog)
+ t = catalog._catalog
src = [LibHead]
plural = None
if '' in t:
diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py
index c297e37a43..798d3d4e9f 100644
--- a/tests/regressiontests/admin_views/tests.py
+++ b/tests/regressiontests/admin_views/tests.py
@@ -2,6 +2,7 @@
import re
import datetime
+from django.conf import settings
from django.core.files import temp as tempfile
from django.test import TestCase
from django.contrib.auth.models import User, Permission
@@ -13,6 +14,7 @@ from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
from django.forms.util import ErrorList
from django.utils.cache import get_max_age
from django.utils.html import escape
+from django.utils.translation import activate, deactivate
from django.utils.encoding import iri_to_uri
# local test models
@@ -262,6 +264,34 @@ class AdminViewBasicTest(TestCase):
"Changelist filter isn't showing options contained inside a model field 'choices' option named group."
)
+ def testI18NLanguageNonEnglishDefault(self):
+ """
+ Check if the Javascript i18n view returns an empty language catalog
+ if the default language is non-English but the selected language
+ is English. See #13388 and #3594 for more details.
+ """
+ old_language_code = settings.LANGUAGE_CODE
+ settings.LANGUAGE_CODE = 'fr'
+ activate('en-us')
+ response = self.client.get('/test_admin/admin/jsi18n/')
+ self.assertNotContains(response, 'Choisir une heure')
+ deactivate()
+ settings.LANGUAGE_CODE = old_language_code
+
+ def testI18NLanguageNonEnglishFallback(self):
+ """
+ Makes sure that the fallback language is still working properly
+ in cases where the selected language cannot be found.
+ """
+ old_language_code = settings.LANGUAGE_CODE
+ settings.LANGUAGE_CODE = 'fr'
+ activate('none')
+ response = self.client.get('/test_admin/admin/jsi18n/')
+ self.assertContains(response, 'Choisir une heure')
+ deactivate()
+ settings.LANGUAGE_CODE = old_language_code
+
+
class SaveAsTests(TestCase):
fixtures = ['admin-views-users.xml','admin-views-person.xml']
@@ -1842,5 +1872,5 @@ class NeverCacheTests(TestCase):
def testJsi18n(self):
"Check the never-cache status of the Javascript i18n view"
- response = self.client.get('/test_admin/jsi18n/')
+ response = self.client.get('/test_admin/admin/jsi18n/')
self.failUnlessEqual(get_max_age(response), None)