Set user language as active language on login.
This commit is contained in:
parent
24729bf6b7
commit
9866f00d7f
|
@ -17,5 +17,6 @@ class LoginForm(AuthenticationForm):
|
||||||
else:
|
else:
|
||||||
self.username = username
|
self.username = username
|
||||||
self.token = orchestra.auth_token
|
self.token = orchestra.auth_token
|
||||||
|
self.user = orchestra.retrieve_profile()
|
||||||
|
|
||||||
return self.cleaned_data
|
return self.cleaned_data
|
||||||
|
|
|
@ -109,14 +109,20 @@ class UserAccount(OrchestraModel):
|
||||||
@classmethod
|
@classmethod
|
||||||
def new_from_json(cls, data, **kwargs):
|
def new_from_json(cls, data, **kwargs):
|
||||||
billing = None
|
billing = None
|
||||||
|
language = None
|
||||||
last_login = None
|
last_login = None
|
||||||
|
|
||||||
if 'billcontact' in data:
|
if 'billcontact' in data:
|
||||||
billing = BillingContact.new_from_json(data['billcontact'])
|
billing = BillingContact.new_from_json(data['billcontact'])
|
||||||
|
|
||||||
|
# Django expects that language code is lowercase
|
||||||
|
if 'language' in data:
|
||||||
|
language = data['language'].lower()
|
||||||
|
|
||||||
if 'last_login' in data:
|
if 'last_login' in data:
|
||||||
last_login = parse_datetime(data['last_login'])
|
last_login = parse_datetime(data['last_login'])
|
||||||
return super().new_from_json(data=data, billing=billing, last_login=last_login)
|
|
||||||
|
return super().new_from_json(data=data, billing=billing, language=language, last_login=last_login)
|
||||||
|
|
||||||
|
|
||||||
class DatabaseUser(OrchestraModel):
|
class DatabaseUser(OrchestraModel):
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
from itertools import groupby
|
from itertools import groupby
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
|
from django.utils import translation
|
||||||
from django.utils.http import is_safe_url
|
from django.utils.http import is_safe_url
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views import View
|
from django.views import View
|
||||||
|
@ -305,7 +307,15 @@ class LoginView(FormView):
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
"""Security check complete. Log the user in."""
|
"""Security check complete. Log the user in."""
|
||||||
auth_login(self.request, form.username, form.token)
|
auth_login(self.request, form.username, form.token)
|
||||||
return HttpResponseRedirect(self.get_success_url())
|
|
||||||
|
# set user language as active language
|
||||||
|
user_language = form.user.language
|
||||||
|
translation.activate(user_language)
|
||||||
|
|
||||||
|
response = HttpResponseRedirect(self.get_success_url())
|
||||||
|
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_language)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
url = self.get_redirect_url()
|
url = self.get_redirect_url()
|
||||||
|
|
Loading…
Reference in a new issue