Nicer urls for groups
[xnet] / xnet / accounts / views.py
CommitLineData
626048e1
AD
1from django.contrib import messages
2from django.shortcuts import get_object_or_404, render
3
9e60ac4d
AD
4from xnet.accounts.decorators import group_required
5from xnet.accounts.models import XGroup, Membership
626048e1
AD
6
7
8def index(request):
9e60ac4d
AD
9 return render(request, 'groups/index.html', {
10 'groups': XGroup.objects.order_by('kind'),
11 'sidebar': 'list',
12 })
626048e1 13
7eb52156 14def home(request, slug):
9e60ac4d 15 return render(request, 'groups/home.html', {
7eb52156 16 'group': get_object_or_404(XGroup, short=slug),
9e60ac4d
AD
17 'sidebar': 'home',
18 })
19
20@group_required()
21def directory(request, group, membership=None):
9e60ac4d
AD
22 return render(request, 'groups/directory.html', {
23 'group': group,
24 'memberships': group.memberships. \
25 filter(state='enabled'). \
26 select_related(). \
27 order_by('level'),
28 'is_admin': membership.level == Membership.LEVEL_ADMIN,
29 'sidebar': 'directory',
30 })
31
32@group_required(level=Membership.LEVEL_ADMIN)
33def membership_delete(request, group, to_delete):
34 pass