summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvin Lindstam <alvin@kundo.se>2016-10-22 19:20:24 -0400
committerTim Graham <timograham@gmail.com>2016-10-24 10:26:16 -0400
commit3a416e4ba9f7094be55110dae8e5a6451984d226 (patch)
tree22d5c6918286ee45099a99a9da0ef44bcb74a09c
parent3f730457d861a661079832792e5085378464a8ff (diff)
[1.10.x] Fixed #27374 -- Made JavaScriptCatalog respect the packages argument.
Backport of 6b5106b1ceec03d945c1104b21feed3e25470fe0 from master
-rw-r--r--django/views/i18n.py3
-rw-r--r--docs/releases/1.10.3.txt3
-rw-r--r--tests/view_tests/tests/test_i18n.py14
3 files changed, 18 insertions, 2 deletions
diff --git a/django/views/i18n.py b/django/views/i18n.py
index b3aaccbd33..baa3e1d4fa 100644
--- a/django/views/i18n.py
+++ b/django/views/i18n.py
@@ -355,7 +355,8 @@ class JavaScriptCatalog(View):
domain = kwargs.get('domain', self.domain)
# If packages are not provided, default to all installed packages, as
# DjangoTranslation without localedirs harvests them all.
- packages = kwargs.get('packages', '').split('+') or self.packages
+ packages = kwargs.get('packages', '')
+ packages = packages.split('+') if packages else self.packages
paths = self.get_paths(packages) if packages else None
self.translation = DjangoTranslation(locale, domain=domain, localedirs=paths)
context = self.get_context_data(**kwargs)
diff --git a/docs/releases/1.10.3.txt b/docs/releases/1.10.3.txt
index 13aadb30ee..a45124fb3a 100644
--- a/docs/releases/1.10.3.txt
+++ b/docs/releases/1.10.3.txt
@@ -17,3 +17,6 @@ Bugfixes
* Added ``model_name`` to the ``allow_migrate()`` calls in ``makemigrations``
(:ticket:`27200`).
+
+* Made the ``JavaScriptCatalog`` view respect the ``packages`` argument;
+ previously it was ignored (:ticket:`27374`).
diff --git a/tests/view_tests/tests/test_i18n.py b/tests/view_tests/tests/test_i18n.py
index e1cf44782d..074080a77b 100644
--- a/tests/view_tests/tests/test_i18n.py
+++ b/tests/view_tests/tests/test_i18n.py
@@ -367,9 +367,21 @@ class JsI18NTestsMultiPackage(SimpleTestCase):
translations of multiple Python packages is requested. See #13388,
#3594 and #13514 for more details.
"""
+ base_trans_string = 'il faut traduire cette cha\\u00eene de caract\\u00e8res de '
+ app1_trans_string = base_trans_string + 'app1'
+ app2_trans_string = base_trans_string + 'app2'
with self.settings(LANGUAGE_CODE='en-us'), override('fr'):
response = self.client.get('/jsi18n_multi_packages1/')
- self.assertContains(response, 'il faut traduire cette cha\\u00eene de caract\\u00e8res de app1')
+ self.assertContains(response, app1_trans_string)
+ self.assertContains(response, app2_trans_string)
+
+ response = self.client.get('/jsi18n/app1/')
+ self.assertContains(response, app1_trans_string)
+ self.assertNotContains(response, app2_trans_string)
+
+ response = self.client.get('/jsi18n/app2/')
+ self.assertNotContains(response, app1_trans_string)
+ self.assertContains(response, app2_trans_string)
@modify_settings(INSTALLED_APPS={'append': ['view_tests.app3', 'view_tests.app4']})
def test_i18n_different_non_english_languages(self):