Merged in [16094] from magnus.westerlund@ericsson.com:

Added sortable columns to Review Team Reviewers page. Partially addresses issue #2656
 - Legacy-Id: 16115
Note: SVN reference [16094] has been migrated to Git commit 0c0e75861e
This commit is contained in:
Henrik Levkowetz 2019-03-28 11:08:06 +00:00
parent 54b5ea71ae
commit 93593a07c4
2 changed files with 23 additions and 2 deletions

View file

@ -1388,6 +1388,7 @@ def reviewer_overview(request, acronym, group_type=None):
MAX_CLOSED_REQS = 10
days_since = 9999
req_data = req_data_for_reviewers.get(person.pk, [])
open_reqs = sum(1 for d in req_data if d.state in ["requested", "accepted"])
latest_reqs = []
@ -1396,7 +1397,15 @@ def reviewer_overview(request, acronym, group_type=None):
latest_reqs.append((d.req_pk, d.doc, d.reviewed_rev, d.assigned_time, d.deadline,
review_state_by_slug.get(d.state),
int(math.ceil(d.assignment_to_closure_days)) if d.assignment_to_closure_days is not None else None))
if d.state in ["completed", "completed_in_time", "completed_late"]:
if d.assigned_time is not None:
delta = datetime.datetime.now() - d.assigned_time
if d.assignment_to_closure_days is not None:
days = int(delta.days - d.assignment_to_closure_days)
if days_since > days: days_since = days
person.latest_reqs = latest_reqs
person.days_since_completed_review = days_since
return render(request, 'group/reviewer_overview.html',
construct_group_menu_context(request, group, "reviewers", group_type, {

View file

@ -9,6 +9,10 @@
{% block group_content %}
{% origin %}
{% block pagehead %}
<link rel="stylesheet" href="{% static "jquery.tablesorter/css/theme.bootstrap.min.css" %}">
{% endblock %}
{% if can_access_stats %}
<h1 class="pull-right"><a href="{% url "ietf.stats.views.review_stats" stats_type="completion" acronym=group.acronym %}" class="icon-link">&nbsp;<span class="small fa fa-bar-chart">&nbsp;</span></a></h1>
{% endif %}
@ -25,11 +29,13 @@
</div>
{% if reviewers %}
<table class="table reviewer-overview">
<table class="table reviewer-overview tablesorter">
<thead>
<tr>
<th>Next</th>
<th>Reviewer</th>
<th>Assigned/Deadline/state/time between assignment and closure for latest assignments</th>
<th>Days Since Completed</th>
<th>Settings</th>
</tr>
</thead>
@ -39,12 +45,13 @@
{% elif person.busy %}class="busy"
{% elif person.settings.skip_next %}class="skip-next"
{% endif %}>
<td>{{ forloop.counter }}</td>
<td>{% if person.settings_url %}<a href="{{ person.settings_url }}" title="{{person.settings.expertise}}">{% endif %}{{ person }}{% if person.settings_url %}</a>{% endif %}</td>
<td>
<table class="simple-table">
{% for req_pk, doc_name, reviewed_rev, assigned_time, deadline, state, assignment_to_closure_days in person.latest_reqs %}
<tr>
<td>{{ assigned_time|date }}</td>
<td><span style="display:none">X</span>{{ assigned_time|date }}</td>
<td><a href="{% url "ietf.doc.views_review.review_request" name=doc_name request_id=req_pk %}">{{ deadline|date }}</a></td>
<td>
<span class="label label-{% if state.slug == "completed" or state.slug == "part-completed" %}success{% elif state.slug == "no-response" %}danger{% elif state.slug == "overtaken" %}warning{% elif state.slug == "requested" or state.slug == "accepted" %}primary{% else %}default{% endif %}">{{ state.name }}</span>
@ -57,6 +64,7 @@
{% endfor %}
</table>
</td>
<td> {% if person.days_since_completed_review != 9999 %} {{ person.days_since_completed_review }} {% else %} <span style="display:none">9999</span> </td> {% endif %}
<td>
{% if person.settings.min_interval %}
{{ person.settings.get_min_interval_display }}<br>
@ -84,3 +92,7 @@
{% endif %}
{% endblock %}
{% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %}