diff --git a/app/WYGIWYH/settings.py b/app/WYGIWYH/settings.py index 7900ba1..94ef8d1 100644 --- a/app/WYGIWYH/settings.py +++ b/app/WYGIWYH/settings.py @@ -259,6 +259,16 @@ SPECTACULAR_SETTINGS = { # OTHER SETTINGS } -# CACHALOT_CACHE_RANDOM = True -# CACHALOT_QUERY_KEYGEN = "cachalot.utils.get_query_cache_key" -# CACHALOT_TIMEOUT = 60 * 60 * 24 # 24 hours, or adjust as needed +LOGGING = { + "version": 1, + "disable_existing_loggers": False, + "handlers": { + "console": { + "class": "logging.StreamHandler", + }, + }, + "root": { + "handlers": ["console"], + "level": "INFO", + }, +} diff --git a/app/apps/common/middleware/localization.py b/app/apps/common/middleware/localization.py index 9dc660d..dc302c8 100644 --- a/app/apps/common/middleware/localization.py +++ b/app/apps/common/middleware/localization.py @@ -3,6 +3,9 @@ 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() class LocalizationMiddleware: @@ -11,6 +14,7 @@ class LocalizationMiddleware: def __call__(self, request): tz = request.COOKIES.get("mytz") + logger.info("tz: %s", tz) if request.user.is_authenticated: user_settings = request.user.settings user_language = user_settings.language @@ -19,36 +23,21 @@ class LocalizationMiddleware: user_language = "auto" user_timezone = "auto" - # Set timezone + logger.info("lang: %s", user_language) + logger.info("timezone: %s", user_timezone) + if tz and user_timezone == "auto": - timezone_to_activate = zoneinfo.ZoneInfo(tz) + timezone.activate(zoneinfo.ZoneInfo(tz)) elif user_timezone != "auto": - timezone_to_activate = zoneinfo.ZoneInfo(user_timezone) + timezone.activate(zoneinfo.ZoneInfo(user_timezone)) else: - timezone_to_activate = zoneinfo.ZoneInfo("UTC") + timezone.activate(zoneinfo.ZoneInfo("UTC")) - # Set language if user_language and user_language != "auto": - language_to_activate = user_language + activate(user_language) else: - language_to_activate = translation.get_language_from_request(request) + detected_language = translation.get_language_from_request(request) + logger.info("detected_language: %s", detected_language) + activate(detected_language) - # Check if timezone or language has changed - if ( - getattr(request, "timezone", None) != timezone_to_activate - or getattr(request, "language", None) != language_to_activate - ): - # Invalidate cachalot cache - invalidate() - - # Apply timezone and language to the request - request.timezone = timezone_to_activate - request.language = language_to_activate - - # Wrap the response in a custom function to handle activation - def wrapped_response(request): - with timezone.override(request.timezone): - with translation.override(request.language): - return self.get_response(request) - - return wrapped_response(request) + return self.get_response(request)