Merged in [14505] from rjsparks@nostrum.com:
Make extracting lists of nomcom-related email addresses easier for the nomcom chair. Fixes #1852.
- Legacy-Id: 14510
Note: SVN reference [14505] has been migrated to Git commit c8b451094a
This commit is contained in:
commit
78304b4d57
|
@ -1743,6 +1743,12 @@ Junk body for testing
|
|||
self.assertEqual(len(outbox),1)
|
||||
self.assertTrue(all([str(x.person.pk) in outbox[0].get_payload(decode=True) for x in [nominee1,nominee2]]))
|
||||
|
||||
def test_extract_email(self):
|
||||
url = reverse('ietf.nomcom.views.extract_email_lists',kwargs={'year':self.nc.year()})
|
||||
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
class NomComIndexTests(TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
@ -23,6 +23,7 @@ urlpatterns = [
|
|||
url(r'^(?P<year>\d{4})/private/merge-nominee/?$', views.private_merge_nominee),
|
||||
url(r'^(?P<year>\d{4})/private/merge-person/?$', views.private_merge_person),
|
||||
url(r'^(?P<year>\d{4})/private/send-reminder-mail/(?P<type>\w+)/$', views.send_reminder_mail),
|
||||
url(r'^(?P<year>\d{4})/private/extract-email-lists/$', views.extract_email_lists),
|
||||
url(r'^(?P<year>\d{4})/private/edit-members/$', views.edit_members),
|
||||
url(r'^(?P<year>\d{4})/private/edit-nomcom/$', views.edit_nomcom),
|
||||
url(r'^(?P<year>\d{4})/private/chair/templates/$', views.list_templates),
|
||||
|
|
|
@ -1202,3 +1202,23 @@ def edit_members(request, year):
|
|||
'form': form,
|
||||
})
|
||||
|
||||
@role_required("Nomcom Chair", "Nomcom Advisor")
|
||||
def extract_email_lists(request, year):
|
||||
nomcom = get_nomcom_by_year(year)
|
||||
|
||||
pending = nomcom.nominee_set.filter(nomineeposition__state='pending').distinct()
|
||||
accepted = nomcom.nominee_set.filter(nomineeposition__state='accepted').distinct()
|
||||
noresp = [n for n in accepted if n.nomineeposition_set.without_questionnaire_response().filter(state='accepted')]
|
||||
|
||||
bypos = {}
|
||||
for pos in nomcom.position_set.all():
|
||||
bypos[pos] = nomcom.nominee_set.filter(nomineeposition__position=pos,nomineeposition__state='accepted').distinct()
|
||||
|
||||
return render(request, 'nomcom/extract_email_lists.html',
|
||||
{'nomcom': nomcom,
|
||||
'year' : year,
|
||||
'pending': pending,
|
||||
'accepted': accepted,
|
||||
'noresp': noresp,
|
||||
'bypos': bypos,
|
||||
})
|
||||
|
|
6
ietf/templates/nomcom/email_list_panel.html
Normal file
6
ietf/templates/nomcom/email_list_panel.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><h3>{{title}}</h3></div>
|
||||
<div class="panel-body">
|
||||
{% for n in list %}{{n.email.address}}{% if not forloop.last %}, {%endif %}{% endfor %}
|
||||
</div>
|
||||
</div>
|
32
ietf/templates/nomcom/extract_email_lists.html
Normal file
32
ietf/templates/nomcom/extract_email_lists.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
{% extends "nomcom/nomcom_private_base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load bootstrap3 %}
|
||||
|
||||
{% block subtitle %} - Email Lists{% endblock %}
|
||||
|
||||
{% block nomcom_content %}
|
||||
{% origin %}
|
||||
<h2>Email lists for {{ nomcom.group }}</h2>
|
||||
|
||||
{% with title='Nominees Pending Acceptance' list=pending %}
|
||||
{% include 'nomcom/email_list_panel.html' %}
|
||||
{% endwith %}
|
||||
{% with title='Accepted Nominees' list=accepted %}
|
||||
{% include 'nomcom/email_list_panel.html' %}
|
||||
{% endwith %}
|
||||
{% with title='Accepted Nominees Without a Questionnaire Response' list=noresp %}
|
||||
{% include 'nomcom/email_list_panel.html' %}
|
||||
{% endwith %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><h3>Accepted Nominees by Position</h3></div>
|
||||
<div class="panel-body">
|
||||
{% for pos, accepts in bypos.items %}
|
||||
{% with title=pos.name list=accepts %}
|
||||
{% include 'nomcom/email_list_panel.html' %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock nomcom_content %}
|
|
@ -31,6 +31,7 @@
|
|||
<li {% if selected == "feedback_pending" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.view_feedback_pending' year %}">Classify pending feedback</a></li>
|
||||
<li {% if selected == "feedback_email" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.private_feedback_email' year %}">Enter email feedback</a></li>
|
||||
<li {% if selected == "questionnaire" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.private_questionnaire' year %}">Enter questionnaire response</a></li>
|
||||
<li {% if selected == "extract_email_lists" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.extract_email_lists' year %}">Extract email lists</a></li>
|
||||
<li {% if selected == "send_accept_reminder" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.send_reminder_mail' year "accept" %}">Send accept reminder</a></li>
|
||||
<li {% if selected == "send_questionnaire_reminder" %}class="active"{% endif %}><a href="{% url 'ietf.nomcom.views.send_reminder_mail' year "questionnaire" %}">Send questionnaire reminder</a></li>
|
||||
<li {% if selected == "merge_person" %}class="active"{% endif %}><a href="{% url "ietf.nomcom.views.private_merge_person" year %}">Request Person Record Merge</a></li>
|
||||
|
|
Loading…
Reference in a new issue