diff --git a/rowers/templates/strava_list_import.html b/rowers/templates/strava_list_import.html
index a99ea834..b384cd5c 100644
--- a/rowers/templates/strava_list_import.html
+++ b/rowers/templates/strava_list_import.html
@@ -6,47 +6,47 @@
{% block content %}
Available on Strava
- {% if data %}
-
-
-
- | Import |
- Duration |
- Type |
- Date |
- Distance |
- Name |
-
-
-
- {% for workout in data %}
-
- {% for key,value in workout.items %}
- {% if key == "start_date" %}
- | {{ value }} |
- {% endif %}
- {% if key == "name" %}
- {{ value }} |
- {% endif %}
- {% if key == "type" %}
- {{ value }} |
- {% endif %}
- {% if key == "distance" %}
- {{ value }}m |
- {% endif %}
- {% if key == "elapsed_time" %}
- {{ value }} |
- {% endif %}
- {% if key == "id" %}
- Import |
- {% endif %}
- {% endfor %}
-
-
- {% endfor %}
-
-
- {% else %}
- No workouts found
- {% endif %}
+{% if workouts %}
+
+
+
This imports all workouts that have not been imported to rowsandall.com.
+ The action may take a longer time to process, so please be patient. Click on Import in the list below to import an individual workout.
+
+
+
+
+
+
+
+ | Import |
+ Name |
+ Date |
+ Duration |
+ Distance |
+ Type |
+ New |
+
+
+
+ {% for workout in workouts %}
+
+ |
+ Import |
+ {{ workout|lookup:'name' }} |
+ {{ workout|lookup:'starttime' }} |
+ {{ workout|lookup:'duration' }} |
+ {{ workout|lookup:'distance' }} m |
+ {{ workout|lookup:'type' }} |
+ {{ workout|lookup:'new' }} |
+
+
+ {% endfor %}
+
+
+
+{% else %}
+ No workouts found
+{% endif %}
{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index ec5d73a4..b9848e61 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -213,6 +213,7 @@ urlpatterns = [
url(r'^workout/c2import/(?P\d+)/$',views.workout_getc2workout_view),
url(r'^workout/c2import/all/$',views.workout_getc2workout_all),
url(r'^workout/stravaimport/(?P\d+)/$',views.workout_getstravaworkout_view),
+ url(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all),
url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view),
url(r'^workout/sporttracksimport/(?P\d+)/$',views.workout_getsporttracksworkout_view),
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),
diff --git a/rowers/views.py b/rowers/views.py
index 460ef645..685e69d8 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -5651,10 +5651,33 @@ def workout_stravaimport_view(request,message=""):
url = reverse(workouts_view)
return HttpResponseRedirect(url)
else:
- data = res.json()
+ workouts = []
+ r = Rower.objects.get(user=request.user)
+ stravaids = [int(item['id']) for item in res.json()]
+ knownstravaids = uniqify([
+ w.uploadedtostrava for w in Workout.objects.filter(user=r)
+ ])
+ newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
+
+ for item in res.json():
+ d = int(float(item['distance']))
+ i = item['id']
+ if i in knownstravaids:
+ nnn = ''
+ else:
+ nnn = 'NEW'
+ n = item['name']
+ ttot = str(datetime.timedelta(seconds=int(float(item['elapsed_time']))))
+ s = item['start_date']
+ r = item['type']
+ keys = ['id','distance','duration','starttime','type','name','new']
+ values = [i,d,ttot,s,r,n,nnn]
+ res = dict(zip(keys,values))
+ workouts.append(res)
+
return render(request,'strava_list_import.html',
- {'data':data,
+ {'workouts':workouts,
'teams':get_my_teams(request.user),
})
@@ -6047,14 +6070,45 @@ def workout_getsporttracksworkout_all(request):
data = res.json()
id,message = add_workout_from_stdata(request.user,sporttracksid,data)
- print sporttracksid,id
if id==0:
messages.error(request,message)
else:
w = Workout.objects.get(id=id)
w.uploadedtosporttracks=sporttracksid
- print 'saved'
+ w.save()
+
+ url = reverse(workouts_view)
+ return HttpResponseRedirect(url)
+
+
+# Imports all new workouts from SportTracks
+@login_required()
+def workout_getstravaworkout_all(request):
+ res = stravastuff.get_strava_workout_list(request.user)
+ if (res.status_code == 200):
+ r = Rower.objects.get(user=request.user)
+ stravaids = [int(item['id']) for item in res.json()]
+ knownstravaids = uniqify([
+ w.uploadedtostrava for w in Workout.objects.filter(user=r)
+ ])
+ newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
+
+ for stravaid in newids:
+ res = stravastuff.get_strava_workout(request.user,stravaid)
+ strokedata = res[1]
+ data = res[0]
+
+ id,message = add_workout_from_strokedata(request.user,stravaid,data,strokedata,
+ source='strava',
+ workoutsource='strava')
+
+ if id==0:
+ messages.error(request,message)
+
+ else:
+ w = Workout.objects.get(id=id)
+ w.uploadedtostrava=stravaid
w.save()
url = reverse(workouts_view)