Fix locale and language not updating on edit or on login
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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'])
|
||||
|
||||
Reference in New Issue
Block a user