Group directory view
[xnet] / xnet / accounts / views.py
index e525b86..aab40ea 100644 (file)
@@ -1,11 +1,35 @@
 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