diff --git a/rowers/templates/team.html b/rowers/templates/team.html index 2d992033..22a363fd 100644 --- a/rowers/templates/team.html +++ b/rowers/templates/team.html @@ -1,81 +1,56 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% block title %}Team {% endblock %} -{% block content %} -
- {% include "teambuttons.html" with teamid=team.id %} -
-
-
-

{{ team.name }}

+{% block main %} +

{{ team.name }}

-
+
    +
  • {{ team.notes }}

    Manager: {{ team.manager.first_name }} {{ team.manager.last_name }}

    -
-
-
- {% if ismember %} - - {% if team.manager == user %} -
- Edit Team -
- {% else %} -
-

  -

- {% endif %} - {% elif hasrequested %} -

You have requested access to this team

- {% else %} -

You can request access to this team. By requesting access, you - agree to the Privacy Policy regarding - team functionality. You agree to share your workout data (except - workouts marked as "private") to all team members and the team manager. - You also grant the team manager access to your heart rate and power - zone settings, as well as your functional threshold information. You - are granting the team manager permission to edit your workouts.

-
+ +
  • + + {% if hasrequested %} +

    You have requested access to this team

    + {% elif team not in myteams %} +

    You can request access to this team. By requesting access, you + agree to the Privacy Policy regarding + team functionality. You agree to share your workout data (except + workouts marked as "private") to all team members and the team manager. + You also grant the team manager access to your heart rate and power + zone settings, as well as your functional threshold information. You + are granting the team manager permission to edit your workouts.

    Join A request will be sent to the team manager - -
  • - {% endif %} -
    - -
    -
    -

    -

    Members

    - - - - - - - - - {% for member in members %} - - - {% if team.manager == user %} - - {% else %} - - {% endif %} - - {% endfor %} + {% endif %} + +
  • +

    Members

    +
  • Name 
    {{ member.user.first_name }} {{ member.user.last_name }}Drop 
    + + + + + + + + {% for member in members %} + + + {% if team.manager == user %} + + {% else %} + + {% endif %} + + {% endfor %} -
    Name 
    {{ member.user.first_name }} {{ member.user.last_name }}Drop 
    -

    + + +
  • - -
  • -
    {% if team.manager == user %}

    Use the form to add a new user. You can either select a user from the list of your existing club members who are not on this team yet, or you can type the user's email address, which also works for users who have not registered to the site yet.

    {% if inviteform.errors %} @@ -88,19 +63,19 @@ {{ inviteform.as_table }} {% csrf_token %} -
    - -
    + {% else %}

     

    {% endif %} -
    -
    -
    - + + {% endblock %} + +{% block sidebar %} +{% include 'menu_teams.html' %} +{% endblock %} diff --git a/rowers/templates/teamdeleteconfirm.html b/rowers/templates/teamdeleteconfirm.html index 56088353..20120bc3 100644 --- a/rowers/templates/teamdeleteconfirm.html +++ b/rowers/templates/teamdeleteconfirm.html @@ -1,43 +1,38 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% load rowerfilters %} -{% block title %}Leave Team {% endblock %} +{% block title %}Delete Team {% endblock %} -{% block content %} -
    +{% block main %} +

    Confirm Deleting the team {{ team.name }}

    +
    - -
    -

    -  -

    - -
    +

    + Delete +

    + + {% endblock %} + +{% block sidebar %} +{% include 'menu_teams.html' %} +{% endblock %} diff --git a/rowers/templates/teamedit.html b/rowers/templates/teamedit.html index b8ea6366..0f5b065a 100644 --- a/rowers/templates/teamedit.html +++ b/rowers/templates/teamedit.html @@ -1,37 +1,42 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} -{% block title %}New Team{% endblock %} +{% block title %}Edit Team{% endblock %} -{% block content %} -
    -

    Edit Team {{ team.name }}

    -
    -
    -
    - {% if form.errors %} -

    - Please correct the error{{ form.errors|pluralize }} below. -

    - {% endif %} +{% block main %} - - {{ form.as_table }} -
    - {% csrf_token %} -
    - -
    -
    - +

    Edit Team {{ team.name }}

    + + - +{% endblock %} + +{% block sidebar %} +{% include 'menu_teams.html' %} {% endblock %} diff --git a/rowers/templates/teamleaveconfirm.html b/rowers/templates/teamleaveconfirm.html index 4210a404..cae64c93 100644 --- a/rowers/templates/teamleaveconfirm.html +++ b/rowers/templates/teamleaveconfirm.html @@ -1,45 +1,41 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% load rowerfilters %} {% block title %}Leave Team {% endblock %} -{% block content %} -
    +{% block main %} +

    Confirm Leaving the team {{ team.name }}

    + - -
    -

    - Cancel -

    -
    -

    - Leave -

    -
    - -
    - -
    -

    -  -

    - -
    +{% endblock %} + +{% block sidebar %} +{% include 'menu_teams.html' %} {% endblock %} diff --git a/rowers/templates/teamstats.html b/rowers/templates/teamstats.html index 83de0907..5dfa6a1b 100644 --- a/rowers/templates/teamstats.html +++ b/rowers/templates/teamstats.html @@ -1,35 +1,32 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% block title %}Team {% endblock %} -{% block content %} -
    - {% include "teambuttons.html" with teamid=team.id team=team %} -
    -
    -

    {{ team.name }} Stats

    -

    - Links to the cumulative statistics pages for your team's members -

    - - - {% for u in theusers %} - - - - - - - - - - - {% endfor %} - -
    {{ u.first_name }} {{ u.last_name }}Ranking PiecesStroke AnalysisPower HistogramStatsBox ChartOTW Ranking PiecesTrend Flex
    -
    - - +{% block main %} +

    {{ team.name }} Stats

    +

    + Links to the cumulative statistics pages for your team's members +

    + + + {% for u in theusers %} + + + + + + + + + + + {% endfor %} + +
    {{ u.first_name }} {{ u.last_name }}Ranking PiecesStroke AnalysisPower HistogramStatsBox ChartOTW Ranking PiecesTrend Flex
    {% endblock %} + +{% block sidebar %} +{% include 'menu_teams.html' %} +{% endblock %} diff --git a/rowers/views.py b/rowers/views.py index 73aad27b..5af7d474 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -12423,11 +12423,14 @@ def strokedatajson(request,id): import teams @login_required() -def team_view(request,id=0): +def team_view(request,id=0,userid=0): ismember = 0 hasrequested = 0 - r = getrower(request.user) - myteams = Team.objects.filter(manager=request.user) + r = getrequestrower(request,userid=userid) + + myteams, memberteams, otherteams = get_teams(request) + teams.remove_expired_invites() + try: t = Team.objects.get(id=id) @@ -12467,13 +12470,27 @@ def team_view(request,id=0): if r in members: ismember = 1 + breadcrumbs = [ + { + 'url':reverse(rower_teams_view), + 'name': 'Teams' + }, + { + 'url':reverse(team_view,kwargs={'id':id}), + 'name': t.name + } + ] return render(request, 'team.html', { 'team':t, 'teams':get_my_teams(request.user), + 'myteams':myteams, + 'memberteams':memberteams, 'members':members, + 'breadcrumbs':breadcrumbs, + 'active':'nav-teams', 'inviteform':inviteform, 'ismember':ismember, 'hasrequested':hasrequested, @@ -12486,10 +12503,31 @@ def team_leaveconfirm_view(request,id=0): except Team.DoesNotExist: raise Http404("Team doesn't exist") + myteams, memberteams, otherteams = get_teams(request) + + breadcrumbs = [ + { + 'url':reverse(rower_teams_view), + 'name': 'Teams' + }, + { + 'url':reverse(team_view,kwargs={'id':id}), + 'name': t.name + }, + { + 'url':reverse(team_leaveconfirm_view,kwargs={'id':id}), + 'name': 'Leave' + } + ] return render(request,'teamleaveconfirm.html', { 'team':t, 'teams':get_my_teams(request.user), + 'myteams':myteams, + 'memberteams':memberteams, + 'otherteams':otherteams, + 'active':'nav-teams', + 'breadcrumbs':breadcrumbs, }) @login_required() @@ -12624,6 +12662,19 @@ def team_leave_view(request,id=0): from rowers.forms import TeamInviteCodeForm +def get_teams(request): + r = Rower.objects.get(user=request.user) + + myteams = Team.objects.filter( + manager=request.user).order_by('name') + memberteams = Team.objects.filter( + rower=r).exclude(manager=request.user).order_by('name') + otherteams = Team.objects.filter( + private='open').exclude( + rower=r).exclude(manager=request.user).order_by('name') + + return myteams, memberteams, otherteams + @login_required() def rower_teams_view(request,message='',successmessage=''): if request.method == 'POST': @@ -12640,10 +12691,11 @@ def rower_teams_view(request,message='',successmessage=''): r = getrower(request.user) ts = Team.objects.filter(rower=r) - myteams = Team.objects.filter(manager=request.user) - memberteams = Team.objects.filter(rower=r).exclude(manager=request.user).order_by('name') - otherteams = Team.objects.filter(private='open').exclude(rower=r).exclude(manager=request.user).order_by('name') + + + myteams, memberteams, otherteams = get_teams(request) teams.remove_expired_invites() + invites = TeamInvite.objects.filter(user=request.user) requests = TeamRequest.objects.filter(user=request.user) @@ -12843,10 +12895,32 @@ def team_edit_view(request,id=0): else: teamcreateform = TeamForm(instance=t) + myteams, memberteams, otherteams = get_teams(request) + + breadcrumbs = [ + { + 'url':reverse(rower_teams_view), + 'name': 'Teams' + }, + { + 'url':reverse(team_view,kwargs={'id':id}), + 'name': t.name + }, + { + 'url':reverse(team_edit_view,kwargs={'id':id}), + 'name': 'Edit' + } + ] + return render(request,'teamedit.html', { 'form':teamcreateform, 'teams':get_my_teams(request.user), + 'myteams':myteams, + 'memberteams':memberteams, + 'otherteams':otherteams, + 'active':'nav-teams', + 'breadcrumbs':breadcrumbs, 'team':t, }) @@ -12886,10 +12960,30 @@ def team_deleteconfirm_view(request,id): if t.manager != request.user: raise PermissionDenied("You are not allowed to delete this team") + myteams, memberteams, otherteams = get_teams(request) + + breadcrumbs = [ + { + 'url':reverse(rower_teams_view), + 'name': 'Teams' + }, + { + 'url':reverse(team_view,kwargs={'id':id}), + 'name': t.name + }, + { + 'url':reverse(team_deleteconfirm_view,kwargs={'id':id}), + 'name': 'Leave' + } + ] return render(request,'teamdeleteconfirm.html', { 'teams':get_my_teams(request.user), - 'team':t + 'team':t, + 'myteams':myteams, + 'memberteams':memberteams, + 'otherteams':otherteams, + 'active':'nav-teams', }) @user_passes_test(iscoachmember,login_url="/",redirect_field_name=None) @@ -12922,11 +13016,31 @@ def team_members_stats_view(request,id): theusers = [member.user for member in members] + myteams, memberteams, otherteams = get_teams(request) + breadcrumbs = [ + { + 'url':reverse(rower_teams_view), + 'name': 'Teams' + }, + { + 'url':reverse(team_view,kwargs={'id':id}), + 'name': t.name + }, + { + 'url':reverse(team_members_stats_view,kwargs={'id':id}), + 'name': 'Members Stats' + } + ] response = render(request,'teamstats.html', { 'teams':get_my_teams(request.user), + 'myteams':myteams, + 'memberteams':memberteams, + 'otherteams':otherteams, + 'active':'nav-teams', + 'breadcrumbs':breadcrumbs, 'team':t, 'theusers':theusers, })