Skip to content

Commit a3399b0

Browse files
committed
Summary: Port remaining parts of nomcom to bootstrap, fix some bugs,
let the private/public feedback pages share the same template, remove the edit NomCom chair thing - there's no link to it and the Secretariat can instead use the ordinary group management tool they have available - Legacy-Id: 8721
1 parent 027a976 commit a3399b0

11 files changed

Lines changed: 30 additions & 236 deletions

File tree

ietf/nomcom/forms.py

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -207,62 +207,6 @@ def done(self, request, cleaned_data):
207207
return redirect('nomcom_edit_members', year=self.year)
208208

209209

210-
class EditChairForm(BaseNomcomForm, forms.Form):
211-
212-
chair = forms.EmailField(label="Chair email", required=False,
213-
widget=forms.TextInput(attrs={'size': '40'}))
214-
215-
fieldsets = [('Chair info', ('chair',))]
216-
217-
218-
class EditChairFormPreview(FormPreview):
219-
form_template = 'nomcom/edit_chair.html'
220-
preview_template = 'nomcom/edit_chair_preview.html'
221-
222-
@method_decorator(role_required("Secretariat"))
223-
def __call__(self, request, *args, **kwargs):
224-
year = kwargs['year']
225-
group = get_nomcom_group_or_404(year)
226-
self.state['group'] = group
227-
self.state['rolodex_url'] = ROLODEX_URL
228-
self.group = group
229-
self.year = year
230-
231-
return super(EditChairFormPreview, self).__call__(request, *args, **kwargs)
232-
233-
def get_initial(self, request):
234-
chair = self.group.get_chair()
235-
if chair:
236-
return { "chair": chair.email.address }
237-
return {}
238-
239-
def process_preview(self, request, form, context):
240-
chair_email = form.cleaned_data['chair']
241-
try:
242-
chair_email_obj = Email.objects.get(address=chair_email)
243-
chair_person = chair_email_obj.person
244-
except Email.DoesNotExist:
245-
chair_person = None
246-
chair_email_obj = None
247-
chair_info = {'email': chair_email,
248-
'email_obj': chair_email_obj,
249-
'person': chair_person}
250-
251-
self.state.update({'chair_info': chair_info})
252-
253-
def done(self, request, cleaned_data):
254-
chair_info = self.state['chair_info']
255-
chair_exclude = self.group.role_set.filter(name__slug='chair').exclude(email__address=chair_info['email'])
256-
chair_exclude.delete()
257-
if chair_info['email_obj'] and chair_info['person']:
258-
Role.objects.get_or_create(name=RoleName.objects.get(slug="chair"),
259-
group=self.group,
260-
person=chair_info['person'],
261-
email=chair_info['email_obj'])
262-
263-
return redirect('nomcom_edit_chair', year=self.year)
264-
265-
266210
class EditNomcomForm(BaseNomcomForm, forms.ModelForm):
267211

268212
fieldsets = [('Edit nomcom settings', ('public_key', 'initial_text',

ietf/nomcom/tests.py

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from ietf.nomcom.models import NomineePosition, Position, Nominee, \
2323
NomineePositionStateName, Feedback, FeedbackTypeName, \
2424
Nomination
25-
from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, EditMembersForm
25+
from ietf.nomcom.forms import EditMembersForm, EditMembersFormPreview
2626
from ietf.nomcom.utils import get_nomcom_by_year, get_or_create_nominee
2727
from ietf.nomcom.management.commands.send_reminders import Command, is_time_to_send
2828

@@ -54,7 +54,6 @@ def setUp(self):
5454
self.private_index_url = reverse('nomcom_private_index', kwargs={'year': self.year})
5555
self.private_merge_url = reverse('nomcom_private_merge', kwargs={'year': self.year})
5656
self.edit_members_url = reverse('nomcom_edit_members', kwargs={'year': self.year})
57-
self.edit_chair_url = reverse('nomcom_edit_chair', kwargs={'year': self.year})
5857
self.edit_nomcom_url = reverse('nomcom_edit_nomcom', kwargs={'year': self.year})
5958
self.private_nominate_url = reverse('nomcom_private_nominate', kwargs={'year': self.year})
6059
self.add_questionnaire_url = reverse('nomcom_private_questionnaire', kwargs={'year': self.year})
@@ -298,7 +297,7 @@ def change_members(self, members):
298297
# preview
299298
self.client.post(self.edit_members_url, test_data)
300299

301-
hash = EditChairFormPreview(EditChairForm).security_hash(None, EditMembersForm(test_data))
300+
hash = EditMembersFormPreview(EditMembersForm).security_hash(None, EditMembersForm(test_data))
302301
test_data.update({'hash': hash, 'stage': 2})
303302

304303
# submit
@@ -323,33 +322,6 @@ def test_edit_members_view(self):
323322
self.check_url_status(self.private_index_url, 403)
324323
self.client.logout()
325324

326-
def change_chair(self, user):
327-
test_data = {'chair': '%s%s' % (user, EMAIL_DOMAIN),
328-
'stage': 1}
329-
# preview
330-
self.client.post(self.edit_chair_url, test_data)
331-
332-
hash = EditChairFormPreview(EditChairForm).security_hash(None, EditChairForm(test_data))
333-
test_data.update({'hash': hash, 'stage': 2})
334-
335-
# submit
336-
self.client.post(self.edit_chair_url, test_data)
337-
338-
def test_edit_chair_view(self):
339-
self.access_secretariat_url(self.edit_chair_url)
340-
self.change_chair(COMMUNITY_USER)
341-
342-
# check chair actions
343-
self.client.login(username=COMMUNITY_USER,password=COMMUNITY_USER+"+password")
344-
self.check_url_status(self.edit_members_url, 200)
345-
self.check_url_status(self.edit_nomcom_url, 200)
346-
self.client.logout()
347-
348-
# revert edit nomcom chair
349-
login_testing_unauthorized(self, SECRETARIAT_USER, self.edit_chair_url)
350-
self.change_chair(CHAIR_USER)
351-
self.client.logout()
352-
353325
def test_edit_nomcom_view(self):
354326
r = self.access_chair_url(self.edit_nomcom_url)
355327
q = PyQuery(r.content)

ietf/nomcom/urls.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
from django.conf.urls import patterns, url
22
from django.views.generic import TemplateView
33

4-
from ietf.nomcom.forms import ( EditChairForm, EditChairFormPreview,
5-
EditMembersForm, EditMembersFormPreview )
4+
from ietf.nomcom.forms import EditMembersForm, EditMembersFormPreview
65

76
urlpatterns = patterns('ietf.nomcom.views',
87
url(r'^$', 'index'),
@@ -22,7 +21,6 @@
2221
# url(r'^(?P<year>\d{4})/private/send-reminder-mail/$', RedirectView.as_view(url=reverse_lazy('nomcom_send_reminder_mail',kwargs={'year':year,'type':'accept'}))),
2322
url(r'^(?P<year>\d{4})/private/send-reminder-mail/(?P<type>\w+)/$', 'send_reminder_mail', name='nomcom_send_reminder_mail'),
2423
url(r'^(?P<year>\d{4})/private/edit-members/$', EditMembersFormPreview(EditMembersForm), name='nomcom_edit_members'),
25-
url(r'^(?P<year>\d{4})/private/edit-chair/$', EditChairFormPreview(EditChairForm), name='nomcom_edit_chair'),
2624
url(r'^(?P<year>\d{4})/private/edit-nomcom/$', 'edit_nomcom', name='nomcom_edit_nomcom'),
2725
url(r'^(?P<year>\d{4})/private/delete-nomcom/$', 'delete_nomcom', name='nomcom_delete_nomcom'),
2826
url(r'^deleted/$', TemplateView.as_view(template_name='nomcom/deleted.html'), name='nomcom_deleted'),

ietf/nomcom/views.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -361,17 +361,19 @@ def feedback(request, year, public):
361361
positions = Position.objects.get_by_nomcom(nomcom=nomcom).opened()
362362

363363
if public:
364-
template = 'nomcom/public_feedback.html'
364+
base_template = "nomcom/nomcom_public_base.html"
365365
else:
366-
template = 'nomcom/private_feedback.html'
366+
base_template = "nomcom/nomcom_private_base.html"
367367

368368
if not has_publickey:
369369
message = ('warning', "This Nomcom is not yet accepting comments")
370-
return render_to_response(template,
371-
{'message': message,
372-
'nomcom': nomcom,
373-
'year': year,
374-
'selected': 'feedback'}, RequestContext(request))
370+
return render(request, 'nomcom/feedback.html', {
371+
'message': message,
372+
'nomcom': nomcom,
373+
'year': year,
374+
'selected': 'feedback',
375+
'base_template': base_template
376+
})
375377

376378
message = None
377379
if request.method == 'POST':
@@ -385,14 +387,16 @@ def feedback(request, year, public):
385387
form = FeedbackForm(nomcom=nomcom, user=request.user, public=public,
386388
position=position, nominee=nominee)
387389

388-
return render_to_response(template,
389-
{'form': form,
390-
'message': message,
391-
'nomcom': nomcom,
392-
'year': year,
393-
'positions': positions,
394-
'submit_disabled': submit_disabled,
395-
'selected': 'feedback'}, RequestContext(request))
390+
return render(request, 'nomcom/feedback.html', {
391+
'form': form,
392+
'message': message,
393+
'nomcom': nomcom,
394+
'year': year,
395+
'positions': positions,
396+
'submit_disabled': submit_disabled,
397+
'selected': 'feedback',
398+
'base_template': base_template
399+
})
396400

397401

398402
@role_required("Nomcom Chair", "Nomcom Advisor")

ietf/templates/nomcom/deleted.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
{% extends "nomcom/nomcom_base.html" %}
1+
{% extends "ietf.html" %}
2+
3+
{% block title %}NomCom deleted{% endblock %}
24

35
{% block content %}
6+
<h1>NomCom deleted</h1>
47

58
<p class="alert alert-success">All data about the NomCom has been removed.</p>
69

ietf/templates/nomcom/edit_chair.html

Lines changed: 0 additions & 18 deletions
This file was deleted.

ietf/templates/nomcom/edit_chair_preview.html

Lines changed: 0 additions & 44 deletions
This file was deleted.

ietf/templates/nomcom/public_feedback.html renamed to ietf/templates/nomcom/feedback.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% extends "nomcom/nomcom_public_base.html" %}
1+
{% extends base_template %}
22

33
{% load bootstrap3 %}
44
{% load nomcom_tags %}
@@ -26,9 +26,9 @@ <h3>Nominees</h3>
2626
{% for p in positions %}
2727
{% if p.nomineeposition_set.accepted.not_duplicated %}
2828
<h4>{{ p.name }}</h4>
29-
<div class="btn-group-vertical btn-group-justified form-group">
29+
<div class="btn-group-vertical form-group">
3030
{% for np in p.nomineeposition_set.accepted.not_duplicated %}
31-
<a class="btn btn-default btn-xs" href="{% url "nomcom_public_feedback" year %}?nominee={{np.nominee.id}}&position={{ np.position.id}}">
31+
<a class="btn btn-default btn-xs" href="?nominee={{np.nominee.id}}&position={{ np.position.id}}">
3232
{{ np.nominee }}
3333
{% add_num_nominations user np.position np.nominee %}
3434
</a>

ietf/templates/nomcom/nomcom_base.html

Lines changed: 0 additions & 3 deletions
This file was deleted.

ietf/templates/nomcom/private_feedback.html

Lines changed: 0 additions & 63 deletions
This file was deleted.

0 commit comments

Comments
 (0)