datatracker/ietf/nomcom/views.py
Emilio Jiménez e42b5015e7 Add navigation bar for nomcom pages.
Add views and template skel for nomcom pages.
Modify nomcom templates fixtures
Modify initialize functions for nomcom templates
Add view tests for nomcom pages.
Add navset styles for horizontal items
See #919
 - Legacy-Id: 5152
2012-12-25 11:39:36 +00:00

106 lines
4.1 KiB
Python

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponseForbidden
from django.contrib.auth.decorators import login_required
from django.template.loader import render_to_string
from ietf.nomcom.utils import get_nomcom_by_year, HOME_TEMPLATE
from ietf.nomcom.forms import EditPublicKeyForm, NominateForm
def index(request, year):
nomcom = get_nomcom_by_year(year)
home_template = '/nomcom/%s/%s' % (nomcom.group.acronym, HOME_TEMPLATE)
template = render_to_string(home_template, {})
return render_to_response('nomcom/index.html',
{'nomcom': nomcom,
'year': year,
'selected': 'index',
'template': template}, RequestContext(request))
def requirements(request, year):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/requirements.html',
{'nomcom': nomcom,
'year': year,
'selected': 'requirements'}, RequestContext(request))
def questionnaires(request, year):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/questionnaires.html',
{'nomcom': nomcom,
'year': year,
'selected': 'questionnaires'}, RequestContext(request))
def questionnaire_detail(request, year, name):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/questionnaire_detail.html',
{'nomcom': nomcom,
'year': year,
'selected': 'questionnaires'}, RequestContext(request))
def requirement_detail(request, year, name):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/requirement_detail.html',
{'nomcom': nomcom,
'year': year,
'selected': 'requirements'}, RequestContext(request))
@login_required
def nominate(request, year):
nomcom = get_nomcom_by_year(year)
message = None
if request.method == 'POST':
form = NominateForm(data=request.POST, nomcom=nomcom, user=request.user)
if form.is_valid():
form.save()
message = ('success', 'Your nomination has been registered. Thank you for the nomination.')
else:
form = NominateForm(nomcom=nomcom, user=request.user)
return render_to_response('nomcom/nominate.html',
{'form': form,
'message': message,
'nomcom': nomcom,
'year': year,
'selected': 'nominate'}, RequestContext(request))
@login_required
def comments(request, year):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/comments.html',
{'nomcom': nomcom,
'year': year,
'selected': 'comments'}, RequestContext(request))
@login_required
def edit_publickey(request, year):
nomcom = get_nomcom_by_year(year)
is_group_chair = nomcom.group.is_chair(request.user)
if not is_group_chair:
return HttpResponseForbidden("Must be group chair")
message = ('warning', 'Previous data will remain encrypted with the old key')
if request.method == 'POST':
form = EditPublicKeyForm(request.POST,
request.FILES,
instance=nomcom,
initial={'public_key': None})
if form.is_valid():
form.save()
message = ('success', 'The public key has been changed')
else:
form = EditPublicKeyForm()
return render_to_response('nomcom/edit_publickey.html',
{'form': form,
'group': nomcom.group,
'message': message}, RequestContext(request))