diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 7cd30d33..0aa9cb97 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -5,7 +5,7 @@ from rowingdata import rowingdata as rrdata from rowers.tasks import handle_sendemail_unrecognized from rowers.tasks import handle_zip_file - +import pytz from rowingdata import rower as rrower from rowingdata import main as rmain @@ -49,6 +49,8 @@ import datautils from utils import lbstoN from scipy.interpolate import griddata +from timezonefinder import TimezoneFinder + import django_rq queue = django_rq.get_queue('default') queuelow = django_rq.get_queue('low') @@ -566,14 +568,41 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', #summary += '\n' #summary += row.intervalstats() - workoutdate = row.rowdatetime.strftime('%Y-%m-%d') - workoutstarttime = row.rowdatetime.strftime('%H:%M:%S') #workoutstartdatetime = row.rowdatetime + timezone_str = 'UTC' try: - workoutstartdatetime = thetimezone.localize(row.rowdatetime).astimezone(utc) + workoutstartdatetime = timezone.make_aware(row.rowdatetime) except ValueError: workoutstartdatetime = row.rowdatetime + + + try: + latavg = row.df[' latitude'].mean() + lonavg = row.df[' longitude'].mean() + tf = TimezoneFinder() + timezone_str = tf.timezone_at(lng=lonavg,lat=latavg) + if timezone_str == None: + timezone_str = tf.closest_timezone_at(lng=lonavg, + lat=latavg) + workoutstartdatetime = pytz.timezone(timezone_str).localize( + row.rowdatetime + ) + + + except ValueError,KeyError: + workoutstartdatetime = thetimezone.localize( + row.rowdatetime + ).astimezone(utc) + + + workoutdate = workoutstartdatetime.astimezone( + pytz.timezone(timezone_str) + ).strftime('%Y-%m-%d') + workoutstarttime = workoutstartdatetime.astimezone( + pytz.timezone(timezone_str) + ).strftime('%H:%M:%S') + if makeprivate: privacy = 'hidden' else: @@ -604,6 +633,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', maxhr=maxhr,averagehr=averagehr, startdatetime=workoutstartdatetime, inboard=inboard,oarlength=oarlength, + timezone=timezone_str, privacy=privacy) diff --git a/rowers/views.py b/rowers/views.py index 84fd47b2..960e5255 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -6275,7 +6275,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""): "%Y-%m-%d %H:%M:%S") startdatetime = timezone.make_aware(startdatetime) startdatetime = startdatetime.astimezone(pytz.timezone(thetimezone)) - print startdatetime + # check if user is owner of this workout if checkworkoutuser(request.user,row):