Private
Public Access
1
0

passing most tests

This commit is contained in:
Sander Roosendaal
2023-02-14 21:37:57 +01:00
parent 66562ead59
commit 8912ee3c8e
6 changed files with 9 additions and 28 deletions

View File

@@ -59,12 +59,12 @@ class RP3Integration(SyncIntegration):
try: try:
rp3ids = workouts_list['id'].values rp3ids = workouts_list['id'].values
workouts_list.set_index('id',inpace=True) workouts_list.set_index('id',inplace=True)
except (KeyError, IndexError): except (KeyError, IndexError):
return 0 return 0
knownrp3ids = uniqify([ knownrp3ids = uniqify([
w.uploadedtorp3 for w in Workout.objects.filter(user=rower) w.uploadedtorp3 for w in Workout.objects.filter(user=r)
]) ])
dologging('rp3_import.log',rp3ids) dologging('rp3_import.log',rp3ids)
@@ -74,7 +74,7 @@ class RP3Integration(SyncIntegration):
dologging('rp3_import.log',newids) dologging('rp3_import.log',newids)
for id in newids: for id in newids:
startdatetime = workouts_list.loc[id, 'executed_at_ios8601'] startdatetime = workouts_list.loc[id, 'executed_at_iso8601']
dologging('rp3_import.log', startdatetime) dologging('rp3_import.log', startdatetime)
_ = myqueue( _ = myqueue(
@@ -85,7 +85,7 @@ class RP3Integration(SyncIntegration):
id, id,
startdatetime, startdatetime,
20, 20,
{'timezone':self.rower.defaulttimezone} timezone = self.rower.defaulttimezone
) )
return 1 return 1
@@ -173,7 +173,6 @@ class RP3Integration(SyncIntegration):
workouts = [] workouts = []
for key, data in workouts_list.iterrows(): for key, data in workouts_list.iterrows():
print(data)
try: try:
i = data['id'] i = data['id']
except KeyError: # pragma: no cover except KeyError: # pragma: no cover

View File

@@ -29,7 +29,6 @@ import rowers.uploads as uploads
import rowers.polarstuff as polarstuff import rowers.polarstuff as polarstuff
import rowers.rp3stuff as rp3stuff
from rowers.opaque import encoder from rowers.opaque import encoder
from rowers.integrations import * from rowers.integrations import *
@@ -102,7 +101,8 @@ class Command(BaseCommand):
rowers = Rower.objects.filter(rp3_auto_import=True) rowers = Rower.objects.filter(rp3_auto_import=True)
for r in rowers: # pragma: no cover for r in rowers: # pragma: no cover
if user_is_not_basic(r.user) or user_is_coachee(r.user): if user_is_not_basic(r.user) or user_is_coachee(r.user):
_ = rp3stuff.get_rp3_workouts(r) rp3_integration = RP3Integration(r.user)
_ = rp3_integration.get_workouts()
except: # pragma: no cover except: # pragma: no cover
exc_type, exc_value, exc_traceback = sys.exc_info() exc_type, exc_value, exc_traceback = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_traceback) lines = traceback.format_exception(exc_type, exc_value, exc_traceback)

View File

@@ -3245,8 +3245,6 @@ def handle_rp3_async_workout(userid, rp3token, rp3id, startdatetime, max_attempt
'timezone': timezone, 'timezone': timezone,
} }
print(uploadoptions)
session = requests.session() session = requests.session()
newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'} newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'}
session.headers.update(newHeaders) session.headers.update(newHeaders)

Binary file not shown.

View File

@@ -653,8 +653,6 @@ urlpatterns = [
re_path(r'^workout/nkimport/all/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$', re_path(r'^workout/nkimport/all/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',
views.workout_getnkworkout_all, views.workout_getnkworkout_all,
name='workout_getnkworkout_all'), name='workout_getnkworkout_all'),
re_path(r'^workout/rp3import/(?P<externalid>\d+)/$', views.workout_getrp3importview,
name='workout_getrp3importview'),
re_path(r'^workout/rp3import/user/(?P<userid>\d+)/$', re_path(r'^workout/rp3import/user/(?P<userid>\d+)/$',
views.workout_rp3import_view, name='workout_rp3import_view'), views.workout_rp3import_view, name='workout_rp3import_view'),
re_path(r'^workout/rp3import/all/$', views.workout_getrp3workout_all, re_path(r'^workout/rp3import/all/$', views.workout_getrp3workout_all,

View File

@@ -1540,6 +1540,7 @@ importlistviews = {
'sporttracks': 'workout_sporttracksimport_view', 'sporttracks': 'workout_sporttracksimport_view',
'trainingpeaks': 'workout_view', 'trainingpeaks': 'workout_view',
'nk': 'workout_nkimport_view', 'nk': 'workout_nkimport_view',
'rp3': 'workout_rp3import_view',
} }
importauthorizeviews = { importauthorizeviews = {
@@ -1550,6 +1551,7 @@ importauthorizeviews = {
'sporttracks': 'rower_sporttracks_authorize', 'sporttracks': 'rower_sporttracks_authorize',
'trainingpeaks': 'rower_tp_authorize', 'trainingpeaks': 'rower_tp_authorize',
'nk': 'rower_nk_authorize', 'nk': 'rower_nk_authorize',
'rp3': 'rower_rp3_authorize',
} }
importsources = { importsources = {
@@ -1560,26 +1562,10 @@ importsources = {
'sporttracks': SportTracksIntegration, 'sporttracks': SportTracksIntegration,
'trainingpeaks': tpstuff, 'trainingpeaks': tpstuff,
'nk': NKIntegration, 'nk': NKIntegration,
'rp3':RP3Integration,
} }
@login_required()
@permission_required('rower.is_not_freecoach', fn=get_user_by_userid, raise_exception=True)
def workout_getrp3importview(request, externalid):
r = getrequestrower(request)
if r.user != request.user: # pragma: no cover
messages.error(
request, 'You can only access your own workouts on the RP3 Logbook, not those of your athletes')
url = reverse('workout_rp3import_view', kwargs={
'userid': request.user.id})
return HttpResponseRedirect(url)
rp3_integration = RP3Integration(request.user)
result = rp3_integration.get_workout(externalid)
messages.info(request, 'The workout will be imported in the background')
url = reverse('workout_rp3import_view')
return HttpResponseRedirect(url)
@login_required() @login_required()
def workout_getimportview_old(request, externalid, source='c2', do_async=True): def workout_getimportview_old(request, externalid, source='c2', do_async=True):