save language preferences with cookies that last

(as long as login ones do)
This commit is contained in:
reesporte 2022-01-08 12:56:57 -06:00
parent 7d2a53fec9
commit 85691478f1

View file

@ -1,12 +1,13 @@
""" helper functions used in various views """ """ helper functions used in various views """
import re import re
from datetime import datetime from datetime import datetime, timedelta
import dateutil.parser import dateutil.parser
import dateutil.tz import dateutil.tz
from dateutil.parser import ParserError from dateutil.parser import ParserError
from requests import HTTPError from requests import HTTPError
from django.db.models import Q from django.db.models import Q
from django.conf import settings as django_settings
from django.http import Http404 from django.http import Http404
from django.utils import translation from django.utils import translation
@ -186,7 +187,11 @@ def set_language(user, response):
"""Updates a user's language""" """Updates a user's language"""
if user.preferred_language: if user.preferred_language:
translation.activate(user.preferred_language) translation.activate(user.preferred_language)
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user.preferred_language) response.set_cookie(
settings.LANGUAGE_COOKIE_NAME,
user.preferred_language,
expires=datetime.now() + timedelta(seconds=django_settings.SESSION_COOKIE_AGE),
)
return response return response