diff --git a/rowers/models.py b/rowers/models.py index 50117fe1..5519af85 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/utils.py b/rowers/utils.py index c8b797cd..b05dc188 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -6,7 +6,11 @@ from django.conf import settings import uuid import datetime + import json + +from django.http import HttpResponse + import requests from django.http import HttpResponse diff --git a/rowers/views.py b/rowers/views.py index baf2d0a3..ae7b1b9b 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 @@ -4776,7 +4777,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: @@ -4784,12 +4785,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: @@ -4943,12 +4944,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: @@ -8789,17 +8790,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