From 4214a4fcfc04984e852aeb2566a0eb0fddef5947 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 1 Jul 2018 17:21:18 +0200 Subject: [PATCH 1/2] timezone selector in workout edit form --- rowers/models.py | 5 +++++ rowers/views.py | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 6510f4dd..efeb24b2 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1810,6 +1810,11 @@ class WorkoutForm(ModelForm): self.fields['private'] = forms.BooleanField(initial=False, required=False, label='Private') + + self.fields['timezone'] = forms.ChoiceField( + choices = [(x,x) for x in pytz.common_timezones] + ) + if 'instance' in kwargs: if kwargs['instance'].privacy == 'visible': self.fields['private'].initial = False diff --git a/rowers/views.py b/rowers/views.py index 42b22d0d..3aebd6f2 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -6,6 +6,7 @@ import zipfile import bleach import arrow import pytz +from pytz import UnknownTimeZoneError import operator import warnings import urllib @@ -9333,17 +9334,23 @@ def workout_edit_view(request,id=0,message="",successmessage=""): date,starttime ) - startdatetime = pytz.timezone(thetimezone).localize( - startdatetime + try: + startdatetime = pytz.timezone(thetimezone).localize( + startdatetime ) + except UnknownTimeZoneError: + pass try: # aware object can be in any timezone out = startdatetime.astimezone(pytz.utc) except (ValueError, TypeError): startdatetime = timezone.make_aware(startdatetime) - - startdatetime = startdatetime.astimezone(pytz.timezone(thetimezone)) + + try: + startdatetime = startdatetime.astimezone(pytz.timezone(thetimezone)) + except UnknownTimeZoneError: + thetimezone = 'UTC' # check if user is owner of this workout From 2ac5f8ac43378cdbc73b2010366964a2191022b9 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 3 Jul 2018 08:17:03 +0200 Subject: [PATCH 2/2] fixing bug for imports --- rowers/utils.py | 2 ++ rowers/views.py | 18 +++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/rowers/utils.py b/rowers/utils.py index 0b3fef25..f6dd932e 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -7,6 +7,8 @@ from django.conf import settings import uuid import datetime +from django.http import HttpResponse + import requests lbstoN = 4.44822 diff --git a/rowers/views.py b/rowers/views.py index 42b22d0d..0edd5eda 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5320,7 +5320,7 @@ def workouts_join_select(request, message='', successmessage='', startdate=timezone.now()-datetime.timedelta(days=30), - enddate=timezone.now(), + enddate=timezone.now()+datetime.timedelta(days=1), teamid=0): try: @@ -5328,12 +5328,12 @@ def workouts_join_select(request, except Rower.DoesNotExist: raise Http404("Rower doesn't exist") - if 'startdate' in request.session: - startdate = iso8601.parse_date(request.session['startdate']) +# if 'startdate' in request.session: +# startdate = iso8601.parse_date(request.session['startdate']) - if 'enddate' in request.session: - enddate = iso8601.parse_date(request.session['enddate']) +# if 'enddate' in request.session: +# enddate = iso8601.parse_date(request.session['enddate']) if 'waterboattype' in request.session: @@ -5487,12 +5487,12 @@ def team_comparison_select(request, except Rower.DoesNotExist: raise Http404("Rower doesn't exist") - if 'startdate' in request.session: - startdate = iso8601.parse_date(request.session['startdate']) +# if 'startdate' in request.session: +# startdate = iso8601.parse_date(request.session['startdate']) - if 'enddate' in request.session: - enddate = iso8601.parse_date(request.session['enddate']) +# if 'enddate' in request.session: +# enddate = iso8601.parse_date(request.session['enddate']) if 'waterboattype' in request.session: