Commit 799c3611 by Sarina Canelake

Merge pull request #3602 from edx/sarina/LMS-2644

Ensure system language is released in dark lang middleware
parents 0b8cc25b 41b25fec
...@@ -10,6 +10,7 @@ in the user's session. ...@@ -10,6 +10,7 @@ in the user's session.
This middleware must be placed before the LocaleMiddleware, but after This middleware must be placed before the LocaleMiddleware, but after
the SessionMiddleware. the SessionMiddleware.
""" """
from django.conf import settings
from django.utils.translation.trans_real import parse_accept_lang_header from django.utils.translation.trans_real import parse_accept_lang_header
...@@ -33,6 +34,7 @@ def dark_parse_accept_lang_header(accept): ...@@ -33,6 +34,7 @@ def dark_parse_accept_lang_header(accept):
for lang, priority in browser_langs: for lang, priority in browser_langs:
lang = CHINESE_LANGUAGE_CODE_MAP.get(lang.lower(), lang) lang = CHINESE_LANGUAGE_CODE_MAP.get(lang.lower(), lang)
django_langs.append((lang, priority)) django_langs.append((lang, priority))
return django_langs return django_langs
# If django 1.7 or higher is used, the right-side can be updated with new-style codes. # If django 1.7 or higher is used, the right-side can be updated with new-style codes.
...@@ -65,7 +67,10 @@ class DarkLangMiddleware(object): ...@@ -65,7 +67,10 @@ class DarkLangMiddleware(object):
""" """
Current list of released languages Current list of released languages
""" """
return DarkLangConfig.current().released_languages_list language_options = DarkLangConfig.current().released_languages_list
if settings.LANGUAGE_CODE not in language_options:
language_options.append(settings.LANGUAGE_CODE)
return language_options
def process_request(self, request): def process_request(self, request):
""" """
......
...@@ -93,6 +93,12 @@ class DarkLangMiddlewareTests(TestCase): ...@@ -93,6 +93,12 @@ class DarkLangMiddlewareTests(TestCase):
self.process_request(accept='rel;q=1.0, unrel;q=0.5') self.process_request(accept='rel;q=1.0, unrel;q=0.5')
) )
def test_accept_with_syslang(self):
self.assertAcceptEquals(
'en;q=1.0, rel;q=0.8',
self.process_request(accept='en;q=1.0, rel;q=0.8, unrel;q=0.5')
)
def test_accept_multiple_released_langs(self): def test_accept_multiple_released_langs(self):
DarkLangConfig( DarkLangConfig(
released_languages=('rel, unrel'), released_languages=('rel, unrel'),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment