From 279575154bf164bff820fb77aeca3ae55a572bf5 Mon Sep 17 00:00:00 2001 From: Bryan Date: Mon, 10 Feb 2014 17:43:34 -0700 Subject: [PATCH] Change view to handle timezones from script instead of offsets. --- timezone-detect/urls.py | 6 +++--- timezone-detect/views.py | 22 +++++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/timezone-detect/urls.py b/timezone-detect/urls.py index da6274c..27008b7 100644 --- a/timezone-detect/urls.py +++ b/timezone-detect/urls.py @@ -1,7 +1,7 @@ from django.conf.urls import patterns, url -from views import SetOffsetView +from views import SetTimezoneView urlpatterns = patterns('', - url(r'^set/$', SetOffsetView.as_view(), name="timezone_detect__set"), -) + url(r'^set/$', SetTimezoneView.as_view(), name="timezone_detect__set"), + ) diff --git a/timezone-detect/views.py b/timezone-detect/views.py index 8d7862a..c0b433d 100644 --- a/timezone-detect/views.py +++ b/timezone-detect/views.py @@ -1,23 +1,27 @@ from django.http import HttpResponse from django.views.generic import View +from pytz import timezone as tz +from django.conf import settings -class SetOffsetView(View): +class SetTimezoneView(View): http_method_names = ['post'] @staticmethod def post(request, *args, **kwargs): - offset = request.POST.get('offset', None) - if not offset: - return HttpResponse("No 'offset' parameter provided", status=400) + timezone = request.POST.get('timezone', None) + if not timezone: + return HttpResponse("No 'timezone' parameter provided", status=400) try: - offset = int(offset) - except ValueError: - return HttpResponse("Invalid 'offset' value provided", status=400) + if "None" in str(timezone).lower(): + timezone = tz(settings.TIME_ZONE) + else: + timezone = tz(str(timezone)) + except: + return HttpResponse("Invalid 'timezone' value provided", status=400) - tz = offset_to_timezone(int(offset)) print tz - request.session['detected_tz'] = tz + request.session['detected_timezone'] = tz return HttpResponse("OK")