Add Committee management page

This commit is contained in:
2017-02-10 11:46:52 -05:00
parent f59f019668
commit 9ff1eec057
11 changed files with 176 additions and 3 deletions

10
committee/urls.py Normal file
View File

@@ -0,0 +1,10 @@
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.edit, name='edit'),
url(r'^update/(?P<committee>\d+)/$', views.update, name='update'),
url(r'^fincom/$', views.add_to_fincom, name='add_to_fincom'),
url(r'^fincom/delete$', views.remove_fincom, name='remove_fincom'),
url(r'^new$', views.new_committee, name='new_committee'),
]

View File

@@ -1,3 +1,71 @@
from django.shortcuts import render
from django.shortcuts import HttpResponse, HttpResponseRedirect
from django.template import loader
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User, Group
from models import Committee
# Create your views here.
@login_required
def edit(request):
if (not request.user.groups.filter(name='Fincom').exists()):
return HttpResponseRedirect('/items')
template = loader.get_template('committee/edit.html')
context = {
'committees': Committee.objects.order_by('name'),
'fincom': User.objects.filter(groups__name='Fincom'),
'users': User.objects.order_by('first_name', 'last_name'),
}
return HttpResponse(template.render(context, request))
@login_required
def update(request, committee):
if (not request.user.groups.filter(name='Fincom').exists()):
return HttpResponseRedirect('/items')
committee = Committee.objects.get(pk=committee)
committee.name = request.POST['name']
committee.chair = User.objects.get(pk=request.POST['chair'])
committee.save()
return HttpResponseRedirect('/committees')
@login_required
def new_committee(request):
if (not request.user.groups.filter(name='Fincom').exists()):
return HttpResponseRedirect('/items')
committee = Committee(
name = request.POST['name'],
chair = User.objects.get(pk=request.POST['chair']),
)
committee.save()
return HttpResponseRedirect('/committees')
@login_required
def add_to_fincom(request):
if (not request.user.groups.filter(name='Fincom').exists()):
return HttpResponseRedirect('/items')
user = User.objects.get(pk=request.POST['user'])
user.groups.add(Group.objects.filter(name='Fincom')[0])
user.save()
return HttpResponseRedirect('/committees')
@login_required
def remove_fincom(request):
if (not request.user.groups.filter(name='Fincom').exists()):
return HttpResponseRedirect('/items')
for u in request.POST.getlist('user'):
user = User.objects.get(pk=u)
user.groups.remove(Group.objects.filter(name='Fincom')[0])
user.save()
return HttpResponseRedirect('/committees')