diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 66f6475f..eb2e3c46 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -2125,6 +2125,7 @@ def new_workout_from_file(r, f2, uploadoptions={'boattype': '1x', 'workouttype': 'rower'}): message = "" + try: fileformat = get_file_type(f2) except (IOError, UnicodeDecodeError): # pragma: no cover diff --git a/rowers/tasks.py b/rowers/tasks.py index e7c2c299..7886c1e3 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3120,9 +3120,7 @@ def df_from_summary(data): @app.task def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttimezone, debug=False, **kwargs): time.sleep(delaysec) - with open("c2_auto_import.log", "a") as errorlog: - timestr = time.strftime("%Y%m%d-%H%M%S") - errorlog.write(timestr+' '+str(c2id)+' for userid '+str(userid)+'\r\n') + dologging('c2_import.log',str(c2id)+' for userid '+str(userid)) data = alldata[c2id] splitdata = None @@ -3146,8 +3144,8 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim has_strokedata = True s = 'User {userid}, C2 ID {c2id}'.format(userid=userid, c2id=c2id) - dologging('debuglog.log', s) - dologging('debuglog.log', json.dumps(data)) + dologging('c2_import.log', s) + dologging('c2_import.log', json.dumps(data)) try: title = data['name'] @@ -3160,7 +3158,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim title = '' # Create CSV file name and save data to CSV file - csvfilename = 'media/{code}_{c2id}.csv'.format( + csvfilename = 'media/{code}_{c2id}.csv.gz'.format( code=uuid4().hex[:16], c2id=c2id) startdatetime, starttime, workoutdate, duration, starttimeunix, timezone = utils.get_startdatetime_from_c2data( @@ -3169,7 +3167,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim s = 'Time zone {timezone}, startdatetime {startdatetime}, duration {duration}'.format( timezone=timezone, startdatetime=startdatetime, duration=duration) - dologging('debuglog.log', s) + dologging('c2_import.log', s) authorizationstring = str('Bearer ' + c2token) headers = {'Authorization': authorizationstring, @@ -3182,9 +3180,9 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim return 0 if s.status_code != 200: # pragma: no cover - dologging('debuglog.log', 'No Stroke Data. Status Code {code}'.format( + dologging('c2_import.log', 'No Stroke Data. Status Code {code}'.format( code=s.status_code)) - dologging('debuglog.log', s.text) + dologging('c2_import.log', s.text) has_strokedata = False if not has_strokedata: # pragma: no cover @@ -3194,7 +3192,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim try: strokedata = pd.DataFrame.from_dict(s.json()['data']) except AttributeError: # pragma: no cover - dologging('debuglog.log', 'No stroke data in stroke data') + dologging('c2_import.log', 'No stroke data in stroke data') return 0 try: @@ -3202,7 +3200,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim cum_time = res[0] lapidx = res[1] except KeyError: # pragma: no cover - dologging('debuglog.log', 'No time values in stroke data') + dologging('c2_import.log', 'No time values in stroke data') return 0 unixtime = cum_time+starttimeunix @@ -3244,7 +3242,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim if workouttype == 'bike': # pragma: no cover velo = 1000./pace - dologging('debuglog.log', 'Unix Time Stamp {s}'.format(s=unixtime[0])) + dologging('c2_import.log', 'Unix Time Stamp {s}'.format(s=unixtime[0])) # dologging('debuglog.log',json.dumps(s.json())) df = pd.DataFrame({'TimeStamp (sec)': unixtime, @@ -3272,6 +3270,7 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim _ = df.to_csv(csvfilename, index_label='index', compression='gzip') + uploadoptions = { 'secret': UPLOAD_SERVICE_SECRET, 'user': userid, @@ -3291,6 +3290,9 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim response = session.post(UPLOAD_SERVICE_URL, json=uploadoptions) if response.status_code != 200: # pragma: no cover + dologging('c2_import.log', + 'Upload API returned status code {code}'.format( + code=response.status_code)) return 0 workoutid = response.json()['id'] diff --git a/rowers/templates/trainingplan.html b/rowers/templates/trainingplan.html index f6a7c73d..47716e5c 100644 --- a/rowers/templates/trainingplan.html +++ b/rowers/templates/trainingplan.html @@ -33,6 +33,9 @@
{% endif %} +