implemented promote to / demote from manager
This commit is contained in:
parent
7db401e9a2
commit
2c69596ec6
3 changed files with 44 additions and 1 deletions
|
@ -7,4 +7,6 @@ urlpatterns = patterns("symposion.teams.views",
|
||||||
url(r"^(?P<slug>[\w\-]+)/leave/$", "team_leave", name="team_leave"),
|
url(r"^(?P<slug>[\w\-]+)/leave/$", "team_leave", name="team_leave"),
|
||||||
url(r"^(?P<slug>[\w\-]+)/apply/$", "team_apply", name="team_apply"),
|
url(r"^(?P<slug>[\w\-]+)/apply/$", "team_apply", name="team_apply"),
|
||||||
|
|
||||||
|
url(r"^promote/(?P<pk>\d+)/$", "team_promote", name="team_promote"),
|
||||||
|
url(r"^demote/(?P<pk>\d+)/$", "team_demote", name="team_demote"),
|
||||||
)
|
)
|
||||||
|
|
|
@ -108,3 +108,29 @@ def team_apply(request, slug):
|
||||||
return redirect("team_detail", slug=slug)
|
return redirect("team_detail", slug=slug)
|
||||||
else:
|
else:
|
||||||
return redirect("team_detail", slug=slug)
|
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)
|
||||||
|
|
|
@ -29,13 +29,28 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if user.is_staff or state == "manager" %}
|
{% if user.is_staff or state == "manager" %}
|
||||||
|
{% if team.managers %}
|
||||||
|
<h2>Managers</h2>
|
||||||
|
<table class="table table-striped">
|
||||||
|
{% for membership in team.managers %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ membership.user.email }}</td>
|
||||||
|
<td>
|
||||||
|
<form style="margin: 0;" method="post" action="{% url team_demote membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">demote</button></form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
{% if team.members %}
|
{% if team.members %}
|
||||||
<h2>Team Members</h2>
|
<h2>Team Members</h2>
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
{% for membership in team.members %}
|
{% for membership in team.members %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ membership.user.email }}</td>
|
<td>{{ membership.user.email }}</td>
|
||||||
<td>{{ membership.state }}</td>
|
<td>
|
||||||
|
<form style="margin: 0;" method="post" action="{% url team_promote membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">promote</button></form>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
Loading…
Reference in a new issue