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