strava done
This commit is contained in:
@@ -6,47 +6,47 @@
|
||||
|
||||
{% block content %}
|
||||
<h1>Available on Strava</h1>
|
||||
{% if data %}
|
||||
<table width="70%" class="listtable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> Import </th>
|
||||
<th> Duration </th>
|
||||
<th> Type</th>
|
||||
<th> Date</th>
|
||||
<th> Distance </th>
|
||||
<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 %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p> No workouts found </p>
|
||||
{% endif %}
|
||||
{% if workouts %}
|
||||
<div class="grid_2 alpha ">
|
||||
<a href="/rowers/workout/stravaimport/all/" class="button gray">Import all NEW</a>
|
||||
</div>
|
||||
<div class="grid_10 omega">
|
||||
<p>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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
<table width="70%" class="listtable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> Import </th>
|
||||
<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 %}
|
||||
|
||||
@@ -213,6 +213,7 @@ urlpatterns = [
|
||||
url(r'^workout/c2import/(?P<c2id>\d+)/$',views.workout_getc2workout_view),
|
||||
url(r'^workout/c2import/all/$',views.workout_getc2workout_all),
|
||||
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/(?P<sporttracksid>\d+)/$',views.workout_getsporttracksworkout_view),
|
||||
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user