From a07d243fdb6d2b98a824a3a31af571cdcc340be4 Mon Sep 17 00:00:00 2001 From: Diana Huang <dkh@edx.org> Date: Thu, 13 Feb 2014 14:50:34 -0500 Subject: [PATCH] Clean up the display and dialog to use user preferences instead of the current language. --- common/djangoapps/student/views.py | 14 ++++++++------ common/djangoapps/user_api/middleware.py | 4 ++-- lms/envs/common.py | 2 ++ .../dashboard/_dashboard_info_language.html | 2 +- lms/templates/modal/_modal-settings-language.html | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index b685a0ad4dd..ead9c67db6f 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -63,6 +63,7 @@ import external_auth.views from bulk_email.models import Optout, CourseAuthorization import shoppingcart +from user_api.models import UserPreference, LANGUAGE_KEY import track.views @@ -472,13 +473,13 @@ def dashboard(request): language_options = DarkLangConfig.current().released_languages_list - if not language_options: - language_options = [settings.LANGUAGE_CODE] + language_options.append(settings.LANGUAGE_CODE) - try: - current_language = translation.get_language_info(translation.get_language()) - except KeyError: - current_language = translation.get_language_info(settings.LANGUAGE_CODE) + cur_lang_code = UserPreference.get_preference(request.user, LANGUAGE_KEY) + if cur_lang_code: + current_language = settings.LANGUAGE_DICT[cur_lang_code] + else: + current_language = settings.LANGUAGE_DICT[settings.LANGUAGE_CODE] context = { 'course_enrollment_pairs': course_enrollment_pairs, @@ -499,6 +500,7 @@ def dashboard(request): 'billing_email': settings.PAYMENT_SUPPORT_EMAIL, 'language_options': language_options, 'current_language': current_language, + 'current_language_code': cur_lang_code, } return render_to_response('dashboard.html', context) diff --git a/common/djangoapps/user_api/middleware.py b/common/djangoapps/user_api/middleware.py index 97abe476cd5..faeb51423d7 100644 --- a/common/djangoapps/user_api/middleware.py +++ b/common/djangoapps/user_api/middleware.py @@ -16,9 +16,9 @@ class UserPreferenceMiddleware(object): def process_request(self, request): """ If a user's UserPreference contains a language preference and there is - no language set on the session, use the user's preference. + no language set on the session (i.e. from dark language overrides), use the user's preference. """ - if 'django_language' not in request.session and request.user.is_authenticated(): + if request.user.is_authenticated() and 'django_language' not in request.session: user_pref = UserPreference.get_preference(request.user, LANGUAGE_KEY) if user_pref: request.session['django_language'] = user_pref diff --git a/lms/envs/common.py b/lms/envs/common.py index b6a877300bc..0acc47e4b4c 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -555,6 +555,8 @@ LANGUAGES = ( ('zh-tw', u'å°ç£æ£é«”'), # Chinese (Taiwan) ) +LANGUAGE_DICT = dict(LANGUAGES) + USE_I18N = True USE_L10N = True diff --git a/lms/templates/dashboard/_dashboard_info_language.html b/lms/templates/dashboard/_dashboard_info_language.html index 9314c4c7357..606895c763e 100644 --- a/lms/templates/dashboard/_dashboard_info_language.html +++ b/lms/templates/dashboard/_dashboard_info_language.html @@ -7,5 +7,5 @@ ${_("Preferred Language")} (<a href="#change_language" rel="leanModal" class="edit-language">${_("edit")}</a>) </span> - <span class="data">${current_language['name_local']}</span> + <span class="data">${current_language}</span> </li> diff --git a/lms/templates/modal/_modal-settings-language.html b/lms/templates/modal/_modal-settings-language.html index 709e03a22a7..c0858c711d2 100644 --- a/lms/templates/modal/_modal-settings-language.html +++ b/lms/templates/modal/_modal-settings-language.html @@ -34,7 +34,7 @@ % for abbrv in language_options: % for language in settings.LANGUAGES: % if abbrv == language[0]: - % if abbrv == current_language['code']: + % if abbrv == current_language_code: <option value="${language[0]}" selected="selected">${language[1]}</option> % else: <option value="${language[0]}">${language[1]}</option> -- GitLab