improved timezone awareness on upload
This commit is contained in:
@@ -5,7 +5,7 @@ from rowingdata import rowingdata as rrdata
|
|||||||
|
|
||||||
from rowers.tasks import handle_sendemail_unrecognized
|
from rowers.tasks import handle_sendemail_unrecognized
|
||||||
from rowers.tasks import handle_zip_file
|
from rowers.tasks import handle_zip_file
|
||||||
|
import pytz
|
||||||
from rowingdata import rower as rrower
|
from rowingdata import rower as rrower
|
||||||
from rowingdata import main as rmain
|
from rowingdata import main as rmain
|
||||||
|
|
||||||
@@ -49,6 +49,8 @@ import datautils
|
|||||||
from utils import lbstoN
|
from utils import lbstoN
|
||||||
from scipy.interpolate import griddata
|
from scipy.interpolate import griddata
|
||||||
|
|
||||||
|
from timezonefinder import TimezoneFinder
|
||||||
|
|
||||||
import django_rq
|
import django_rq
|
||||||
queue = django_rq.get_queue('default')
|
queue = django_rq.get_queue('default')
|
||||||
queuelow = django_rq.get_queue('low')
|
queuelow = django_rq.get_queue('low')
|
||||||
@@ -566,14 +568,41 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower',
|
|||||||
#summary += '\n'
|
#summary += '\n'
|
||||||
#summary += row.intervalstats()
|
#summary += row.intervalstats()
|
||||||
|
|
||||||
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
|
||||||
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
|
||||||
#workoutstartdatetime = row.rowdatetime
|
#workoutstartdatetime = row.rowdatetime
|
||||||
|
timezone_str = 'UTC'
|
||||||
try:
|
try:
|
||||||
workoutstartdatetime = thetimezone.localize(row.rowdatetime).astimezone(utc)
|
workoutstartdatetime = timezone.make_aware(row.rowdatetime)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
workoutstartdatetime = row.rowdatetime
|
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:
|
if makeprivate:
|
||||||
privacy = 'hidden'
|
privacy = 'hidden'
|
||||||
else:
|
else:
|
||||||
@@ -604,6 +633,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower',
|
|||||||
maxhr=maxhr,averagehr=averagehr,
|
maxhr=maxhr,averagehr=averagehr,
|
||||||
startdatetime=workoutstartdatetime,
|
startdatetime=workoutstartdatetime,
|
||||||
inboard=inboard,oarlength=oarlength,
|
inboard=inboard,oarlength=oarlength,
|
||||||
|
timezone=timezone_str,
|
||||||
privacy=privacy)
|
privacy=privacy)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6275,7 +6275,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
|||||||
"%Y-%m-%d %H:%M:%S")
|
"%Y-%m-%d %H:%M:%S")
|
||||||
startdatetime = timezone.make_aware(startdatetime)
|
startdatetime = timezone.make_aware(startdatetime)
|
||||||
startdatetime = startdatetime.astimezone(pytz.timezone(thetimezone))
|
startdatetime = startdatetime.astimezone(pytz.timezone(thetimezone))
|
||||||
print startdatetime
|
|
||||||
|
|
||||||
# check if user is owner of this workout
|
# check if user is owner of this workout
|
||||||
if checkworkoutuser(request.user,row):
|
if checkworkoutuser(request.user,row):
|
||||||
|
|||||||
Reference in New Issue
Block a user