| 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 | def home(request, slug): |
| 15 | return render(request, 'groups/home.html', { |
| 16 | 'group': get_object_or_404(XGroup, short=slug), |
| 17 | 'sidebar': 'home', |
| 18 | }) |
| 19 | |
| 20 | @group_required() |
| 21 | def directory(request, group, membership=None): |
| 22 | return render(request, 'groups/directory.html', { |
| 23 | 'group': group, |
| 24 | 'memberships': group.memberships. \ |
| 25 | filter(state='enabled'). \ |
| 26 | select_related(). \ |
| 27 | order_by('level'), |
| 28 | 'is_admin': membership.level == Membership.LEVEL_ADMIN, |
| 29 | 'sidebar': 'directory', |
| 30 | }) |
| 31 | |
| 32 | @group_required(level=Membership.LEVEL_ADMIN) |
| 33 | def membership_delete(request, group, to_delete): |
| 34 | pass |