feat: create user settings on localization middleware

This commit is contained in:
Herculino Trotta
2024-10-13 13:52:47 -03:00
parent 399f1cc965
commit 776e1b23ce
3 changed files with 19 additions and 1 deletions

View File

@@ -2,6 +2,8 @@ import zoneinfo
from django.utils import timezone
from django.utils.translation import activate
from apps.users.utils.user_settings import ensure_user_settings
class LocalizationMiddleware:
def __init__(self, get_response):
@@ -10,7 +12,7 @@ class LocalizationMiddleware:
def __call__(self, request):
tz = request.COOKIES.get("mytz")
if request.user.is_authenticated:
user_settings = request.user.settings
user_settings = ensure_user_settings(request.user)
user_language = user_settings.language
user_timezone = user_settings.timezone
else:

View File

View File

@@ -0,0 +1,16 @@
from django.contrib.auth import get_user_model
from apps.users.models import UserSettings
User = get_user_model()
def ensure_user_settings(user):
"""
Check if the given user has a UserSettings model.
If not, create one.
"""
if not hasattr(user, "settings"):
UserSettings.objects.create(user=user)
return user.settings