Private
Public Access
1
0

doing trainingpeaks, untested

This commit is contained in:
Sander Roosendaal
2023-02-15 19:25:45 +01:00
parent 8912ee3c8e
commit 3eaef9ae70
12 changed files with 230 additions and 320 deletions

View File

@@ -23,12 +23,15 @@ def default(o): # pragma: no cover
# Send workout to TP
@permission_required('workout.change_workout', fn=get_workout_by_opaqueid, raise_exception=True)
def workout_tp_upload_view(request, id=0):
message = ""
r = getrower(request.user)
res = -1
tp_integration = TPIntegration(request.user)
try:
_ = tp_open(r.user)
_ = tp_integration.open()
except NoTokenError: # pragma: no cover
return HttpResponseRedirect("/rowers/me/tpauthorize/")
@@ -36,38 +39,9 @@ def workout_tp_upload_view(request, id=0):
w = get_workout_by_opaqueid(request, id)
r = w.user
tcxfile = tpstuff.createtpworkoutdata(w)
if tcxfile:
res, reason, status_code, headers = tpstuff.uploadactivity(
r.tptoken, tcxfile,
name=w.name
)
if res == 0: # pragma: no cover
message = "Upload to TrainingPeaks failed with status code " + \
str(status_code)+": "+reason
try:
os.remove(tcxfile)
except WindowsError:
pass
jobid = tp_integration.workout_export(w)
messages.info(request,'Your workout will be exported to TrainingPeaks in the background')
messages.error(request, message)
else: # res != 0
w.uploadedtotp = res
w.save()
os.remove(tcxfile)
job = myqueue(queuelow,
check_tp_workout_id,
w,
headers['Location'])
messages.info(request, 'Uploaded to TrainingPeaks')
else: # pragma: no cover # no tcxfile
message = "Upload to TrainingPeaks failed"
w.uploadedtotp = -1
w.save()
messages.error(request, message)
url = reverse(r.defaultlandingpage,
kwargs={
@@ -301,20 +275,8 @@ def rower_c2_token_refresh(request):
@login_required()
def rower_tp_token_refresh(request):
r = getrower(request.user)
res = tpstuff.do_refresh_token(
r.tprefreshtoken,
)
access_token = res[0]
expires_in = res[1]
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = getrower(request.user)
r.tptoken = access_token
r.tptokenexpirydate = expirydatetime
r.tprefreshtoken = refresh_token
r.save()
tp_integration = TPIntegration(request.user)
token = tp_integration.token_refresh()
successmessage = "Tokens refreshed. Good to go"
messages.info(request, successmessage)
@@ -759,11 +721,8 @@ def rower_process_tpcallback(request):
url = reverse('rower_exportsettings_view')
return HttpResponseRedirect(url)
res = tpstuff.get_token(code)
access_token = res[0]
expires_in = res[1]
refresh_token = res[2]
tp_integration = TPIntegration(request.user)
access_token, expires_in, refresh_token = tp_integration.get_token(code)
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = getrower(request.user)
@@ -1560,7 +1519,7 @@ importsources = {
'polar': polarstuff,
'ownapi': ownapistuff,
'sporttracks': SportTracksIntegration,
'trainingpeaks': tpstuff,
'trainingpeaks': TPIntegration,
'nk': NKIntegration,
'rp3':RP3Integration,
}

View File

@@ -194,7 +194,6 @@ import datetime
import iso8601
import rowers.rojabo_stuff as rojabo_stuff
from rowers.tpstuff import tp_open
from iso8601 import ParseError
import rowers.rojabo_stuff as rojabo_stuff
@@ -205,7 +204,6 @@ import rowers.polarstuff as polarstuff
from rowers.integrations import *
import rowers.tpstuff as tpstuff
import rowers.ownapistuff as ownapistuff
from rowers.ownapistuff import TEST_CLIENT_ID, TEST_CLIENT_SECRET, TEST_REDIRECT_URI

View File

@@ -5636,9 +5636,6 @@ def workout_upload_view(request,
except NoTokenError:
id = 0
message = "Something went wrong with the Concept2 sync"
if id > 1:
messages.info(request, message)
else:
messages.error(request, message)
if (upload_to_strava): # pragma: no cover
@@ -5648,9 +5645,6 @@ def workout_upload_view(request,
except NoTokenError:
id = 0
message = "Please connect to Strava first"
if id > 1:
messages.info(request, message)
else:
messages.error(request, message)
if (upload_to_st): # pragma: no cover
@@ -5660,23 +5654,14 @@ def workout_upload_view(request,
except NoTokenError:
message = "Please connect to SportTracks first"
id = 0
if id > 1:
messages.info(request, message)
else:
messages.error(request, message)
if (upload_to_tp): # pragma: no cover
tp_integration = TPIntegration(request.user)
try:
message, id = tpstuff.workout_tp_upload(
request.user, w
)
id = tp_integration.workout_export(w)
except NoTokenError:
message = "Please connect to TrainingPeaks first"
id = 0
if id > 1:
messages.info(request, message)
else:
messages.error(request, message)
if int(registrationid) < 0: # pragma: no cover