From 43300cc28d38635d55c0a12489bdf457c30cad17 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 21 Sep 2017 09:21:33 +0200 Subject: [PATCH] added default time zone setting --- rowers/dataprep.py | 4 ++-- rowers/models.py | 13 +++++++++++-- rowers/views.py | 4 ++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index e4b29c24..1de838d4 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -592,7 +592,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', timezone_str = tf.closest_timezone_at(lng=lonavg, lat=latavg) if timezone_str == None: - timezone_str = 'UTC' + timezone_str = r.defaulttimezone try: workoutstartdatetime = pytz.timezone(timezone_str).localize( row.rowdatetime @@ -602,7 +602,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', pytz.timezone(timezone_str) ) except KeyError: - timezone_str = 'UTC' + timezone_str = r.defaulttimezone diff --git a/rowers/models.py b/rowers/models.py index bc6b2052..35f1ffee 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -54,6 +54,10 @@ database_url = 'mysql://{user}:{password}@{host}:{port}/{database_name}'.format( if settings.DEBUG or user=='': database_url = 'sqlite:///db.sqlite3' +timezones = ( + (x,x) for x in pytz.common_timezones +) + class UserFullnameChoiceField(forms.ModelChoiceField): def label_from_instance(self,obj): return obj.get_full_name() @@ -290,6 +294,11 @@ class Rower(models.Model): team = models.ManyToManyField(Team,blank=True) + # Export and Time Zone Settings + defaulttimezone = models.CharField(default='UTC',max_length=100, + choices=timezones, + verbose_name='Default Time Zone') + def __str__(self): return self.user.username @@ -389,10 +398,10 @@ def checkworkoutuser(user,workout): except Rower.DoesNotExist: return False - timezones = ( (x,x) for x in pytz.common_timezones ) + # Workout class Workout(models.Model): @@ -809,7 +818,7 @@ class RowerPowerZonesForm(ModelForm): class AccountRowerForm(ModelForm): class Meta: model = Rower - fields = ['weightcategory','getemailnotifications'] + fields = ['weightcategory','getemailnotifications','defaulttimezone'] class UserForm(ModelForm): class Meta: diff --git a/rowers/views.py b/rowers/views.py index f154a300..7f7f745a 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -8916,14 +8916,18 @@ def rower_edit_view(request,message=""): email = ucd['email'] weightcategory = cd['weightcategory'] getemailnotifications = cd['getemailnotifications'] + defaulttimezone=cd['defaulttimezone'] u = request.user if len(first_name): u.first_name = first_name u.last_name = last_name if len(email): u.email = email + + u.save() r = getrower(u) + r.defaulttimezone=defaulttimezone r.weightcategory = weightcategory r.getemailnotifications = getemailnotifications r.save()