Loading django/contrib/auth/__init__.py +3 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from django.apps import apps as django_apps from django.conf import settings from django.core.exceptions import ImproperlyConfigured, PermissionDenied from django.utils.module_loading import import_string from django.utils.translation import LANGUAGE_SESSION_KEY from django.middleware.csrf import rotate_token from .signals import user_logged_in, user_logged_out, user_login_failed Loading Loading @@ -108,12 +109,12 @@ def logout(request): # remember language choice saved to session # for backwards compatibility django_language is also checked (remove in 1.8) language = request.session.get('_language', request.session.get('django_language')) language = request.session.get(LANGUAGE_SESSION_KEY, request.session.get('django_language')) request.session.flush() if language is not None: request.session['_language'] = language request.session[LANGUAGE_SESSION_KEY] = language if hasattr(request, 'user'): from django.contrib.auth.models import AnonymousUser Loading django/contrib/auth/tests/test_views.py +3 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ from django.http import QueryDict, HttpRequest from django.utils.encoding import force_text from django.utils.http import urlquote from django.utils.six.moves.urllib.parse import urlparse, ParseResult from django.utils.translation import LANGUAGE_SESSION_KEY from django.utils._os import upath from django.test import TestCase, override_settings from django.test.utils import patch_logger Loading Loading @@ -718,12 +719,12 @@ class LogoutTest(AuthViewsTestCase): # Create a new session with language engine = import_module(settings.SESSION_ENGINE) session = engine.SessionStore() session['_language'] = 'pl' session[LANGUAGE_SESSION_KEY] = 'pl' session.save() self.client.cookies[settings.SESSION_COOKIE_NAME] = session.session_key self.client.get('/logout/') self.assertEqual(self.client.session['_language'], 'pl') self.assertEqual(self.client.session[LANGUAGE_SESSION_KEY], 'pl') @skipIfCustomUser Loading django/utils/translation/__init__.py +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ __all__ = [ 'npgettext', 'npgettext_lazy', ] LANGUAGE_SESSION_KEY = '_language' class TranslatorCommentWarning(SyntaxWarning): pass Loading django/utils/translation/trans_real.py +2 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ from django.utils._os import upath from django.utils.safestring import mark_safe, SafeData from django.utils import six, lru_cache from django.utils.six import StringIO from django.utils.translation import TranslatorCommentWarning, trim_whitespace from django.utils.translation import TranslatorCommentWarning, trim_whitespace, LANGUAGE_SESSION_KEY # Translations are cached in a dictionary for every language+app tuple. Loading Loading @@ -478,7 +478,7 @@ def get_language_from_request(request, check_path=False): if hasattr(request, 'session'): # for backwards compatibility django_language is also checked (remove in 1.8) lang_code = request.session.get('_language', request.session.get('django_language')) lang_code = request.session.get(LANGUAGE_SESSION_KEY, request.session.get('django_language')) if lang_code in supported and lang_code is not None and check_for_language(lang_code): return lang_code Loading django/views/i18n.py +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ from django import http from django.apps import apps from django.conf import settings from django.template import Context, Template from django.utils.translation import check_for_language, to_locale, get_language from django.utils.translation import check_for_language, to_locale, get_language, LANGUAGE_SESSION_KEY from django.utils.encoding import smart_text from django.utils.formats import get_format_modules, get_format from django.utils._os import upath Loading Loading @@ -36,7 +36,7 @@ def set_language(request): lang_code = request.POST.get('language', None) if lang_code and check_for_language(lang_code): if hasattr(request, 'session'): request.session['_language'] = lang_code request.session[LANGUAGE_SESSION_KEY] = lang_code else: response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code) return response Loading Loading
django/contrib/auth/__init__.py +3 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from django.apps import apps as django_apps from django.conf import settings from django.core.exceptions import ImproperlyConfigured, PermissionDenied from django.utils.module_loading import import_string from django.utils.translation import LANGUAGE_SESSION_KEY from django.middleware.csrf import rotate_token from .signals import user_logged_in, user_logged_out, user_login_failed Loading Loading @@ -108,12 +109,12 @@ def logout(request): # remember language choice saved to session # for backwards compatibility django_language is also checked (remove in 1.8) language = request.session.get('_language', request.session.get('django_language')) language = request.session.get(LANGUAGE_SESSION_KEY, request.session.get('django_language')) request.session.flush() if language is not None: request.session['_language'] = language request.session[LANGUAGE_SESSION_KEY] = language if hasattr(request, 'user'): from django.contrib.auth.models import AnonymousUser Loading
django/contrib/auth/tests/test_views.py +3 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ from django.http import QueryDict, HttpRequest from django.utils.encoding import force_text from django.utils.http import urlquote from django.utils.six.moves.urllib.parse import urlparse, ParseResult from django.utils.translation import LANGUAGE_SESSION_KEY from django.utils._os import upath from django.test import TestCase, override_settings from django.test.utils import patch_logger Loading Loading @@ -718,12 +719,12 @@ class LogoutTest(AuthViewsTestCase): # Create a new session with language engine = import_module(settings.SESSION_ENGINE) session = engine.SessionStore() session['_language'] = 'pl' session[LANGUAGE_SESSION_KEY] = 'pl' session.save() self.client.cookies[settings.SESSION_COOKIE_NAME] = session.session_key self.client.get('/logout/') self.assertEqual(self.client.session['_language'], 'pl') self.assertEqual(self.client.session[LANGUAGE_SESSION_KEY], 'pl') @skipIfCustomUser Loading
django/utils/translation/__init__.py +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ __all__ = [ 'npgettext', 'npgettext_lazy', ] LANGUAGE_SESSION_KEY = '_language' class TranslatorCommentWarning(SyntaxWarning): pass Loading
django/utils/translation/trans_real.py +2 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ from django.utils._os import upath from django.utils.safestring import mark_safe, SafeData from django.utils import six, lru_cache from django.utils.six import StringIO from django.utils.translation import TranslatorCommentWarning, trim_whitespace from django.utils.translation import TranslatorCommentWarning, trim_whitespace, LANGUAGE_SESSION_KEY # Translations are cached in a dictionary for every language+app tuple. Loading Loading @@ -478,7 +478,7 @@ def get_language_from_request(request, check_path=False): if hasattr(request, 'session'): # for backwards compatibility django_language is also checked (remove in 1.8) lang_code = request.session.get('_language', request.session.get('django_language')) lang_code = request.session.get(LANGUAGE_SESSION_KEY, request.session.get('django_language')) if lang_code in supported and lang_code is not None and check_for_language(lang_code): return lang_code Loading
django/views/i18n.py +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ from django import http from django.apps import apps from django.conf import settings from django.template import Context, Template from django.utils.translation import check_for_language, to_locale, get_language from django.utils.translation import check_for_language, to_locale, get_language, LANGUAGE_SESSION_KEY from django.utils.encoding import smart_text from django.utils.formats import get_format_modules, get_format from django.utils._os import upath Loading Loading @@ -36,7 +36,7 @@ def set_language(request): lang_code = request.POST.get('language', None) if lang_code and check_for_language(lang_code): if hasattr(request, 'session'): request.session['_language'] = lang_code request.session[LANGUAGE_SESSION_KEY] = lang_code else: response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code) return response Loading