diff --git a/ietf/nomcom/views.py b/ietf/nomcom/views.py
index c180de2ce..c24c56774 100644
--- a/ietf/nomcom/views.py
+++ b/ietf/nomcom/views.py
@@ -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',
diff --git a/ietf/templates/nomcom/view_feedback.html b/ietf/templates/nomcom/view_feedback.html
index dc1912ee9..d048f9d87 100644
--- a/ietf/templates/nomcom/view_feedback.html
+++ b/ietf/templates/nomcom/view_feedback.html
@@ -10,32 +10,48 @@
{% origin %}
Feedback related to nominees
-
-
-
- Nominee |
- {% for ft in feedback_types %}
- {{ ft.name }} |
- {% endfor %}
-
-
-
- {% for nominee, feedback in nominees_feedback.items %}
-
-
- {{ nominee.name }}
- <{{nominee.email.address}}>
- |
- {% for f in feedback %}
-
- {% if f.2 %}New{% endif %}
- {{ f.1 }}
- |
+ {% regroup nominees_feedback by nominee.staterank as stateranked_nominees %}
+ {% for staterank in stateranked_nominees %}
+
+
+ {% 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 %}
+
+
+
+
+
+ Nominee |
+ {% for ft in feedback_types %}
+ {{ ft.name }} |
+ {% endfor %}
+
+
+
+ {% for fb_dict in staterank.list %}
+
+
+ {{ fb_dict.nominee.name }}
+ <{{fb_dict.nominee.email.address}}>
+ |
+ {% for fbtype_name, fbtype_count, fbtype_newflag in fb_dict.feedback %}
+
+ {% if fbtype_newflag %}New{% endif %}
+ {{ fbtype_count }}
+ |
+ {% endfor %}
+
{% endfor %}
-
- {% endfor %}
-
-
+
+
+
+
+ {% endfor %}
{% if independent_feedback_types %}
Feedback not related to Nominees