mirror of https://github.com/snachodog/mybuddy.git
Use cookie for language setting
Django 4.0 will deprecate the use of session for language setting.
This commit is contained in:
parent
a11524a47d
commit
d68410cdae
|
@ -65,6 +65,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="next" value="{% url 'babybuddy:user-settings' %}" />
|
||||
<button type="submit" class="btn btn-primary">{% trans "Submit" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -30,7 +30,8 @@ class FormsTestCase(TestCase):
|
|||
'last_name': 'Name',
|
||||
'email': 'user@user.user',
|
||||
'dashboard_refresh_rate': '',
|
||||
'language': 'en'
|
||||
'language': 'en',
|
||||
'next': '/user/settings/'
|
||||
}
|
||||
|
||||
def test_change_password(self):
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from django.test import TestCase
|
||||
from django.test import Client as HttpClient
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.management import call_command
|
||||
|
||||
from faker import Factory
|
||||
|
||||
|
||||
class TranslationTestCase(TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TranslationTestCase, cls).setUpClass()
|
||||
fake = Factory.create()
|
||||
call_command('migrate', verbosity=0)
|
||||
|
||||
cls.c = HttpClient()
|
||||
|
||||
fake_user = fake.simple_profile()
|
||||
cls.credentials = {
|
||||
'username': fake_user['username'],
|
||||
'password': fake.password()
|
||||
}
|
||||
cls.user = User.objects.create_user(
|
||||
is_superuser=True, **cls.credentials)
|
||||
|
||||
cls.params_template = {
|
||||
'first_name': 'User',
|
||||
'last_name': 'Name',
|
||||
'email': 'user@user.user',
|
||||
'dashboard_refresh_rate': '',
|
||||
'language': 'en'
|
||||
}
|
||||
|
||||
cls.c.login(**cls.credentials)
|
||||
|
||||
def test_translation_fr(self):
|
||||
params = self.params_template.copy()
|
||||
params['language'] = 'fr'
|
||||
|
||||
page = self.c.post('/user/settings/', data=params, follow=True)
|
||||
self.assertContains(page, 'Paramètres Utilisateur')
|
||||
|
||||
page = self.c.get('/welcome/')
|
||||
self.assertContains(page, 'Bienvenue à Baby Buddy!')
|
|
@ -8,11 +8,11 @@ from django.contrib.messages.views import SuccessMessageMixin
|
|||
from django.shortcuts import redirect, render
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from django.utils.text import format_lazy
|
||||
from django.utils.translation import gettext as _, gettext_lazy
|
||||
from django.utils.translation import activate, gettext as _, gettext_lazy
|
||||
from django.views.generic import View
|
||||
from django.views.generic.base import TemplateView, RedirectView
|
||||
from django.views.generic.edit import CreateView, UpdateView, DeleteView
|
||||
from django.views.i18n import set_language
|
||||
from django.views.i18n import set_language, LANGUAGE_QUERY_PARAMETER
|
||||
|
||||
from django_filters.views import FilterView
|
||||
|
||||
|
@ -140,9 +140,9 @@ class UserSettings(LoginRequiredMixin, View):
|
|||
user_settings = form_settings.save(commit=False)
|
||||
user.settings = user_settings
|
||||
user.save()
|
||||
set_language(request)
|
||||
activate(request.POST.get(LANGUAGE_QUERY_PARAMETER))
|
||||
messages.success(request, _('Settings saved!'))
|
||||
return redirect('babybuddy:user-settings')
|
||||
return set_language(request)
|
||||
return render(request, self.template_name, {
|
||||
'user_form': form_user,
|
||||
'settings_form': form_settings
|
||||
|
|
Loading…
Reference in New Issue