diff --git a/app/apps/common/middleware/localization.py b/app/apps/common/middleware/localization.py index 8ab99f5..76c43ac 100644 --- a/app/apps/common/middleware/localization.py +++ b/app/apps/common/middleware/localization.py @@ -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: diff --git a/app/apps/users/utils/__init__.py b/app/apps/users/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/apps/users/utils/user_settings.py b/app/apps/users/utils/user_settings.py new file mode 100644 index 0000000..7003bf5 --- /dev/null +++ b/app/apps/users/utils/user_settings.py @@ -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