Skip to content

Commit c3ff510

Browse files
committed
Change questionnaire response view.
Fixes ietf-tools#1007 - Legacy-Id: 5689
1 parent edb3b13 commit c3ff510

File tree

5 files changed

+21
-14
lines changed

5 files changed

+21
-14
lines changed

ietf/nomcom/fields.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.conf import settings
22
from django.db import models
3+
from django.utils.encoding import smart_str
34

45
from ietf.utils.pipe import pipe
56

@@ -11,7 +12,7 @@ class EncryptedException(Exception):
1112
class EncryptedTextField(models.TextField):
1213
def pre_save(self, instance, add):
1314
if add:
14-
comments = getattr(instance, 'comments')
15+
comments = smart_str(getattr(instance, 'comments'))
1516
nomcom = getattr(instance, 'nomcom')
1617
cert_file = nomcom.public_key.path
1718

ietf/nomcom/forms.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from django.shortcuts import render_to_response
1212
from django.template.context import RequestContext
1313
from django.contrib.sites.models import Site
14-
from django.contrib.admin.widgets import FilteredSelectMultiple
1514

1615
from ietf.dbtemplate.forms import DBTemplateForm
1716
from ietf.utils import unaccent
@@ -27,7 +26,7 @@
2726
INEXISTENT_PERSON_TEMPLATE, NOMINEE_EMAIL_TEMPLATE, \
2827
NOMINATION_RECEIPT_TEMPLATE, FEEDBACK_RECEIPT_TEMPLATE, \
2928
get_user_email, get_hash_nominee_position, get_year_by_nomcom, \
30-
HEADER_QUESTIONNAIRE_TEMPLATE
29+
HEADER_QUESTIONNAIRE_TEMPLATE
3130
from ietf.nomcom.decorators import member_required
3231

3332
ROLODEX_URL = getattr(settings, 'ROLODEX_URL', None)
@@ -194,7 +193,7 @@ def post_post(self, request):
194193
f = self.form(request.POST, auto_id=AUTO_ID)
195194
if f.is_valid():
196195
if self.security_hash(request, f) != request.POST.get(self.unused_name('hash')):
197-
return self.failed_hash(request) # Security hash failed.
196+
return self.failed_hash(request) # Security hash failed.
198197
return self.done(request, f.cleaned_data)
199198
else:
200199
return render_to_response(self.form_template,
@@ -683,7 +682,7 @@ class QuestionnaireForm(BaseNomcomForm, forms.ModelForm):
683682

684683
comments = forms.CharField(label='Questionnaire response from this candidate',
685684
widget=forms.Textarea())
686-
fieldsets = [('Questionnaire response', ('nominee',
685+
fieldsets = [('New questionnaire response', ('nominee',
687686
'comments'))]
688687

689688
def __init__(self, *args, **kwargs):
@@ -693,7 +692,6 @@ def __init__(self, *args, **kwargs):
693692
super(QuestionnaireForm, self).__init__(*args, **kwargs)
694693
self.fields['nominee'] = PositionNomineeField(nomcom=self.nomcom, required=True)
695694

696-
697695
def save(self, commit=True):
698696
feedback = super(QuestionnaireForm, self).save(commit=False)
699697
(position, nominee) = self.cleaned_data['nominee']
@@ -732,8 +730,7 @@ class Media:
732730

733731
class NomComTemplateForm(BaseNomcomForm, DBTemplateForm):
734732

735-
fieldsets = [('Template content', ('content', )),
736-
]
733+
fieldsets = [('Template content', ('content', )), ]
737734

738735

739736
class PositionForm(BaseNomcomForm, forms.ModelForm):
@@ -771,7 +768,6 @@ def __init__(self, *args, **kwargs):
771768
super(PendingFeedbackForm, self).__init__(*args, **kwargs)
772769
self.fields['type'].queryset = FeedbackType.objects.exclude(slug='nomina')
773770

774-
775771
def set_nomcom(self, nomcom, user):
776772
self.nomcom = nomcom
777773
self.user = user

ietf/nomcom/tests.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- coding: utf-8 -*-
12
import os
23
import tempfile
34

@@ -325,7 +326,7 @@ def test_edit_nomcom_view(self):
325326
nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER)
326327
position = Position.objects.get(name='OAM')
327328

328-
comments = 'plain text'
329+
comments = 'plain text. comments with acents ááááá'
329330
nomcom = get_nomcom_by_year(self.year)
330331
feedback = Feedback.objects.create(nomcom=nomcom,
331332
comments=comments,
@@ -392,7 +393,7 @@ def nominate_view(self, *args, **kwargs):
392393
position = Position.objects.get(name=position_name)
393394
candidate_email = nominee_email
394395
candidate_name = u'nominee'
395-
comments = 'test nominate view'
396+
comments = 'test nominate view. comments with acents ááááá'
396397
candidate_phone = u'123456'
397398

398399
test_data = {'candidate_name': candidate_name,
@@ -464,7 +465,7 @@ def add_questionnaire(self, *args, **kwargs):
464465
position = Position.objects.get(name=position_name)
465466
nominee = Nominee.objects.get(email__address=nominee_email)
466467

467-
comments = 'test add questionnaire view'
468+
comments = 'test add questionnaire view. Comments with acents ááááá'
468469

469470
test_data = {'comments': comments,
470471
'nominee': '%s_%s' % (position.id, nominee.id)}
@@ -527,7 +528,7 @@ def feedback_view(self, *args, **kwargs):
527528
position = Position.objects.get(name=position_name)
528529
nominee = Nominee.objects.get(email__address=nominee_email)
529530

530-
comments = 'test feedback view'
531+
comments = 'test feedback view. Comments with acents ááááá'
531532

532533
test_data = {'comments': comments,
533534
'position_name': position.name,
@@ -623,7 +624,7 @@ def test_encrypted_comments(self):
623624
nomcom.public_key.storage.location = tempfile.gettempdir()
624625
nomcom.public_key.save('cert', File(open(self.cert_file.name, 'r')))
625626

626-
comments = 'plain text'
627+
comments = 'plain text. Comments with acents ááááá'
627628
feedback = Feedback.objects.create(nomcom=nomcom,
628629
comments=comments,
629630
type=FeedbackType.objects.get(slug='nomina'))

ietf/nomcom/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ def private_questionnaire(request, year):
310310
nomcom = get_nomcom_by_year(year)
311311
has_publickey = nomcom.public_key and True or False
312312
message = None
313+
questionnaire_response = None
313314
template = 'nomcom/private_questionnaire.html'
314315

315316
if not has_publickey:
@@ -327,12 +328,15 @@ def private_questionnaire(request, year):
327328
if form.is_valid():
328329
form.save()
329330
message = ('success', 'The questionnaire response has been registered.')
331+
questionnaire_response = form.cleaned_data['comments']
332+
form = QuestionnaireForm(nomcom=nomcom, user=request.user)
330333
else:
331334
form = QuestionnaireForm(nomcom=nomcom, user=request.user)
332335

333336
return render_to_response(template,
334337
{'has_publickey': has_publickey,
335338
'form': form,
339+
'questionnaire_response': questionnaire_response,
336340
'message': message,
337341
'nomcom': nomcom,
338342
'year': year,

ietf/templates/nomcom/private_questionnaire.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
</div>
2727

2828
<div class="content">
29+
{% if questionnaire_response %}
30+
<h3>Questionnaire response:</h3>
31+
{{ questionnaire_response }}
32+
33+
{% endif %}
2934
<div class="primary">
3035
{% if form.errors %}<div class="info-message-error">Please correct the following errors</div>{% endif %}
3136

0 commit comments

Comments
 (0)