Regroup the view-feedback view to make it easier to see where to spend review effort. Fixes #1866.

- Legacy-Id: 10592
This commit is contained in:
Robert Sparks 2015-12-14 21:05:52 +00:00
parent 9ddcd62c44
commit 5e0632e8eb
2 changed files with 58 additions and 27 deletions

View file

@ -598,8 +598,23 @@ def view_feedback(request, year):
feedback_types.append(ft)
else:
independent_feedback_types.append(ft)
nominees_feedback = {}
nominees_feedback = []
def nominee_staterank(nominee):
states=nominee.nomineeposition_set.values_list('state_id',flat=True)
if 'accepted' in states:
return 0
elif 'pending' in states:
return 1
else:
return 2
for nominee in nominees:
nominee.staterank = nominee_staterank(nominee)
sorted_nominees = sorted(nominees,key=lambda x:x.staterank)
for nominee in sorted_nominees:
last_seen = FeedbackLastSeen.objects.filter(reviewer=request.user.person,nominee=nominee).first()
nominee_feedback = []
for ft in feedback_types:
@ -612,7 +627,7 @@ def view_feedback(request, year):
else:
newflag = qs.filter(time__gt=last_seen.time).exists()
nominee_feedback.append( (ft.name,count,newflag) )
nominees_feedback.update({nominee: nominee_feedback})
nominees_feedback.append( {'nominee':nominee, 'feedback':nominee_feedback} )
independent_feedback = [ft.feedback_set.get_by_nomcom(nomcom).count() for ft in independent_feedback_types]
return render_to_response('nomcom/view_feedback.html',

View file

@ -10,32 +10,48 @@
{% origin %}
<h2>Feedback related to nominees</h2>
<table class="table table-condensed table-striped">
<thead>
<tr>
<th class="col-sm-9">Nominee</th>
{% for ft in feedback_types %}
<th class="col-sm-1 text-center">{{ ft.name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for nominee, feedback in nominees_feedback.items %}
<tr>
<td>
<a href="{% url "nomcom_view_feedback_nominee" year nominee.id %}">{{ nominee.name }}</a>
<span class="hidden-xs">&lt;{{nominee.email.address}}&gt;</span>
</td>
{% for f in feedback %}
<td class="text-right">
{% if f.2 %}<span class="label label-success">New</span>{% endif %}
{{ f.1 }}
</td>
{% regroup nominees_feedback by nominee.staterank as stateranked_nominees %}
{% for staterank in stateranked_nominees %}
<div class="panel panel-default">
<div class="panel-heading">
{% if staterank.grouper == 0 %}
Accepted nomination for at least one position
{% elif staterank.grouper == 1 %}
Pending for at least one position and has not accepted any nomination
{% else %}
Declined each nominated position
{% endif %}
</div>
<div class="panel-body">
<table class="table table-condensed table-striped">
<thead>
<tr>
<th class="col-sm-9">Nominee</th>
{% for ft in feedback_types %}
<th class="col-sm-1 text-center">{{ ft.name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for fb_dict in staterank.list %}
<tr>
<td>
<a href="{% url "nomcom_view_feedback_nominee" year fb_dict.nominee.id %}">{{ fb_dict.nominee.name }}</a>
<span class="hidden-xs">&lt;{{fb_dict.nominee.email.address}}&gt;</span>
</td>
{% for fbtype_name, fbtype_count, fbtype_newflag in fb_dict.feedback %}
<td class="text-right">
{% if fbtype_newflag %}<span class="label label-success">New</span>{% endif %}
{{ fbtype_count }}
</td>
{% endfor %}
</tr>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</tbody>
</table>
</div>
</div>
{% endfor %}
{% if independent_feedback_types %}
<h2>Feedback not related to Nominees</h2>