[middleware] Add auto timezone setting

This commit is contained in:
2025-06-06 09:49:53 -04:00
parent 07b5dc6a2c
commit b2f98d780b
2 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,28 @@
import logging
from django.conf import settings
from django.utils import timezone
logger = logging.getLogger(__name__)
class TimezoneMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
return self.get_response(request)
def __getUserTimeZone(self, request):
# info = IPResolver(request).getGeoInfo()
# return pytz.country_timezones[info["country_code"]][0]
if not request.user.is_anonymous:
return request.user.profile.timezone
def process_request(self, request):
try:
tz = self.__getUserTimeZone(request) or settings.TIME_ZONE
timezone.activate(tz)
logger.info('Time zone "%s" activated' % str(tz))
except Exception as e:
logger.error("Unable to set timezone: %s" % str(e))

View File

@ -163,6 +163,7 @@ SITE_ID = 1
MIDDLEWARE = [
"vrobbler.health_check.HealthCheckMiddleware",
"vrobbler.apps.scrobbles.middleware.TimezoneMiddleware",
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",