timetracker/tracker/middleware.py

21 lines
661 B
Python

import pytz
from django.utils import timezone
class TimezoneMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
tzname = request.session.get('django_timezone')
if request.user.is_authenticated:
if hasattr(request.user, 'instructor'):
tzname = request.user.instructor.timezone
if hasattr(request.user, 'student'):
tzname = request.user.student.timezone
if tzname:
timezone.activate(pytz.timezone(tzname))
else:
timezone.deactivate()
return self.get_response(request)