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, 'accounts/index.html', {
+ 'groups': XGroup.objects.order_by('kind'),
+ 'sidebar': 'list',
+ })
-def view(request, pk):
- return render(request, 'groups/view.html', {'group': get_object_or_404(XGroup, pk=pk)})
+def home(request, slug):
+ return render(request, 'accounts/home.html', {
+ 'group': get_object_or_404(XGroup, short=slug),
+ 'sidebar': 'home',
+ })
+
+@group_required()
+def directory(request, group, membership=None):
+ return render(request, 'accounts/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