From 8f30932b6f122301fcbed0f6396a76d3994cee93 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 4 Jul 2015 04:36:55 -0400 Subject: [PATCH] Fix locale and language not updating on edit or on login --- mayan/apps/common/apps.py | 3 +-- mayan/apps/common/handlers.py | 9 +++++++-- mayan/apps/common/views.py | 6 +++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py index 7aa53fc9dd..b7602e35bd 100644 --- a/mayan/apps/common/apps.py +++ b/mayan/apps/common/apps.py @@ -61,6 +61,5 @@ class CommonApp(MayanAppConfig): ], sources=['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'authentication:password_change_view', 'common:setup_list', 'common:tools_list'] ) - - user_logged_in.connect(user_locale_profile_session_config, dispatch_uid='user_locale_profile_session_config', sender=settings.AUTH_USER_MODEL) + user_logged_in.connect(user_locale_profile_session_config, dispatch_uid='user_locale_profile_session_config') post_save.connect(user_locale_profile_create, dispatch_uid='user_locale_profile_create', sender=settings.AUTH_USER_MODEL) diff --git a/mayan/apps/common/handlers.py b/mayan/apps/common/handlers.py index 798101c7d6..5326d8a0bc 100644 --- a/mayan/apps/common/handlers.py +++ b/mayan/apps/common/handlers.py @@ -1,14 +1,19 @@ from __future__ import unicode_literals from django.conf import settings +from django.utils import timezone, translation from .models import UserLocaleProfile def user_locale_profile_session_config(sender, request, user, **kwargs): + user_locale_profile, created = UserLocaleProfile.objects.get_or_create(user=user) + + timezone.activate(user_locale_profile.timezone) + translation.activate(user_locale_profile.language) + if hasattr(request, 'session'): - user_locale_profile, created = UserLocaleProfile.objects.get_or_create(user=user) - request.session['django_language'] = user_locale_profile.language + request.session[translation.LANGUAGE_SESSION_KEY] = user_locale_profile.language request.session['django_timezone'] = user_locale_profile.timezone else: request.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_locale_profile.language) diff --git a/mayan/apps/common/views.py b/mayan/apps/common/views.py index ad21935fe8..e188bfdbf4 100644 --- a/mayan/apps/common/views.py +++ b/mayan/apps/common/views.py @@ -11,6 +11,7 @@ from django.core.urlresolvers import reverse from django.http import Http404, HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext +from django.utils import timezone, translation from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _ from django.views.generic import FormView, TemplateView @@ -548,8 +549,11 @@ def current_user_locale_profile_edit(request): if form.is_valid(): form.save() + timezone.activate(form.cleaned_data['timezone']) + translation.activate(form.cleaned_data['language']) + if hasattr(request, 'session'): - request.session['django_language'] = form.cleaned_data['language'] + request.session[translation.LANGUAGE_SESSION_KEY] = form.cleaned_data['language'] request.session['django_timezone'] = form.cleaned_data['timezone'] else: request.set_cookie(settings.LANGUAGE_COOKIE_NAME, form.cleaned_data['language'])