strava done
This commit is contained in:
@@ -6,47 +6,47 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>Available on Strava</h1>
|
<h1>Available on Strava</h1>
|
||||||
{% if data %}
|
{% if workouts %}
|
||||||
<table width="70%" class="listtable">
|
<div class="grid_2 alpha ">
|
||||||
<thead>
|
<a href="/rowers/workout/stravaimport/all/" class="button gray">Import all NEW</a>
|
||||||
<tr>
|
</div>
|
||||||
<th> Import </th>
|
<div class="grid_10 omega">
|
||||||
<th> Duration </th>
|
<p>This imports all workouts that have not been imported to rowsandall.com.
|
||||||
<th> Type</th>
|
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.
|
||||||
<th> Date</th>
|
</p>
|
||||||
<th> Distance </th>
|
</div>
|
||||||
<th> Name</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for workout in data %}
|
|
||||||
<tr>
|
|
||||||
{% for key,value in workout.items %}
|
|
||||||
{% if key == "start_date" %}
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
{% endif %}
|
|
||||||
{% if key == "name" %}
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
{% endif %}
|
|
||||||
{% if key == "type" %}
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
{% endif %}
|
|
||||||
{% if key == "distance" %}
|
|
||||||
<td>{{ value }}m</td>
|
|
||||||
{% endif %}
|
|
||||||
{% if key == "elapsed_time" %}
|
|
||||||
<td>{{ value }}</td>
|
|
||||||
{% endif %}
|
|
||||||
{% if key == "id" %}
|
|
||||||
<td><a href="/rowers/workout/stravaimport/{{ value }}/">Import</a></td>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
{% endfor %}
|
<div class="grid_12 alpha">
|
||||||
</tbody>
|
<table width="70%" class="listtable">
|
||||||
</table>
|
<thead>
|
||||||
{% else %}
|
<tr>
|
||||||
<p> No workouts found </p>
|
<th> Import </th>
|
||||||
{% endif %}
|
<th> Name</th>
|
||||||
|
<th> Date</th>
|
||||||
|
<th> Duration </th>
|
||||||
|
<th> Distance </th>
|
||||||
|
<th> Type</th>
|
||||||
|
<th> New</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for workout in workouts %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="/rowers/workout/stravaimport/{{ workout|lookup:'id' }}/">Import</a></td>
|
||||||
|
<td>{{ workout|lookup:'name' }}</td>
|
||||||
|
<td>{{ workout|lookup:'starttime' }}</td>
|
||||||
|
<td>{{ workout|lookup:'duration' }} </td>
|
||||||
|
<td>{{ workout|lookup:'distance' }} m</td>
|
||||||
|
<td>{{ workout|lookup:'type' }}</td>
|
||||||
|
<td>{{ workout|lookup:'new' }}</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<p> No workouts found </p>
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ urlpatterns = [
|
|||||||
url(r'^workout/c2import/(?P<c2id>\d+)/$',views.workout_getc2workout_view),
|
url(r'^workout/c2import/(?P<c2id>\d+)/$',views.workout_getc2workout_view),
|
||||||
url(r'^workout/c2import/all/$',views.workout_getc2workout_all),
|
url(r'^workout/c2import/all/$',views.workout_getc2workout_all),
|
||||||
url(r'^workout/stravaimport/(?P<stravaid>\d+)/$',views.workout_getstravaworkout_view),
|
url(r'^workout/stravaimport/(?P<stravaid>\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/$',views.workout_sporttracksimport_view),
|
||||||
url(r'^workout/sporttracksimport/(?P<sporttracksid>\d+)/$',views.workout_getsporttracksworkout_view),
|
url(r'^workout/sporttracksimport/(?P<sporttracksid>\d+)/$',views.workout_getsporttracksworkout_view),
|
||||||
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),
|
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),
|
||||||
|
|||||||
@@ -5651,10 +5651,33 @@ def workout_stravaimport_view(request,message=""):
|
|||||||
url = reverse(workouts_view)
|
url = reverse(workouts_view)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
else:
|
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',
|
return render(request,'strava_list_import.html',
|
||||||
{'data':data,
|
{'workouts':workouts,
|
||||||
'teams':get_my_teams(request.user),
|
'teams':get_my_teams(request.user),
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -6047,14 +6070,45 @@ def workout_getsporttracksworkout_all(request):
|
|||||||
data = res.json()
|
data = res.json()
|
||||||
|
|
||||||
id,message = add_workout_from_stdata(request.user,sporttracksid,data)
|
id,message = add_workout_from_stdata(request.user,sporttracksid,data)
|
||||||
print sporttracksid,id
|
|
||||||
if id==0:
|
if id==0:
|
||||||
messages.error(request,message)
|
messages.error(request,message)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
w = Workout.objects.get(id=id)
|
w = Workout.objects.get(id=id)
|
||||||
w.uploadedtosporttracks=sporttracksid
|
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()
|
w.save()
|
||||||
|
|
||||||
url = reverse(workouts_view)
|
url = reverse(workouts_view)
|
||||||
|
|||||||
Reference in New Issue
Block a user