Add skel view to provide comments to nominees

See #970
 - Legacy-Id: 5488
This commit is contained in:
Emilio Jiménez 2013-03-06 17:45:30 +00:00
parent ea4b6389d6
commit 50dd5ba30b
9 changed files with 166 additions and 12 deletions

View file

@ -414,6 +414,46 @@ class NominateForm(BaseNomcomForm, forms.ModelForm):
"/js/nomcom.js", )
class FeedbackForm(BaseNomcomForm, forms.ModelForm):
position = forms.CharField(label='position')
nominee_name = forms.CharField(label='nominee name')
nominee_email = forms.CharField(label='nominee email')
nominator_name = forms.CharField(label='nominator name')
nominator_email = forms.CharField(label='nominator email')
comments = forms.CharField(label='Comments on this candidate', widget=forms.Textarea())
fieldsets = [('Provide comments', ('position',
'nominee_name',
'nominee_email',
'nominator_name',
'nominator_email',
'comments'))]
def __init__(self, *args, **kwargs):
self.nomcom = kwargs.pop('nomcom', None)
self.user = kwargs.pop('user', None)
self.public = kwargs.pop('public', None)
super(FeedbackForm, self).__init__(*args, **kwargs)
def save(self, commit=True):
pass
class Meta:
model = Feedback
fields = ('position',
'nominee_name',
'nominee_email',
'nominator_name',
'nominator_email',
'comments')
class Media:
js = ("/js/jquery-1.5.1.min.js",
"/js/nomcom.js", )
class NomComTemplateForm(BaseNomcomForm, DBTemplateForm):
fieldsets = [('Template content', ('content', )),

View file

@ -6,6 +6,7 @@ urlpatterns = patterns('ietf.nomcom.views',
url(r'^(?P<year>\d{4})/private/$', 'private_index', name='nomcom_private_index'),
url(r'^(?P<year>\d{4})/private/key/$', 'private_key', name='nomcom_private_key'),
url(r'^(?P<year>\d{4})/private/nominate/$', 'private_nominate', name='nomcom_private_nominate'),
url(r'^(?P<year>\d{4})/private/feedback/$', 'private_feedback', name='nomcom_private_feedback'),
url(r'^(?P<year>\d{4})/private/merge/$', 'private_merge', name='nomcom_private_merge'),
url(r'^(?P<year>\d{4})/private/send-reminder-mail/$', 'send_reminder_mail', name='nomcom_send_reminder_mail'),
url(r'^(?P<year>\d{4})/private/edit-members/$', EditMembersFormPreview(EditMembersForm), name='nomcom_edit_members'),
@ -21,7 +22,7 @@ urlpatterns = patterns('ietf.nomcom.views',
url(r'^(?P<year>\d{4})/$', 'index', name='nomcom_index'),
url(r'^(?P<year>\d{4})/requirements/$', 'requirements', name='nomcom_requirements'),
url(r'^(?P<year>\d{4})/questionnaires/$', 'questionnaires', name='nomcom_questionnaires'),
url(r'^(?P<year>\d{4})/comments/$', 'comments', name='nomcom_comments'),
url(r'^(?P<year>\d{4})/feedback/$', 'public_feedback', name='nomcom_public_feedback'),
url(r'^(?P<year>\d{4})/nominate/$', 'public_nominate', name='nomcom_public_nominate'),
url(r'^ajax/position-text/(?P<position_id>\d+)/$', 'ajax_position_text', name='nomcom_ajax_position_text'),

View file

@ -15,7 +15,7 @@ from ietf.dbtemplate.models import DBTemplate
from ietf.dbtemplate.views import template_edit
from ietf.name.models import NomineePositionState
from ietf.nomcom.decorators import member_required, private_key_required
from ietf.nomcom.forms import (EditPublicKeyForm, NominateForm, MergeForm,
from ietf.nomcom.forms import (EditPublicKeyForm, NominateForm, FeedbackForm, MergeForm,
NomComTemplateForm, PositionForm, PrivateKeyForm)
from ietf.nomcom.models import Position, NomineePosition, Nominee
from ietf.nomcom.utils import (get_nomcom_by_year, HOME_TEMPLATE,
@ -241,13 +241,48 @@ def nominate(request, year, public):
@login_required
def comments(request, year):
# TODO: complete to do comments
def public_feedback(request, year):
return feedback(request, year, True)
@member_required(role='member')
def private_feedback(request, year):
return feedback(request, year, False)
def feedback(request, year, public):
nomcom = get_nomcom_by_year(year)
return render_to_response('nomcom/comments.html',
{'nomcom': nomcom,
has_publickey = nomcom.public_key and True or False
if public:
template = 'nomcom/public_feedback.html'
else:
template = 'nomcom/private_feedback.html'
if not has_publickey:
message = ('warning', "Nomcom don't have public key to ecrypt data, please contact with nomcom chair")
return render_to_response(template,
{'has_publickey': has_publickey,
'message': message,
'nomcom': nomcom,
'year': year,
'selected': 'comments'}, RequestContext(request))
'selected': 'feedback'}, RequestContext(request))
message = None
if request.method == 'POST':
form = FeedbackForm(data=request.POST, nomcom=nomcom, user=request.user, public=public)
if form.is_valid():
form.save()
message = ('success', 'Your nomination has been registered. Thank you for the nomination.')
else:
form = FeedbackForm(nomcom=nomcom, user=request.user, public=public)
return render_to_response(template,
{'has_publickey': has_publickey,
'form': form,
'message': message,
'nomcom': nomcom,
'year': year,
'selected': 'feedback'}, RequestContext(request))
@member_required(role='chair')

View file

@ -1,3 +0,0 @@
{% extends "nomcom/nomcom_public_base.html" %}
{% block subtitle %} - Provide comments {% endblock %}

View file

@ -9,6 +9,7 @@
<div class="ietf-navset">
{% if selected == "index" %}<span class="selected">List of nominees</span>{% else %}<a href="{% url nomcom_private_index year %}">List of nominees</a>{% endif %} |
{% if selected == "nominate" %}<span class="selected">Nominate</span>{% else %}<a href="{% url nomcom_private_nominate year %}">Nominate</a>{% endif %} |
{% if selected == "feedback" %}<span class="selected">Provide comments</span>{% else %}<a href="{% url nomcom_private_feedback year %}">Provide comments</a>{% endif %} |
{% if selected == "private_key" %}<span class="selected">Private key</span>{% else %}<a href="{% url nomcom_private_key year %}">Private key</a>{% endif %}
{% if user|is_chair:year %} |
{% if selected == "merge" %}<span class="selected">Merge nominee email addr</span>{% else %}<a href="{% url nomcom_private_merge year %}">Merge nominee email addr</a>{% endif %} |

View file

@ -7,9 +7,9 @@
<div class="ietf-navset">
{% if selected == "index" %}<span class="selected">Home</span>{% else %}<a href="{% url nomcom_index year %}">Home</a>{% endif %} |
{% if selected == "nominate" %}<span class="selected">Nominate</span>{% else %}<a href="{% url nomcom_public_nominate year %}">Nominate</a>{% endif %} |
{% if selected == "feedback" %}<span class="selected">Provide Comments</span>{% else %}<a href="{% url nomcom_public_feedback year %}">Provide Comments</a>{% endif %} |
{% if selected == "requirements" %}<span class="selected">Requirements</span>{% else %}<a href="{% url nomcom_requirements year %}">Requirements</a>{% endif %} |
{% if selected == "questionnaires" %}<span class="selected">Questionnaires</span>{% else %}<a href="{% url nomcom_questionnaires year %}">Questionnaires</a>{% endif %} |
{% if selected == "comments" %}<span class="selected">Provide Comments</span>{% else %}<a href="{% url nomcom_comments year %}">Provide Comments</a>{% endif %}
</div>
{% block nomcom_content %}

View file

@ -0,0 +1,40 @@
{% extends "nomcom/nomcom_private_base.html" %}
{% block subtitle %} - Feedback{% endblock %}
{% block pagehead %}
{{ form.media }}
{% endblock %}
{% block nomcom_content %}
{% if message %}
<div class="info-message-{{ message.0 }}">{{ message.1 }}</div>
{% endif %}
{% if has_publickey %}
<div class="js-info">
Your browser has Javascript disabled. Please enable javascript and reload the page.
<script type="text/javascript">
(function ($) {
$(".js-info").hide();
})(jQuery);
</script>
</div>
{% if form.errors %}<div class="info-message-error">Please correct the following errors</div>{% endif %}
<form id="privateform" action="" method="post">{% csrf_token %}
{{ form }}
<div class="submitrow">
<input type="submit" value="Save" name="save" />
</div>
</form>
{% endif %}
{% endblock %}

View file

@ -0,0 +1,40 @@
{% extends "nomcom/nomcom_public_base.html" %}
{% block subtitle %} - Feedback{% endblock %}
{% block pagehead %}
{{ form.media }}
{% endblock %}
{% block nomcom_content %}
{% if message %}
<div class="info-message-{{ message.0 }}">{{ message.1 }}</div>
{% endif %}
{% if has_publickey %}
<div class="js-info">
Your browser has Javascript disabled. Please enable javascript and reload the page.
<script type="text/javascript">
(function ($) {
$(".js-info").hide();
})(jQuery);
</script>
</div>
{% if form.errors %}<div class="info-message-error">Please correct the following errors</div>{% endif %}
<form id="feedbackform" action="" method="post">{% csrf_token %}
{{ form }}
<div class="submitrow">
<input type="submit" value="Save" name="save" />
</div>
</form>
{% endif %}
{% endblock %}

View file

@ -10,7 +10,7 @@
{% if message %}
<div class="info-message-{{ message.0 }}">{{ message.1 }}</div>
<div class="info-message-{{ message.0 }}">{{ message.1 }}</div>
{% endif %}
{% if has_publickey %}