mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-07-15 09:12:39 +02:00
feat: add fallback for creating user settings if it doesn't exist
This commit is contained in:
@@ -1,11 +1,9 @@
|
|||||||
import zoneinfo
|
import zoneinfo
|
||||||
from django.utils import timezone, translation
|
|
||||||
from django.utils.cache import patch_vary_headers
|
|
||||||
from django.utils.translation import activate
|
|
||||||
from cachalot.api import invalidate
|
|
||||||
import logging
|
|
||||||
|
|
||||||
logger = logging.getLogger()
|
from django.utils import timezone, translation
|
||||||
|
from django.utils.translation import activate
|
||||||
|
|
||||||
|
from apps.users.models import UserSettings
|
||||||
|
|
||||||
|
|
||||||
class LocalizationMiddleware:
|
class LocalizationMiddleware:
|
||||||
@@ -14,18 +12,19 @@ class LocalizationMiddleware:
|
|||||||
|
|
||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
tz = request.COOKIES.get("mytz")
|
tz = request.COOKIES.get("mytz")
|
||||||
logger.info("tz: %s", tz)
|
if request.user.is_authenticated and hasattr(request.user, "settings"):
|
||||||
if request.user.is_authenticated:
|
|
||||||
user_settings = request.user.settings
|
user_settings = request.user.settings
|
||||||
user_language = user_settings.language
|
user_language = user_settings.language
|
||||||
user_timezone = user_settings.timezone
|
user_timezone = user_settings.timezone
|
||||||
|
elif request.user.is_authenticated and not hasattr(request.user, "settings"):
|
||||||
|
# Create UserSettings if it doesn't exist
|
||||||
|
UserSettings.objects.create(user=request.user)
|
||||||
|
user_language = "auto"
|
||||||
|
user_timezone = "auto"
|
||||||
else:
|
else:
|
||||||
user_language = "auto"
|
user_language = "auto"
|
||||||
user_timezone = "auto"
|
user_timezone = "auto"
|
||||||
|
|
||||||
logger.info("lang: %s", user_language)
|
|
||||||
logger.info("timezone: %s", user_timezone)
|
|
||||||
|
|
||||||
if tz and user_timezone == "auto":
|
if tz and user_timezone == "auto":
|
||||||
timezone.activate(zoneinfo.ZoneInfo(tz))
|
timezone.activate(zoneinfo.ZoneInfo(tz))
|
||||||
elif user_timezone != "auto":
|
elif user_timezone != "auto":
|
||||||
@@ -37,7 +36,6 @@ class LocalizationMiddleware:
|
|||||||
activate(user_language)
|
activate(user_language)
|
||||||
else:
|
else:
|
||||||
detected_language = translation.get_language_from_request(request)
|
detected_language = translation.get_language_from_request(request)
|
||||||
logger.info("detected_language: %s", detected_language)
|
|
||||||
activate(detected_language)
|
activate(detected_language)
|
||||||
|
|
||||||
return self.get_response(request)
|
return self.get_response(request)
|
||||||
|
|||||||
Reference in New Issue
Block a user