Presale: Add a language switch to the UI

This commit is contained in:
Raphael Michel
2015-05-08 21:59:08 +02:00
parent c5a7594943
commit 7a3051c22d
249 changed files with 296 additions and 244 deletions

View File

@@ -253,7 +253,9 @@ class EventLogin(EventViewMixin, TemplateView):
if form.is_valid():
user = User.objects.create_local_user(
request.event, form.cleaned_data['username'], form.cleaned_data['password'],
email=form.cleaned_data['email'] if form.cleaned_data['email'] != '' else None
email=form.cleaned_data['email'] if form.cleaned_data['email'] != '' else None,
locale=request.LANGUAGE_CODE,
timezone=request.timezone if hasattr(request, 'timezone') else None
)
user = authenticate(identifier=user.identifier, password=form.cleaned_data['password'])
login(request, user)
@@ -263,7 +265,9 @@ class EventLogin(EventViewMixin, TemplateView):
if form.is_valid():
user = User.objects.create_global_user(
form.cleaned_data['email'], form.cleaned_data['password'],
)
locale=request.LANGUAGE_CODE,
timezone=request.timezone if hasattr(request, 'timezone') else None
)
user = authenticate(identifier=user.identifier, password=form.cleaned_data['password'])
login(request, user)
return self.redirect_to_next()

View File

@@ -0,0 +1,22 @@
from datetime import datetime, timedelta
from django.conf import settings
from django.shortcuts import redirect
from django.views.generic import View
class LocaleSet(View):
def get(self, request, *args, **kwargs):
locale = request.GET.get('locale')
resp = redirect(request.GET.get('next', request.META.get('HTTP_REFERER', '/')))
if locale in [lc for lc, ll in settings.LANGUAGES]:
if request.user.is_authenticated():
request.user.locale = locale
request.user.save()
max_age = 10 * 365 * 24 * 60 * 60
resp.set_cookie(settings.LANGUAGE_COOKIE_NAME, locale, max_age=max_age,
expires=(datetime.utcnow() + timedelta(seconds=max_age)).strftime(
'%a, %d-%b-%Y %H:%M:%S GMT'),
domain=settings.SESSION_COOKIE_DOMAIN)
return resp