[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 = [
|
MIDDLEWARE = [
|
||||||
"vrobbler.health_check.HealthCheckMiddleware",
|
"vrobbler.health_check.HealthCheckMiddleware",
|
||||||
|
"vrobbler.apps.scrobbles.middleware.TimezoneMiddleware",
|
||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
"django.middleware.common.CommonMiddleware",
|
"django.middleware.common.CommonMiddleware",
|
||||||
|
|||||||
Reference in New Issue
Block a user