Skip to content

Commit 6a159eb

Browse files
committed
Merged in [16094] from magnus.westerlund@ericsson.com:
Added sortable columns to Review Team Reviewers page. Partially addresses issue ietf-tools#2656 - Legacy-Id: 16112 Note: SVN reference [16094] has been migrated to Git commit 0c0e758
1 parent 175c75c commit 6a159eb

8 files changed

Lines changed: 44 additions & 9 deletions

File tree

bin/mergedevbranch

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ if [ "$REPLY" != "" ]; then
167167
fi
168168
169169
echo ""
170+
171+
note "Writing commit script"
172+
echo -e "#!/bin/bash\n\nsvn commit -m \"Merged in [$rev] from $who:\n ${comment//\"/\'} ${fix//\"/\'}\"" > ../cicmd/commit-${rev}-merge.sh
173+
chmod +x ../cicmd/commit-${rev}-merge.sh
174+
175+
170176
read -p "Continue with the merge? [Y/n] "
171177
[ "$REPLY" = "Y" -o "$REPLY" = "y" -o "$REPLY" = "" ] || exit
172178
@@ -179,10 +185,6 @@ else
179185
svn merge -c $rev ${repo}/$branch ."
180186
fi
181187
182-
note "Writing commit script"
183-
echo -e "#!/bin/bash\n\nsvn commit -m \"Merged in [$rev] from $who:\n ${comment//\"/\'} ${fix//\"/\'}\"" > ../cicmd/commit-${rev}-merge.sh
184-
chmod +x ../cicmd/commit-${rev}-merge.sh
185-
186188
M=$(svn st | cut -c 1-7 | grep -oh 'M' | head -n 1)
187189
C=$(svn st | cut -c 1-7 | grep -oh 'C' | head -n 1)
188190
G=$(svn st | cut -c 1-7 | grep -oh 'G' | head -n 1)

ietf/group/forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ def clean_end_date(self):
323323
class ReviewSecretarySettingsForm(forms.ModelForm):
324324
class Meta:
325325
model = ReviewSecretarySettings
326-
fields = ['remind_days_before_deadline']
326+
fields = ['remind_days_before_deadline', 'max_items_to_show_in_reviewer_list',
327+
'days_to_show_in_reviewer_list']
327328

328329

ietf/group/tests_review.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,11 +519,15 @@ def test_change_review_secretary_settings(self):
519519

520520
# set settings
521521
r = self.client.post(url, {
522-
"remind_days_before_deadline": "6"
522+
"remind_days_before_deadline": "6",
523+
"max_items_to_show_in_reviewer_list": 10,
524+
"days_to_show_in_reviewer_list": 365
523525
})
524526
self.assertEqual(r.status_code, 302)
525527
settings = ReviewSecretarySettings.objects.get(person=secretary, team=review_req.team)
526528
self.assertEqual(settings.remind_days_before_deadline, 6)
529+
self.assertEqual(settings.max_items_to_show_in_reviewer_list, 10)
530+
self.assertEqual(settings.days_to_show_in_reviewer_list, 365)
527531

528532
def test_review_reminders(self):
529533
review_req = ReviewRequestFactory()

ietf/group/views.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
import os
3838
import re
39+
import sys
3940
import json
4041
import math
4142
import itertools
@@ -1388,6 +1389,7 @@ def reviewer_overview(request, acronym, group_type=None):
13881389

13891390

13901391
MAX_CLOSED_REQS = 10
1392+
days_since = sys.maxsize
13911393
req_data = req_data_for_reviewers.get(person.pk, [])
13921394
open_reqs = sum(1 for d in req_data if d.state in ["requested", "accepted"])
13931395
latest_reqs = []
@@ -1396,7 +1398,17 @@ def reviewer_overview(request, acronym, group_type=None):
13961398
latest_reqs.append((d.req_pk, d.doc, d.reviewed_rev, d.assigned_time, d.deadline,
13971399
review_state_by_slug.get(d.state),
13981400
int(math.ceil(d.assignment_to_closure_days)) if d.assignment_to_closure_days is not None else None))
1401+
if d.state in ["completed", "completed_in_time", "completed_late"]:
1402+
if d.assigned_time is not None:
1403+
delta = datetime.datetime.now() - d.assigned_time
1404+
if d.assignment_to_closure_days is not None:
1405+
days = int(delta.days - d.assignment_to_closure_days)
1406+
if days_since > days: days_since = days
1407+
1408+
if days_since == sys.maxsize:
1409+
days_since = None
13991410
person.latest_reqs = latest_reqs
1411+
person.days_since_completed_review = days_since
14001412

14011413
return render(request, 'group/reviewer_overview.html',
14021414
construct_group_menu_context(request, group, "reviewers", group_type, {

ietf/review/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def acronym(self, obj):
1717
admin.site.register(ReviewerSettings, ReviewerSettingsAdmin)
1818

1919
class ReviewSecretarySettingsAdmin(admin.ModelAdmin):
20-
list_display = [u'id', 'team', 'person', 'remind_days_before_deadline']
20+
list_display = [u'id', 'team', 'person', 'remind_days_before_deadline', 'max_items_to_show_in_reviewer_list', 'days_to_show_in_reviewer_list']
2121
raw_id_fields = ['team', 'person']
2222
admin.site.register(ReviewSecretarySettings, ReviewSecretarySettingsAdmin)
2323

ietf/review/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class ReviewSecretarySettings(models.Model):
4242
team = ForeignKey(Group, limit_choices_to=~models.Q(reviewteamsettings=None))
4343
person = ForeignKey(Person)
4444
remind_days_before_deadline = models.IntegerField(null=True, blank=True, help_text="To get an email reminder in case a reviewer forgets to do an assigned review, enter the number of days before review deadline you want to receive it. Clear the field if you don't want a reminder.")
45+
max_items_to_show_in_reviewer_list = models.IntegerField(null=True, blank=True, help_text="Maximum number of completed items to show for one reviewer in the reviewer list view, the list is also filtered by the days to show in reviews list setting.")
46+
days_to_show_in_reviewer_list = models.IntegerField(null=True, blank=True, help_text="Maximum number of days to show in reviewer list for completed items.")
4547

4648
def __unicode__(self):
4749
return u"{} in {}".format(self.person, self.team)

ietf/templates/group/reviewer_overview.html

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
{% block group_content %}
1010
{% origin %}
1111

12+
{% block pagehead %}
13+
<link rel="stylesheet" href="{% static "jquery.tablesorter/css/theme.bootstrap.min.css" %}">
14+
{% endblock %}
15+
1216
{% if can_access_stats %}
1317
<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>
1418
{% endif %}
@@ -25,11 +29,13 @@ <h2>Reviewers</h2>
2529
</div>
2630

2731
{% if reviewers %}
28-
<table class="table reviewer-overview">
32+
<table class="table reviewer-overview tablesorter">
2933
<thead>
3034
<tr>
35+
<th>Next</th>
3136
<th>Reviewer</th>
3237
<th>Assigned/Deadline/state/time between assignment and closure for latest assignments</th>
38+
<th>Days Since Completed</th>
3339
<th>Settings</th>
3440
</tr>
3541
</thead>
@@ -39,12 +45,13 @@ <h2>Reviewers</h2>
3945
{% elif person.busy %}class="busy"
4046
{% elif person.settings.skip_next %}class="skip-next"
4147
{% endif %}>
48+
<td>{{ forloop.counter }}</td>
4249
<td>{% if person.settings_url %}<a href="{{ person.settings_url }}" title="{{person.settings.expertise}}">{% endif %}{{ person }}{% if person.settings_url %}</a>{% endif %}</td>
4350
<td>
4451
<table class="simple-table">
4552
{% for req_pk, doc_name, reviewed_rev, assigned_time, deadline, state, assignment_to_closure_days in person.latest_reqs %}
4653
<tr>
47-
<td>{{ assigned_time|date }}</td>
54+
<td><span style="display:none">X</span>{{ assigned_time|date }}</td>
4855
<td><a href="{% url "ietf.doc.views_review.review_request" name=doc_name request_id=req_pk %}">{{ deadline|date }}</a></td>
4956
<td>
5057
<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 @@ <h2>Reviewers</h2>
5764
{% endfor %}
5865
</table>
5966
</td>
67+
<td> {% if person.days_since_completed_review %} {{ person.days_since_completed_review }} {% else %} <span style="display:none">99999{% endif %} </td>
6068
<td>
6169
{% if person.settings.min_interval %}
6270
{{ person.settings.get_min_interval_display }}<br>
@@ -84,3 +92,7 @@ <h2>Reviewers</h2>
8492
{% endif %}
8593

8694
{% endblock %}
95+
96+
{% block js %}
97+
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
98+
{% endblock %}

ready-for-merge

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
# --- Add entries at the top ---
99

10+
/personal/fenton/6.94.2.dev0@16108
11+
1012
/personal/housley/6.87.4.dev0@15683
1113

1214
/personal/rcross/6.81.3.dev0@15265

0 commit comments

Comments
 (0)