groups/home: add a link to subscribe to a group
[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
15 def home(request, slug):
16 group = get_object_or_404(XGroup, short=slug)
17 try:
18 membership = Membership.objects.get(xgroup=group, user=request.user)
19 except Membership.DoesNotExist:
20 membership = None
21
22 return render(request, 'groups/home.html', {
23 'group': group,
24 'sidebar': 'home',
25 'membership': membership,
26 })
27
28
29 @group_required()
30 def directory(request, group, membership=None):
31 return render(request, 'groups/directory.html', {
32 'group': group,
33 'memberships': group.memberships.
34 filter(state='enabled').
35 select_related().
36 order_by('level'),
37 'is_admin': membership.level == Membership.LEVEL_ADMIN,
38 'sidebar': 'directory',
39 })
40
41
42 def membership_add(request, group, user_to_add):
43 pass
44
45
46 @group_required(level=Membership.LEVEL_ADMIN)
47 def membership_delete(request, group, to_delete, membership=None):
48 pass