from django.contrib import messages
from django.shortcuts import get_object_or_404, render
-from xnet.accounts.models import XGroup
+from xnet.accounts.decorators import group_required
+from xnet.accounts.models import XGroup, Membership
def index(request):
- return render(request, 'groups/index.html', {'groups': XGroup.objects.order_by('kind')})
+ return render(request, 'groups/index.html', {
+ 'groups': XGroup.objects.order_by('kind'),
+ 'sidebar': 'list',
+ })
def home(request, pk):
- return render(request, 'groups/home.html', {'group': get_object_or_404(XGroup, pk=pk)})
+ return render(request, 'groups/home.html', {
+ 'group': get_object_or_404(XGroup, pk=pk),
+ 'sidebar': 'home',
+ })
+
+@group_required()
+def directory(request, group, membership=None):
+ print(group.memberships.filter(state='enabled').order_by('level'))
+ return render(request, 'groups/directory.html', {
+ 'group': group,
+ 'memberships': group.memberships. \
+ filter(state='enabled'). \
+ select_related(). \
+ order_by('level'),
+ 'is_admin': membership.level == Membership.LEVEL_ADMIN,
+ 'sidebar': 'directory',
+ })
+
+@group_required(level=Membership.LEVEL_ADMIN)
+def membership_delete(request, group, to_delete):
+ pass