diff --git a/symposion/teams/urls.py b/symposion/teams/urls.py index 691e458b..ff0b5143 100644 --- a/symposion/teams/urls.py +++ b/symposion/teams/urls.py @@ -7,4 +7,6 @@ urlpatterns = patterns("symposion.teams.views", url(r"^(?P[\w\-]+)/leave/$", "team_leave", name="team_leave"), url(r"^(?P[\w\-]+)/apply/$", "team_apply", name="team_apply"), + url(r"^promote/(?P\d+)/$", "team_promote", name="team_promote"), + url(r"^demote/(?P\d+)/$", "team_demote", name="team_demote"), ) diff --git a/symposion/teams/views.py b/symposion/teams/views.py index 17150b7c..d731436c 100644 --- a/symposion/teams/views.py +++ b/symposion/teams/views.py @@ -108,3 +108,29 @@ def team_apply(request, slug): return redirect("team_detail", slug=slug) else: return redirect("team_detail", slug=slug) + + +@login_required +def team_promote(request, pk): + if request.method == "POST": + membership = get_object_or_404(Membership, pk=pk) + state = membership.team.get_state_for_user(request.user) + if request.user.is_staff or state == "manager": + if membership.state == "member": + membership.state = "manager" + membership.save() + # contrib.message + return redirect("team_detail", slug=membership.team.slug) + + +@login_required +def team_demote(request, pk): + if request.method == "POST": + membership = get_object_or_404(Membership, pk=pk) + state = membership.team.get_state_for_user(request.user) + if request.user.is_staff or state == "manager": + if membership.state == "manager": + membership.state = "member" + membership.save() + # contrib.message + return redirect("team_detail", slug=membership.team.slug) diff --git a/symposion_project/templates/teams/team_detail.html b/symposion_project/templates/teams/team_detail.html index a040822d..532109e9 100644 --- a/symposion_project/templates/teams/team_detail.html +++ b/symposion_project/templates/teams/team_detail.html @@ -29,13 +29,28 @@ {% endif %} {% if user.is_staff or state == "manager" %} + {% if team.managers %} +

Managers

+ + {% for membership in team.managers %} + + + + + {% endfor %} +
{{ membership.user.email }} +
{% csrf_token %}
+
+ {% endif %} {% if team.members %}

Team Members

{% for membership in team.members %} - + {% endfor %}
{{ membership.user.email }}{{ membership.state }} +
{% csrf_token %}
+