Private
Public Access
1
0

added teams button if you are not team member

This commit is contained in:
Sander Roosendaal
2017-04-06 22:01:35 +02:00
parent 6c0fa1efc2
commit 811f1a65ab
2 changed files with 109 additions and 9 deletions

View File

@@ -133,7 +133,19 @@
{% endif %}
</div>
<div class="grid_1 tooltip">
{% if user.is_authenticated and user.rower.team.all %}
{% if user.is_authenticated and teams %}
<div class="grid_1 alpha dropdown">
<button class="grid_1 alpha button gray small dropbtn">
Teams
</button>
<div class="dropdown-content">
{% for t in teams %}
<a class="button gray small" href="/rowers/list-workouts/team/{{ t.id }}/">{{ t.name }}</a>
{% endfor %}
</div>
</div>
<span class="tooltiptext">See recent workouts for your team</span>
{% elif user.is_authenticated and user.rower.team.all %}
<div class="grid_1 alpha dropdown">
<button class="grid_1 alpha button gray small dropbtn">
Teams

View File

@@ -171,6 +171,15 @@ def rdata(file,rower=rrower()):
return res
# Query to get teams managed and member of
def get_my_teams(user):
therower = Rower.objects.get(user=user)
teams1 = therower.team.all()
teams2 = Team.objects.filter(manager=user)
teams = list(set(teams1).union(set(teams2)))
return teams
# Used for the interval editor - translates seconds to a time object
def get_time(second):
if (second<=0) or (second>1e9):
@@ -973,6 +982,7 @@ def workout_csvemail_view(request,id=0):
kwargs = {
'id':str(w.id),
'message':message,
'teams':get_my_teams(request.user),
})
response = HttpResponseRedirect(url)
@@ -1044,6 +1054,7 @@ def workout_strava_upload_view(request,id=0):
url = reverse(workout_export_view,
kwargs = {
'id':str(w.id),
'teams':get_my_teams(request.user),
}
)
response = HttpResponseRedirect(url)
@@ -1055,6 +1066,7 @@ def workout_strava_upload_view(request,id=0):
url = reverse(workout_export_view,
kwargs = {
'id':str(w.id),
'teams':get_my_teams(request.user),
})
response = HttpResponseRedirect(url)
# except TimeoutExceeded as e:
@@ -1178,6 +1190,7 @@ def workout_runkeeper_upload_view(request,id=0):
kwargs = {
'message':str(message),
'id':str(w.id),
'teams':get_my_teams(request.user),
})
return HttpResponseRedirect(url)
@@ -1213,7 +1226,8 @@ def workout_runkeeper_upload_view(request,id=0):
kwargs = {
'message':str(message),
'id':str(w.id),
})
'teams':get_my_teams(request.user),
})
return HttpResponseRedirect(url)
@@ -1240,6 +1254,7 @@ def workout_sporttracks_upload_view(request,id=0):
kwargs = {
'message':str(message),
'id':str(w.id),
'teams':get_my_teams(request.user),
})
return HttpResponseRedirect(url)
@@ -1275,6 +1290,7 @@ def workout_sporttracks_upload_view(request,id=0):
kwargs = {
'message':str(message),
'id':str(w.id),
'teams':get_my_teams(request.user),
})
return HttpResponseRedirect(url)
@@ -1433,6 +1449,7 @@ def imports_view(request,successmessage="",message=""):
return render(request,"imports.html",
{'successmessage': successmessage,
'message': message,
'teams':get_my_teams(request.user),
})
# Just for testing purposes
@@ -1577,6 +1594,7 @@ def histo_all(request,theuser=0):
'the_div':div,
'id':theuser,
'theuser':u,
'teams':get_my_teams(request.user),
})
# The Flex plot for a large selection of workouts
@@ -1700,6 +1718,7 @@ def cum_flex(request,theuser=0,
'yparam1':yparam1,
'yparam2':yparam2,
'promember':promember,
'teams':get_my_teams(request.user),
})
# Show the EMpower Oarlock generated Stroke Profile
@@ -1743,6 +1762,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
'id':id,
'mayedit':mayedit,
'workstrokesonly': not workstrokesonly,
'teams':get_my_teams(request.user),
})
# Show Stroke power histogram for a workout
@@ -1776,6 +1796,7 @@ def workout_histo_view(request,id=0):
'the_div':div,
'id':id,
'mayedit':mayedit,
'teams':get_my_teams(request.user),
})
@@ -1888,6 +1909,7 @@ def histo(request,theuser=0,
'enddate':enddate,
'form':form,
'deltaform':deltaform,
'teams':get_my_teams(request.user),
})
# Show ranking distances including predicted paces
@@ -2189,6 +2211,7 @@ def rankings_view(request,theuser=0,
'message':message,
'startdate':startdate,
'enddate':enddate,
'teams':get_my_teams(request.user),
})
# Reload the workout and calculate the summary from the stroke data (lapIDx)
@@ -2376,6 +2399,7 @@ def team_comparison_select(request,
'team':theteam,
'form':form,
'chartform':chartform,
'teams':get_my_teams(request.user),
})
@login_required()
@@ -2418,6 +2442,7 @@ def multi_compare_view(request):
'promember':promember,
'teamid':teamid,
'chartform':chartform,
'teams':get_my_teams(request.user),
})
else:
return HttpResponse("Form is not valid")
@@ -2449,6 +2474,7 @@ def multi_compare_view(request):
'promember':promember,
'teamid':teamid,
'chartform':chartform,
'teams':get_my_teams(request.user),
})
else:
@@ -2551,6 +2577,7 @@ def workouts_view(request,message='',successmessage='',
'enddate':enddate,
'announcements':announcements[0:4],
'team':theteam,
'teams':get_my_teams(request.user),
})
@@ -2629,7 +2656,8 @@ def workout_comparison_list(request,id=0,message='',successmessage='',
'dateform':dateform,
'startdate':startdate,
'enddate':enddate,
})
'teams':get_my_teams(request.user),
})
except Rower.DoesNotExist:
raise Http404("User has no rower instance")
@@ -2708,7 +2736,8 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
'dateform':dateform,
'startdate':startdate,
'enddate':enddate,
})
'teams':get_my_teams(request.user),
})
except Rower.DoesNotExist:
raise Http404("User has no rower instance")
@@ -2739,7 +2768,8 @@ def workout_view(request,id=0):
'last_name':u.last_name,
'first_name':u.first_name,
'interactiveplot':script,
'the_div':div})
'teams':get_my_teams(request.user),
'the_div':div})
else:
return render(request, 'workout_view.html',
{'workout':row,
@@ -2747,7 +2777,8 @@ def workout_view(request,id=0):
'graphs2':g[3:6],
'last_name':u.last_name,
'first_name':u.first_name,
'interactiveplot':script,
'teams':get_my_teams(request.user),
'interactiveplot':script,
'the_div':div})
@@ -2865,6 +2896,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
return render(request,
"cn_form.html",
{'form':form,
'teams':get_my_teams(request.user),
'id':row.id})
else:
form = CNsummaryForm()
@@ -2872,6 +2904,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
return render(request,
"cn_form.html",
{'form':form,
'teams':get_my_teams(request.user),
'id':row.id})
# Get weather for given location and date/time
@@ -3108,6 +3141,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
{'workout':row,
'message': message,
'successmessage': successmessage,
'teams':get_my_teams(request.user),
'interactiveplot':script,
'form':form,
'airport':airportcode,
@@ -3178,6 +3212,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
'streamedit.html',
{'workout':row,
'message': message,
'teams':get_my_teams(request.user),
'successmessage': successmessage,
'interactiveplot':script,
'form':form,
@@ -3268,6 +3303,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
return render(request,
'otwsetpower.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'form':form,
@@ -3309,6 +3345,7 @@ def workout_geeky_view(request,id=0,message="",successmessage=""):
return render(request,
'otwgeeky.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -3317,6 +3354,7 @@ def workout_geeky_view(request,id=0,message="",successmessage=""):
return render(request,
'advancededit.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -3508,6 +3546,7 @@ def cumstats(request,theuser=0,
'cumstats.html',
{
'stats':stats,
'teams':get_my_teams(request.user),
'options':options,
'id':theuser,
'theuser':u,
@@ -3586,6 +3625,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
'workoutstats.html',
{
'stats':stats,
'teams':get_my_teams(request.user),
'workout':row,
'workstrokesonly':workstrokesonly,
'cordict':cordict,
@@ -3626,6 +3666,7 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
return render(request,
'advancedotw.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -3634,6 +3675,7 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
return render(request,
'advancededit.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -3663,6 +3705,7 @@ def workout_comparison_view(request,id1=0,id2=0,xparam='distance',yparam='spm'):
'comparisonchart.html',
{'interactiveplot':script,
'the_div':div,
'teams':get_my_teams(request.user),
'id1':id1,
'id2':id2,
'axchoicesbasic':axchoicesbasic,
@@ -3713,6 +3756,7 @@ def workout_comparison_view2(request,id1=0,id2=0,xparam='distance',
'comparisonchart2.html',
{'interactiveplot':script,
'the_div':div,
'teams':get_my_teams(request.user),
'id1':id1,
'id2':id2,
'axchoicesbasic':axchoicesbasic,
@@ -3873,6 +3917,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
'js_res': js_resources,
'css_res':css_resources,
'id':id,
'teams':get_my_teams(request.user),
'xparam':xparam,
'yparam1':yparam1,
'yparam2':yparam2,
@@ -3902,7 +3947,8 @@ def workout_flexchart3_view(request,*args,**kwargs):
'the_div':div,
'js_res': js_resources,
'css_res':css_resources,
'css_res':css_resources,
'teams':get_my_teams(request.user),
'id':id,
'xparam':xparam,
'yparam1':yparam1,
'yparam2':yparam2,
@@ -3952,6 +3998,7 @@ def workout_biginteractive_view(request,id=0,message="",successmessage=""):
return render(request,
'biginteractive1.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -3993,6 +4040,7 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
return render(request,
'otwinteractive.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message': message,
'successmessage': successmessage,
'interactiveplot':script,
@@ -4043,6 +4091,7 @@ def workout_export_view(request,id=0, message="", successmessage=""):
return render(request,
'export.html',
{'workout':row,
'teams':get_my_teams(request.user),
'message':message,
'successmessage':successmessage,
'c2userid':c2userid,
@@ -4074,6 +4123,7 @@ def workout_unsubscribe_view(request,id=0):
return render(request,
'workout_comments.html',
{'workout':w,
'teams':get_my_teams(request.user),
'comments':comments,
'successmessage':message,
'form':form,
@@ -4158,6 +4208,7 @@ def workout_comment_view(request,id=0):
return render(request,
'workout_comments.html',
{'workout':w,
'teams':get_my_teams(request.user),
'graphs1':g[0:3],
'comments':comments,
'form':form,
@@ -4166,6 +4217,7 @@ def workout_comment_view(request,id=0):
return render(request,
'workout_comments.html',
{'workout':w,
'teams':get_my_teams(request.user),
'graphs1':g[0:3],
'graphs1':g[3:6],
'comments':comments,
@@ -4292,6 +4344,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
return render(request, 'workout_form.html',
{'form':form,
'workout':row,
'teams':get_my_teams(request.user),
'graphs1':g[0:3],
'message': message,
'successmessage': successmessage,
@@ -4302,6 +4355,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
else:
return render(request, 'workout_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'workout':row,
'graphs1':g[0:3],
'graphs2':g[3:6],
@@ -4734,6 +4788,7 @@ def workout_stravaimport_view(request,message=""):
return render(request,'strava_list_import.html',
{'data':data,
'teams':get_my_teams(request.user),
'message':message,
})
@@ -4772,6 +4827,7 @@ def workout_runkeeperimport_view(request,message=""):
workouts.append(res)
return render(request,'runkeeper_list_import.html',
{'workouts':workouts,
'teams':get_my_teams(request.user),
'message':message,
})
@@ -4811,6 +4867,7 @@ def workout_sporttracksimport_view(request,message=""):
workouts.append(res)
return render(request,'sporttracks_list_import.html',
{'workouts':workouts,
'teams':get_my_teams(request.user),
'message':message,
})
@@ -4857,6 +4914,7 @@ def c2listdebug_view(request,message=""):
return render(request,
'c2_list_import2.html',
{'workouts':workouts,
'teams':get_my_teams(request.user),
'message':message})
# List of workouts available on Concept2 logbook - for import
@@ -4898,6 +4956,7 @@ def workout_c2import_view(request,message=""):
return render(request,
'c2_list_import2.html',
{'workouts':workouts,
'teams':get_my_teams(request.user),
'message':message})
# Import a workout from Strava
@@ -5281,6 +5340,7 @@ def workout_upload_view(request,message="",
response = render(request,
'document_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'optionsform': optionsform,
'message':message})
@@ -5290,6 +5350,7 @@ def workout_upload_view(request,message="",
optionsform = UploadOptionsForm(initial=uploadoptions)
return render(request, 'document_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'optionsform': optionsform,
'message':message})
@@ -5305,6 +5366,7 @@ def workout_delete_confirm_view(request, id=0):
else:
return render(request,'workout_delete_confirm.html',
{'id':id,
'teams':get_my_teams(request.user),
'workout':row})
except Workout.DoesNotExist:
@@ -5341,6 +5403,7 @@ def graph_delete_confirm_view(request, id=0):
else:
return render(request,'graphimage_delete_confirm.html',
{'id':id,
'teams':get_my_teams(request.user),
'graph':img})
except Workout.DoesNotExist:
@@ -5390,10 +5453,13 @@ def graphs_view(request):
g = GraphImage.objects.filter(workout__in=workouts).order_by("-creationdatetime")
if (len(g)<=5):
return render(request, 'list_graphs.html',
return render(request, 'list_graphs.html',
{'graphs1': g[0:4],
'teams':get_my_teams(request.user),
})
else:
return render(request, 'list_graphs.html',
{'graphs1': g[0:5],
'teams':get_my_teams(request.user),
'graphs2': g[5:10]})
except Rower.DoesNotExist:
raise Http404("User has no rower instance")
@@ -5407,6 +5473,7 @@ def graph_show_view(request,id):
return render(request,'show_graph.html',
{'graph':g,
'teams':get_my_teams(request.user),
'workout':w,
'rower':r,})
@@ -5512,6 +5579,7 @@ def workout_fusion_view(request,id1=0,id2=1):
else:
return render(request, 'fusion.html',
{'form':form,
'teams':get_my_teams(request.user),
'workout1':w1,
'workout2':w2,
})
@@ -5521,6 +5589,7 @@ def workout_fusion_view(request,id1=0,id2=1):
return render(request, 'fusion.html',
{'form':form,
'teams':get_my_teams(request.user),
'workout1':w1,
'workout2':w2,
})
@@ -5718,6 +5787,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
{'form':form,
'detailform':detailform,
'workout':row,
'teams':get_my_teams(request.user),
'intervalstats':intervalstats,
'nrintervals':nrintervals,
'message': message,
@@ -5785,6 +5855,7 @@ def rower_favoritecharts_view(request):
context = {
'favorites_formset':favorites_formset,
'message':message,
'teams':get_my_teams(request.user),
'successmessage':successmessage,
}
@@ -5828,6 +5899,7 @@ def rower_edit_view(request,message=""):
return render(request, 'rower_form.html',
{'form':form,
'powerzonesform':powerzonesform,
'teams':get_my_teams(request.user),
'powerform':powerform,
'rower':r,
'accountform':accountform,
@@ -5847,6 +5919,7 @@ def rower_edit_view(request,message=""):
accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform,
'userform':userform,
'accountform':accountform,
@@ -5893,6 +5966,7 @@ def rower_edit_view(request,message=""):
accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerform':powerform,
'rower':r,
'userform':userform,
@@ -5934,6 +6008,7 @@ def rower_edit_view(request,message=""):
powerzonesform = RowerPowerZonesForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform,
'powerform':powerform,
'userform':userform,
@@ -5955,6 +6030,7 @@ def rower_edit_view(request,message=""):
message = HttpResponse("invalid form")
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerform':powerform,
'powerzonesform':powerzonesform,
'accountform':accountform,
@@ -5990,6 +6066,7 @@ def rower_edit_view(request,message=""):
successmessage = 'Account Information changed'
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform,
'powerform':powerform,
'accountform':accountform,
@@ -6003,6 +6080,7 @@ def rower_edit_view(request,message=""):
powerzonesform = RowerPowerZonesForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform,
'powerform':powerform,
'accountform':accountform,
@@ -6024,6 +6102,7 @@ def rower_edit_view(request,message=""):
return render(request, 'rower_form.html',
{
'form':form,
'teams':get_my_teams(request.user),
'powerform':powerform,
'powerzonesform':powerzonesform,
'userform':userform,
@@ -6054,6 +6133,7 @@ def rower_revokeapp_view(request,id=0):
return render(request, 'rower_form.html',
{
'form':form,
'teams':get_my_teams(request.user),
'powerform':powerform,
'grants':grants,
})
@@ -6096,6 +6176,7 @@ def strokedataform(request,id=0):
return render(request, 'strokedata_form.html',
{
'form':form,
'teams':get_my_teams(request.user),
'id':id,
})
elif request.method == 'POST':
@@ -6104,6 +6185,7 @@ def strokedataform(request,id=0):
return render(request, 'strokedata_form.html',
{
'form':form,
'teams':get_my_teams(request.user),
'id':id,
})
@@ -6281,6 +6363,7 @@ def team_view(request,id=0,message='',successmessage=''):
return render(request, 'team.html',
{
'team':t,
'teams':get_my_teams(request.user),
'members':members,
'inviteform':inviteform,
'message':message,
@@ -6298,7 +6381,8 @@ def team_leaveconfirm_view(request,id=0):
return render(request,'teamleaveconfirm.html',
{
{
'team':t,
'teams':get_my_teams(request.user),
})
@login_required()
@@ -6340,6 +6424,7 @@ def rower_teams_view(request,message='',successmessage=''):
return render(request, 'teams.html',
{
'teams':ts,
'teams':get_my_teams(request.user),
'myteams':myteams,
'invites':invites,
'otherteams':otherteams,
@@ -6543,6 +6628,7 @@ def team_edit_view(request,id=0):
return render(request,'teamedit.html',
{
'form':teamcreateform,
'teams':get_my_teams(request.user),
'team':t,
})
@@ -6568,6 +6654,7 @@ def team_create_view(request):
return render(request,'teamcreate.html',
{
'teams':get_my_teams(request.user),
'form':teamcreateform,
})
@@ -6583,6 +6670,7 @@ def team_deleteconfirm_view(request,id):
return render(request,'teamdeleteconfirm.html',
{
'teams':get_my_teams(request.user),
'team':t
})