b825063f4eae82e4d116ac60f3227dfa08fdc307
[xnet] / xnet / groups / views.py
1 from django.contrib import messages
2 from django.shortcuts import get_object_or_404, render
3
4 from .decorators import group_required
5 from .models import XGroup, Membership
6
7
8 def index(request):
9 return render(request, 'groups/index.html', {
10 'groups': XGroup.objects.order_by('kind'),
11 'sidebar': 'list',
12 })
13
14 def home(request, slug):
15 return render(request, 'groups/home.html', {
16 'group': get_object_or_404(XGroup, short=slug),
17 'sidebar': 'home',
18 })
19
20 @group_required()
21 def directory(request, group, membership=None):
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)
33 def membership_delete(request, group, to_delete):
34 pass