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)
|
feedback_types.append(ft)
|
||||||
else:
|
else:
|
||||||
independent_feedback_types.append(ft)
|
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:
|
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()
|
last_seen = FeedbackLastSeen.objects.filter(reviewer=request.user.person,nominee=nominee).first()
|
||||||
nominee_feedback = []
|
nominee_feedback = []
|
||||||
for ft in feedback_types:
|
for ft in feedback_types:
|
||||||
|
@ -612,7 +627,7 @@ def view_feedback(request, year):
|
||||||
else:
|
else:
|
||||||
newflag = qs.filter(time__gt=last_seen.time).exists()
|
newflag = qs.filter(time__gt=last_seen.time).exists()
|
||||||
nominee_feedback.append( (ft.name,count,newflag) )
|
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]
|
independent_feedback = [ft.feedback_set.get_by_nomcom(nomcom).count() for ft in independent_feedback_types]
|
||||||
|
|
||||||
return render_to_response('nomcom/view_feedback.html',
|
return render_to_response('nomcom/view_feedback.html',
|
||||||
|
|
|
@ -10,32 +10,48 @@
|
||||||
{% origin %}
|
{% origin %}
|
||||||
<h2>Feedback related to nominees</h2>
|
<h2>Feedback related to nominees</h2>
|
||||||
|
|
||||||
<table class="table table-condensed table-striped">
|
{% regroup nominees_feedback by nominee.staterank as stateranked_nominees %}
|
||||||
<thead>
|
{% for staterank in stateranked_nominees %}
|
||||||
<tr>
|
<div class="panel panel-default">
|
||||||
<th class="col-sm-9">Nominee</th>
|
<div class="panel-heading">
|
||||||
{% for ft in feedback_types %}
|
{% if staterank.grouper == 0 %}
|
||||||
<th class="col-sm-1 text-center">{{ ft.name }}</th>
|
Accepted nomination for at least one position
|
||||||
{% endfor %}
|
{% elif staterank.grouper == 1 %}
|
||||||
</tr>
|
Pending for at least one position and has not accepted any nomination
|
||||||
</thead>
|
{% else %}
|
||||||
<tbody>
|
Declined each nominated position
|
||||||
{% for nominee, feedback in nominees_feedback.items %}
|
{% endif %}
|
||||||
<tr>
|
</div>
|
||||||
<td>
|
<div class="panel-body">
|
||||||
<a href="{% url "nomcom_view_feedback_nominee" year nominee.id %}">{{ nominee.name }}</a>
|
<table class="table table-condensed table-striped">
|
||||||
<span class="hidden-xs"><{{nominee.email.address}}></span>
|
<thead>
|
||||||
</td>
|
<tr>
|
||||||
{% for f in feedback %}
|
<th class="col-sm-9">Nominee</th>
|
||||||
<td class="text-right">
|
{% for ft in feedback_types %}
|
||||||
{% if f.2 %}<span class="label label-success">New</span>{% endif %}
|
<th class="col-sm-1 text-center">{{ ft.name }}</th>
|
||||||
{{ f.1 }}
|
{% endfor %}
|
||||||
</td>
|
</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 %}
|
{% endfor %}
|
||||||
</tr>
|
</tbody>
|
||||||
{% endfor %}
|
</table>
|
||||||
</tbody>
|
</div>
|
||||||
</table>
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
{% if independent_feedback_types %}
|
{% if independent_feedback_types %}
|
||||||
<h2>Feedback not related to Nominees</h2>
|
<h2>Feedback not related to Nominees</h2>
|
||||||
|
|
Loading…
Reference in a new issue