Private
Public Access
1
0

further timezone magic c2

This commit is contained in:
Sander Roosendaal
2021-05-12 08:52:51 +02:00
parent 4afaa5fd10
commit 4db0c20efa
4 changed files with 27 additions and 19 deletions

View File

@@ -238,7 +238,7 @@ def create_async_workout(alldata,user,c2id):
duration = dataprep.totaltime_sec_to_string(totaltime)
try:
timezone_str = tz(data['timezone'])
timezone_str = data['timezone']
except:
timezone_str = 'UTC'

View File

@@ -419,7 +419,7 @@ def handle_c2_import_stroke_data(c2token,
duration = datetime.datetime.strptime(duration,'%H:%M:%S.%f').time()
try:
timezone_str = tz(workoutdata['timezone'])
timezone_str = workoutdata['timezone']
except:
timezone_str = 'UTC'
@@ -2991,7 +2991,7 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone
c2id = data['id']
workouttype = data['type']
verified = data['verified']
startdatetime = iso8601.parse_date(data['date'])
startdatetime = iso8601.parse_date(data['date_utc'])
weightclass = data['weight_class']
try:
@@ -3013,21 +3013,18 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone
totaltime = data['time']/10.
duration = totaltime_sec_to_string(totaltime)
starttimeunix = arrow.get(startdatetime).timestamp()-totaltime
startdatetime = arrow.get(starttimeunix)
try:
timezone_str = tz(data['timezone'])
except:
timezone_str = defaulttimezone
timezone = pytz.timezone(data['timezone'])
startdatetime = startdatetime.astimezone(timezone)
startdatetime = startdatetime.replace(tzinfo=None)
tz = pytz.timezone(timezone_str)
startdatetime = tz.localize(startdatetime)
workoutdate = startdatetime.astimezone(
pytz.timezone(timezone_str)
timezone
).strftime('%Y-%m-%d')
starttime = startdatetime.astimezone(
pytz.timezone(timezone_str)
timezone
).strftime('%H:%M:%S')
try:
@@ -3056,8 +3053,6 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone
cum_time = res[0]
lapidx = res[1]
starttimeunix = arrow.get(startdatetime).timestamp()
starttimeunix = starttimeunix-cum_time.max()
unixtime = cum_time+starttimeunix
# unixtime[0] = starttimeunix
@@ -3134,6 +3129,7 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone
'workouttype':workouttype,
'boattype':'1x',
'c2id':c2id,
'timezone':str(timezone)
}
session = requests.session()
@@ -3165,8 +3161,11 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone
parkedids = []
with open('c2blocked.json','r') as c2blocked:
jsondata = json.load(c2blocked)
parkedids = jsondata['ids']
try:
jsondata = json.load(c2blocked)
parkedids = jsondata['ids']
except JSONDecodeError:
parkedids = []
newparkedids = [id for id in parkedids if id != newc2id]
with open('c2blocked.json','wt') as c2blocked:
@@ -3364,7 +3363,7 @@ def fetch_strava_workout(stravatoken,oauth_data,stravaid,csvfilename,userid,debu
comments = ' '
try:
thetimezone = tz(workoutsummary['timezone'])
thetimezone = workoutsummary['timezone']
except:
thetimezone = 'UTC'

View File

@@ -158,6 +158,7 @@ class C2Objects(DjangoTestCase):
self.r.c2token = '12'
self.r.c2refreshtoken = 'ab'
self.r.tokenexpirydate = arrow.get(datetime.datetime.now()+datetime.timedelta(days=1)).datetime
self.r.defaulttimezone = 'Europe/Prague'
self.r.save()
self.c.login(username='john',password='koeinsloot')
@@ -342,6 +343,7 @@ class C2Objects(DjangoTestCase):
res = tasks.handle_c2_async_workout(alldata,self.u.id,self.r.c2token,33991243,0,self.r.defaulttimezone)
self.assertEqual(res,1)
@override_settings(TESTING=True)
class C2ObjectsTokenExpired(DjangoTestCase):
def setUp(self):

View File

@@ -4813,8 +4813,8 @@ def workout_upload_api(request):
totalDistance = post_data.get('totalDistance',None)
elapsedTime = post_data.get('elapsedTime',None)
summary = post_data.get('summary',None)
timezone = post_data.get('timezone',None)
r = None
if form.is_valid():
t = form.cleaned_data['title']
@@ -4905,6 +4905,13 @@ def workout_upload_api(request):
return JSONResponse(status=200,data=message)
w = Workout.objects.get(id=id)
if timezone is not None:
w.startdatetime = w.startdatetime.astimezone(pytz.timezone(timezone))
w.workoutdate = w.startdatetime.strftime('%Y-%m-%d')
w.starttime = w.starttime.strftime('%H:%M:%S')
w.timezone = timezone
w.save()
if make_plot: # pragma: no cover