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:
parent
9ddcd62c44
commit
5e0632e8eb
|
@ -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',
|
||||
|
|
|
@ -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"><{{nominee.email.address}}></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"><{{fb_dict.nominee.email.address}}></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>
|
||||
|
|
Loading…
Reference in a new issue