Skip to content

Commit cd77c76

Browse files
Add links to user profiles from nominee list and feedback page. Fixes ietf-tools#2839. Commit ready for merge.
- Legacy-Id: 17275
1 parent c628678 commit cd77c76

3 files changed

Lines changed: 48 additions & 21 deletions

File tree

ietf/nomcom/tests.py

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright The IETF Trust 2012-2019, All Rights Reserved
1+
# Copyright The IETF Trust 2012-2020, All Rights Reserved
22
# -*- coding: utf-8 -*-
33

44

@@ -124,22 +124,37 @@ def access_secretariat_url(self, url):
124124
def test_private_index_view(self):
125125
"""Verify private home view"""
126126
self.access_member_url(self.private_index_url)
127+
128+
# Verify that nominee table has links to person and feedback pages
129+
nom_pos = self.create_nominee('accepted', COMMUNITY_USER, 'APP')
130+
person_url = reverse('ietf.person.views.profile',
131+
kwargs={'email_or_name': nom_pos.nominee.name()})
132+
feedback_url = reverse('ietf.nomcom.views.view_feedback_nominee',
133+
kwargs={'year': self.year, 'nominee_id': nom_pos.nominee.pk})
134+
135+
# With a single nominee, the first row will have our data.
136+
# Require that the row have at least one link to the person URL
137+
# and one to the feedback URL.
138+
response = self.client.get(self.private_index_url)
139+
q = PyQuery(response.content)
140+
row_q = q('#nominee-position-table tbody tr').eq(0)
141+
self.assertTrue(row_q('a[href="%s"]' % (person_url)),
142+
'Nominee table does not link to nominee profile page')
143+
self.assertTrue(row_q('a[href="%s#comment"]' % (feedback_url)),
144+
'Nominee table does not link to nominee feedback page')
127145
self.client.logout()
128146

147+
def create_nominee(self, base_state, username, pos_name):
148+
cnominee = Nominee.objects.get(email__person__user__username=username)
149+
position = Position.objects.get(name=pos_name)
150+
return NomineePosition.objects.create(position=position,
151+
nominee=cnominee,
152+
state=NomineePositionStateName.objects.get(slug=base_state))
153+
129154
def create_nominees_for_states(self, base_state):
130-
cnominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER)
131-
position = Position.objects.get(name='APP')
132-
nom_pos = NomineePosition.objects.create(position=position,
133-
nominee=cnominee,
134-
state=NomineePositionStateName.objects.get(slug=base_state))
135-
position = Position.objects.get(name='INT')
136-
NomineePosition.objects.create(position=position,
137-
nominee=cnominee,
138-
state=NomineePositionStateName.objects.get(slug=base_state))
139-
position = Position.objects.get(name='OAM')
140-
NomineePosition.objects.create(position=position,
141-
nominee=cnominee,
142-
state=NomineePositionStateName.objects.get(slug=base_state))
155+
nom_pos = self.create_nominee(base_state, COMMUNITY_USER, 'APP')
156+
self.create_nominee(base_state, COMMUNITY_USER, 'INT')
157+
self.create_nominee(base_state, COMMUNITY_USER, 'OAM')
143158
return nom_pos
144159

145160
def test_private_index_post_accept(self):
@@ -872,7 +887,12 @@ def feedback_view(self, *args, **kwargs):
872887
response = self.client.get(feedback_url)
873888
self.assertEqual(response.status_code, 200)
874889
self.assertContains(response, "feedbackform")
875-
890+
# Test for a link to the nominee's profile page
891+
q = PyQuery(response.content)
892+
person_url = reverse('ietf.person.views.profile', kwargs={'email_or_name': nominee.name()})
893+
self.assertTrue(q('a[href="%s"]' % (person_url)),
894+
'Nominee feedback page does not link to profile page')
895+
876896
comments = 'Test feedback view. Comments with accents äöåÄÖÅ éáíóú âêîôû ü àèìòù.'
877897

878898
test_data = {'comment_text': comments,

ietf/templates/nomcom/feedback.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% extends base_template %}
2-
{# Copyright The IETF Trust 2015, All Rights Reserved #}
2+
{# Copyright The IETF Trust 2015-2020, All Rights Reserved #}
33
{% load origin %}
44

55
{% load bootstrap3 %}
@@ -91,7 +91,10 @@ <h3>Topics</h3>
9191
<div class="col-sm-8 col-sm-pull-4">
9292
{% if form %}
9393
{% if form.position %}
94-
<h3> Provide feedback about {{form.nominee.email.person.name}} ({{form.nominee.email.address}}) for the {{form.position.name}} position.
94+
<h3> Provide feedback about
95+
<a href="{% url 'ietf.person.views.profile' email_or_name=form.nominee.name %}">
96+
{{form.nominee.email.person.name}}
97+
</a> ({{form.nominee.email.address}}) for the {{form.position.name}} position.
9598
{% if nomcom.show_nominee_pictures and form.nominee.email.person.photo_thumb %}
9699
<span class="feedbackphoto"><img src="{{form.nominee.email.person.photo_thumb.url}}" width=100 /></span>
97100
{% endif %}

ietf/templates/nomcom/private_index.html

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% extends "nomcom/nomcom_private_base.html" %}
2-
{# Copyright The IETF Trust 2015, All Rights Reserved #}
2+
{# Copyright The IETF Trust 2015-2020, All Rights Reserved #}
33
{% load origin static %}
44

55
{% block subtitle %} - Administration {% endblock %}
@@ -116,11 +116,12 @@ <h2>Nominees by position</h2>
116116
{% endif %}
117117

118118

119-
<table class="table table-condensed table-striped table-hover tablesorter">
119+
<table class="table table-condensed table-striped table-hover tablesorter"
120+
id="nominee-position-table">
120121
<thead>
121122
<tr>
122123
{% if is_chair and nomcom.group.state_id == 'active' %}<th colspan="2"><span class="fa fa-check"></span></th>{% endif %}
123-
<th>Nominee</th>
124+
<th colspan="2">Nominee</th>
124125
<th>Position</th>
125126
<th>State</th>
126127
<th>Questionnaire response</th>
@@ -135,7 +136,10 @@ <h2>Nominees by position</h2>
135136
{% endif %}
136137

137138
<td>
138-
<a href="{% url 'ietf.nomcom.views.view_feedback_nominee' year=year nominee_id=np.nominee.id %}#comment">{{ np.nominee }}</a>
139+
<a href="{% url 'ietf.person.views.profile' email_or_name=np.nominee.name %}">{{ np.nominee }}</a>
140+
</td>
141+
<td>
142+
<a href="{% url 'ietf.nomcom.views.view_feedback_nominee' year=year nominee_id=np.nominee.id %}#comment">View feedback</a>
139143
</td>
140144
<td>{{ np.position.name }}</td>
141145
<td>{{ np.state }}</td>

0 commit comments

Comments
 (0)