diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 2711a35d..1f1cf9de 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -51,7 +51,7 @@ import arrow thetimezone = get_current_timezone() from rowingdata import ( TCXParser, RowProParser, ErgDataParser, - CoxMateParser, + CoxMateParser, HeroParser, BoatCoachParser, RowPerfectParser, BoatCoachAdvancedParser, ETHParser, MysteryParser, BoatCoachOTWParser,QuiskeParser, @@ -1828,6 +1828,7 @@ parsers = { 'humon': HumonParser, 'eth': ETHParser, 'nklinklogbook': NKLiNKLogbookParser, + 'hero': HeroParser, } def parsenonpainsled(fileformat,f2,summary,startdatetime='',empowerfirmware=None,inboard=None,oarlength=None): diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index 93d865ae..5ff2fda8 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -383,6 +383,9 @@ def async_get_workout(user,stravaid): # Get a Strava workout summary data and stroke data by ID def get_workout(user,stravaid,do_async=False): + if do_async: + res = async_get_workout(user,stravaid) + return {},pd.DataFrame() try: thetoken = strava_open(user) except NoTokenError: # pragma: no cover diff --git a/rowers/templates/strava_list_import.html b/rowers/templates/strava_list_import.html index f6b1bea0..c2eac8d6 100644 --- a/rowers/templates/strava_list_import.html +++ b/rowers/templates/strava_list_import.html @@ -34,7 +34,7 @@ {% for workout in workouts %} - Import + Import {{ workout|lookup:'name' }} {{ workout|lookup:'starttime' }} {{ workout|lookup:'duration' }} @@ -42,7 +42,7 @@ {{ workout|lookup:'type' }} {{ workout|lookup:'new' }} - + {% endfor %} diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 08922a89..30173651 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -2008,6 +2008,18 @@ def workout_c2import_view(request,page=1,userid=0,message=""): 'page':page, }) +importlistviews = { + 'c2':'workout_c2import_view', + 'strava':'workout_stravaimport_view', + 'polar':'workout_polarimport_view', + 'ownapi':'workout_view', + 'runkeeper':'workout_runkeeperimport_view', + 'sporttracks':'workout_sporttracksimport_view', + 'trainingpeaks':'workout_view', + 'underarmour':'workout_underarmourimport_view', + 'nk':'workout_nkimport_view', + } + importsources = { 'c2':c2stuff, 'strava':stravastuff, @@ -2018,7 +2030,7 @@ importsources = { 'trainingpeaks':tpstuff, 'underarmour':underarmourstuff, 'nk':nkstuff, - } +} @login_required() def workout_getrp3importview(request,externalid): @@ -2049,7 +2061,8 @@ def workout_getimportview(request,externalid,source = 'c2',do_async=False): if do_async: # pragma: no cover messages.info(request,"Your workout will be imported in the background") - url = reverse('workouts_view') + # this should return to the respective import list page + url = reverse(importlistviews[source]) return HttpResponseRedirect(url) if not data: # pragma: no cover