groups/home: add a link to subscribe to a group
[xnet] / xnet / groups / views.py
CommitLineData
626048e1
AD
1from django.contrib import messages
2from django.shortcuts import get_object_or_404, render
3
95fa5c13
RB
4from .decorators import group_required
5from .models import XGroup, Membership
626048e1
AD
6
7
8def index(request):
95fa5c13 9 return render(request, 'groups/index.html', {
9e60ac4d
AD
10 'groups': XGroup.objects.order_by('kind'),
11 'sidebar': 'list',
12 })
626048e1 13
1564d2a5 14
7eb52156 15def home(request, slug):
4c8372b0
NI
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
95fa5c13 22 return render(request, 'groups/home.html', {
4c8372b0 23 'group': group,
9e60ac4d 24 'sidebar': 'home',
4c8372b0 25 'membership': membership,
9e60ac4d
AD
26 })
27
1564d2a5 28
9e60ac4d
AD
29@group_required()
30def directory(request, group, membership=None):
95fa5c13 31 return render(request, 'groups/directory.html', {
9e60ac4d 32 'group': group,
1564d2a5
NI
33 'memberships': group.memberships.
34 filter(state='enabled').
35 select_related().
9e60ac4d
AD
36 order_by('level'),
37 'is_admin': membership.level == Membership.LEVEL_ADMIN,
38 'sidebar': 'directory',
39 })
40
1564d2a5 41
4c8372b0
NI
42def membership_add(request, group, user_to_add):
43 pass
44
45
9e60ac4d 46@group_required(level=Membership.LEVEL_ADMIN)
1564d2a5 47def membership_delete(request, group, to_delete, membership=None):
9e60ac4d 48 pass