[middleware] Add auto timezone setting
This commit is contained in:
28
vrobbler/apps/scrobbles/middleware.py
Normal file
28
vrobbler/apps/scrobbles/middleware.py
Normal 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))
|
||||
@ -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",
|
||||
|
||||
Reference in New Issue
Block a user