From 5e0632e8eb01c27090d7becb49ac0e7b5caf7c26 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Mon, 14 Dec 2015 21:05:52 +0000 Subject: [PATCH] Regroup the view-feedback view to make it easier to see where to spend review effort. Fixes #1866. - Legacy-Id: 10592 --- ietf/nomcom/views.py | 19 ++++++- ietf/templates/nomcom/view_feedback.html | 66 +++++++++++++++--------- 2 files changed, 58 insertions(+), 27 deletions(-) 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

- - - - - {% for ft in feedback_types %} - - {% endfor %} - - - - {% for nominee, feedback in nominees_feedback.items %} - - - {% for f in feedback %} - + {% 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{{ ft.name }}
- {{ nominee.name }} - - - {% if f.2 %}New{% endif %} - {{ f.1 }} -
+ + + + {% for ft in feedback_types %} + + {% endfor %} + + + + {% for fb_dict in staterank.list %} + + + {% for fbtype_name, fbtype_count, fbtype_newflag in fb_dict.feedback %} + + {% endfor %} + {% endfor %} - - {% endfor %} - -
Nominee{{ ft.name }}
+ {{ fb_dict.nominee.name }} + + + {% if fbtype_newflag %}New{% endif %} + {{ fbtype_count }} +
+ + + + + {% endfor %} {% if independent_feedback_types %}

Feedback not related to Nominees