Change questionnaire response view.

Fixes #1007
 - Legacy-Id: 5689
This commit is contained in:
Emilio Jiménez 2013-05-02 09:42:00 +00:00
parent edb3b138f5
commit c3ff510ed0
5 changed files with 21 additions and 14 deletions

View file

@ -1,5 +1,6 @@
from django.conf import settings
from django.db import models
from django.utils.encoding import smart_str
from ietf.utils.pipe import pipe
@ -11,7 +12,7 @@ class EncryptedException(Exception):
class EncryptedTextField(models.TextField):
def pre_save(self, instance, add):
if add:
comments = getattr(instance, 'comments')
comments = smart_str(getattr(instance, 'comments'))
nomcom = getattr(instance, 'nomcom')
cert_file = nomcom.public_key.path

View file

@ -11,7 +11,6 @@ from django.utils.decorators import method_decorator
from django.shortcuts import render_to_response
from django.template.context import RequestContext
from django.contrib.sites.models import Site
from django.contrib.admin.widgets import FilteredSelectMultiple
from ietf.dbtemplate.forms import DBTemplateForm
from ietf.utils import unaccent
@ -27,7 +26,7 @@ from ietf.nomcom.utils import QUESTIONNAIRE_TEMPLATE, NOMINATION_EMAIL_TEMPLATE,
INEXISTENT_PERSON_TEMPLATE, NOMINEE_EMAIL_TEMPLATE, \
NOMINATION_RECEIPT_TEMPLATE, FEEDBACK_RECEIPT_TEMPLATE, \
get_user_email, get_hash_nominee_position, get_year_by_nomcom, \
HEADER_QUESTIONNAIRE_TEMPLATE
HEADER_QUESTIONNAIRE_TEMPLATE
from ietf.nomcom.decorators import member_required
ROLODEX_URL = getattr(settings, 'ROLODEX_URL', None)
@ -194,7 +193,7 @@ class EditMembersFormPreview(FormPreview):
f = self.form(request.POST, auto_id=AUTO_ID)
if f.is_valid():
if self.security_hash(request, f) != request.POST.get(self.unused_name('hash')):
return self.failed_hash(request) # Security hash failed.
return self.failed_hash(request) # Security hash failed.
return self.done(request, f.cleaned_data)
else:
return render_to_response(self.form_template,
@ -683,7 +682,7 @@ class QuestionnaireForm(BaseNomcomForm, forms.ModelForm):
comments = forms.CharField(label='Questionnaire response from this candidate',
widget=forms.Textarea())
fieldsets = [('Questionnaire response', ('nominee',
fieldsets = [('New questionnaire response', ('nominee',
'comments'))]
def __init__(self, *args, **kwargs):
@ -693,7 +692,6 @@ class QuestionnaireForm(BaseNomcomForm, forms.ModelForm):
super(QuestionnaireForm, self).__init__(*args, **kwargs)
self.fields['nominee'] = PositionNomineeField(nomcom=self.nomcom, required=True)
def save(self, commit=True):
feedback = super(QuestionnaireForm, self).save(commit=False)
(position, nominee) = self.cleaned_data['nominee']
@ -732,8 +730,7 @@ class QuestionnaireForm(BaseNomcomForm, forms.ModelForm):
class NomComTemplateForm(BaseNomcomForm, DBTemplateForm):
fieldsets = [('Template content', ('content', )),
]
fieldsets = [('Template content', ('content', )), ]
class PositionForm(BaseNomcomForm, forms.ModelForm):
@ -771,7 +768,6 @@ class PendingFeedbackForm(BaseNomcomForm, forms.ModelForm):
super(PendingFeedbackForm, self).__init__(*args, **kwargs)
self.fields['type'].queryset = FeedbackType.objects.exclude(slug='nomina')
def set_nomcom(self, nomcom, user):
self.nomcom = nomcom
self.user = user

View file

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import os
import tempfile
@ -325,7 +326,7 @@ class NomcomViewsTest(TestCase):
nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER)
position = Position.objects.get(name='OAM')
comments = 'plain text'
comments = 'plain text. comments with acents ááááá'
nomcom = get_nomcom_by_year(self.year)
feedback = Feedback.objects.create(nomcom=nomcom,
comments=comments,
@ -392,7 +393,7 @@ class NomcomViewsTest(TestCase):
position = Position.objects.get(name=position_name)
candidate_email = nominee_email
candidate_name = u'nominee'
comments = 'test nominate view'
comments = 'test nominate view. comments with acents ááááá'
candidate_phone = u'123456'
test_data = {'candidate_name': candidate_name,
@ -464,7 +465,7 @@ class NomcomViewsTest(TestCase):
position = Position.objects.get(name=position_name)
nominee = Nominee.objects.get(email__address=nominee_email)
comments = 'test add questionnaire view'
comments = 'test add questionnaire view. Comments with acents ááááá'
test_data = {'comments': comments,
'nominee': '%s_%s' % (position.id, nominee.id)}
@ -527,7 +528,7 @@ class NomcomViewsTest(TestCase):
position = Position.objects.get(name=position_name)
nominee = Nominee.objects.get(email__address=nominee_email)
comments = 'test feedback view'
comments = 'test feedback view. Comments with acents ááááá'
test_data = {'comments': comments,
'position_name': position.name,
@ -623,7 +624,7 @@ class FeedbackTest(TestCase):
nomcom.public_key.storage.location = tempfile.gettempdir()
nomcom.public_key.save('cert', File(open(self.cert_file.name, 'r')))
comments = 'plain text'
comments = 'plain text. Comments with acents ááááá'
feedback = Feedback.objects.create(nomcom=nomcom,
comments=comments,
type=FeedbackType.objects.get(slug='nomina'))

View file

@ -310,6 +310,7 @@ def private_questionnaire(request, year):
nomcom = get_nomcom_by_year(year)
has_publickey = nomcom.public_key and True or False
message = None
questionnaire_response = None
template = 'nomcom/private_questionnaire.html'
if not has_publickey:
@ -327,12 +328,15 @@ def private_questionnaire(request, year):
if form.is_valid():
form.save()
message = ('success', 'The questionnaire response has been registered.')
questionnaire_response = form.cleaned_data['comments']
form = QuestionnaireForm(nomcom=nomcom, user=request.user)
else:
form = QuestionnaireForm(nomcom=nomcom, user=request.user)
return render_to_response(template,
{'has_publickey': has_publickey,
'form': form,
'questionnaire_response': questionnaire_response,
'message': message,
'nomcom': nomcom,
'year': year,

View file

@ -26,6 +26,11 @@
</div>
<div class="content">
{% if questionnaire_response %}
<h3>Questionnaire response:</h3>
{{ questionnaire_response }}
{% endif %}
<div class="primary">
{% if form.errors %}<div class="info-message-error">Please correct the following errors</div>{% endif %}