diff --git a/rowers/rp3stuff.py b/rowers/rp3stuff.py
index 5daacef7..2c846ae0 100644
--- a/rowers/rp3stuff.py
+++ b/rowers/rp3stuff.py
@@ -18,7 +18,8 @@ from rowsandall_app.settings import (
STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
RP3_CLIENT_ID, RP3_CLIENT_SECRET,
RP3_REDIRECT_URI,RP3_CLIENT_KEY,
- RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET
+ RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET,
+ UPLOAD_SERVICE_URL, UPLOAD_SERVICE_SECRET
)
@@ -128,7 +129,7 @@ def get_rp3_workout_token(workout_id,auth_token,waittime=3,max_attempts=20):
headers = {'Authorization': 'Bearer ' + auth_token }
get_download_link = """{
- download(workout_id: """ + str(workout_id) + """, type:tcx){
+ download(workout_id: """ + str(workout_id) + """, type:csv){
id
status
link
@@ -169,3 +170,37 @@ def get_rp3_workout_link(user,workout_id,waittime=3,max_attempts=20):
auth_token = rp3_open(user)
return get_rp3_workout_token(workout_id,auth_token,waittime=waittime,max_attempts=max_attempts)
+
+def get_rp3_workout(user,workout_id,startdatetime=None):
+ url = get_rp3_workout_link(user,workout_id)
+ filename = 'media/RP3Import_'+str(workout_id)+'.csv'
+
+ r = Rower.objects.get(user=user)
+ auth_token = rp3_open(user)
+
+ status_code = download_rp3_file(url, auth_token, filename)
+
+ if status_code != 200:
+ return 0
+
+ userid = user.id
+
+ uploadoptions = {
+ 'secret': UPLOAD_SERVICE_SECRET,
+ 'user': userid,
+ 'file': filename,
+ 'workouttype':'dynamic',
+ 'boattype':'1x',
+ 'rp3id':workout_id,
+ }
+
+ session = requests.session()
+ newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'}
+ session.headers.update(newHeaders)
+
+ response = session.post(UPLOAD_SERVICE_URL,json=uploadoptions)
+
+ if response.status_code != 200:
+ return 0
+
+ return response.json()['id']
diff --git a/rowers/templates/rp3_list_import.html b/rowers/templates/rp3_list_import.html
index 49b6ff61..b0500f69 100644
--- a/rowers/templates/rp3_list_import.html
+++ b/rowers/templates/rp3_list_import.html
@@ -21,7 +21,7 @@
{% for workout in workouts %}
|
- Import |
+ Import
{{ workout|lookup:'starttime' }} |
{{ workout|lookup:'new' }} |
diff --git a/rowers/urls.py b/rowers/urls.py
index 44201c87..33253b88 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -543,6 +543,8 @@ urlpatterns = [
re_path(r'^workout/stravaimport/user/(?P\d+)/$',views.workout_stravaimport_view,name='workout_stravaimport_view'),
re_path(r'^workout/c2import/all/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
re_path(r'^workout/c2import/all/(?P\d+)/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
+ re_path(r'^workout/rp3import/(?P\d+)/(?P\w+)/$',views.workout_getrp3importview,
+ name='workout_getrp3importview'),
re_path(r'^workout/(?P\w+.*)import/(?P\d+)/$',views.workout_getimportview,name='workout_getimportview'),
re_path(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all,name='workout_getstravaworkout_all'),
re_path(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next,name='workout_getstravaworkout_next'),
diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py
index 00086950..465ab218 100644
--- a/rowers/views/importviews.py
+++ b/rowers/views/importviews.py
@@ -1693,7 +1693,6 @@ def workout_getc2workout_all(request,page=1,message=""):
url = reverse('workouts_view')
return HttpResponseRedirect(url)
-
# List of workouts available on Concept2 logbook - for import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@@ -1776,6 +1775,10 @@ importsources = {
'underarmour':underarmourstuff
}
+@login_required()
+def workout_getrp3importview(request,externalid,startdatetime):
+ return 1
+
@login_required()
def workout_getimportview(request,externalid,source = 'c2'):
data,strokedata = importsources[source].get_workout(request.user,externalid)
diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py
index ea822a21..569d4b33 100644
--- a/rowers/views/workoutviews.py
+++ b/rowers/views/workoutviews.py
@@ -4775,6 +4775,11 @@ def workout_upload_api(request):
except KeyError:
c2id = ''
+ try:
+ rp3id = post_data['rp3id']
+ except KeyError:
+ rp3id = ''
+
try:
garminid = post_data['garminid']