Skip to content

Commit 91d0a79

Browse files
committed
Merged in [16904] from sasha@dashcare.nl:
Fix ietf-tools#2118 - Always list all last call drafts in assignment summary. If a draft is scheduled for a telechat, but also assigned for LC review, it will now be listed both in the telechat section and under 'last calls'. - Legacy-Id: 16913 Note: SVN reference [16904] has been migrated to Git commit 82c63b4
2 parents 399d0e1 + 82c63b4 commit 91d0a79

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

ietf/group/tests_review.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ def test_email_open_review_assignments(self):
240240
review_req1 = ReviewRequestFactory()
241241
review_assignment_completed = ReviewAssignmentFactory(review_request=review_req1,reviewer=EmailFactory(person__user__username='marschairman'), state_id='completed', reviewed_rev=0)
242242
ReviewAssignmentFactory(review_request=review_req1,reviewer=review_assignment_completed.reviewer)
243+
TelechatDocEvent.objects.create(telechat_date=datetime.date.today(), type='scheduled_for_telechat', by=review_assignment_completed.reviewer.person, doc=review_req1.doc, rev=0)
244+
243245
DBTemplateFactory.create(path='/group/defaults/email/open_assignments.txt',
244246
type_id='django',
245247
content = """
@@ -270,8 +272,10 @@ def test_email_open_review_assignments(self):
270272
self.assertEqual(r.status_code, 200)
271273
q = PyQuery(r.content)
272274
generated_text = q("[name=body]").text()
273-
self.assertTrue(review_req1.doc.name in generated_text)
274-
self.assertTrue('(-0 lc reviewed)' in generated_text) # previous completed assignment
275+
# The document should be listed both for the telechat, and in the last call section,
276+
# i.e. the document name is expected twice in the output (#2118)
277+
self.assertEqual(generated_text.count(review_req1.doc.name), 2)
278+
self.assertEqual(generated_text.count('(-0 lc reviewed)'), 2) # previous completed assignment
275279
self.assertTrue(six.text_type(Person.objects.get(user__username="marschairman")) in generated_text)
276280

277281
empty_outbox()

ietf/group/views.py

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

3737
from __future__ import absolute_import, print_function, unicode_literals
3838

39+
import copy
3940
import datetime
4041
import itertools
4142
import io
@@ -1591,8 +1592,6 @@ def email_open_review_assignments(request, acronym, group_type=None):
15911592
state__in=("assigned", "accepted"),
15921593
).prefetch_related("reviewer", "review_request__type", "state", "review_request__doc").distinct().order_by("reviewer","-review_request__deadline"))
15931594

1594-
review_assignments.sort(key=lambda r:r.reviewer.person.last_name()+r.reviewer.person.first_name())
1595-
15961595
for r in review_assignments:
15971596
if r.review_request.doc.telechat_date():
15981597
r.section = 'For telechat %s' % r.review_request.doc.telechat_date().isoformat()
@@ -1610,7 +1609,19 @@ def email_open_review_assignments(request, acronym, group_type=None):
16101609
earlier_reviews_formatted = ['-{} {} reviewed'.format(ra.reviewed_rev, ra.review_request.type.slug) for ra in r.earlier_review]
16111610
r.earlier_reviews = '({})'.format(', '.join(earlier_reviews_formatted))
16121611

1613-
review_assignments.sort(key=lambda r: r.section_order)
1612+
# If a document is both scheduled for a telechat and a last call review, replicate
1613+
# a copy of the review assignment in the last calls section (#2118)
1614+
def should_be_replicated_in_last_call_section(r):
1615+
return r.section.startswith('For telechat') and r.review_request.type_id != 'early'
1616+
1617+
for r in filter(should_be_replicated_in_last_call_section, review_assignments):
1618+
r_new = copy.copy(r)
1619+
r_new.section = 'Last calls:'
1620+
r_new.section_order = '1'
1621+
review_assignments.append(r_new)
1622+
1623+
review_assignments.sort(key=lambda r: r.section_order + r.reviewer.person.last_name() +
1624+
r.reviewer.person.first_name())
16141625

16151626
back_url = request.GET.get("next")
16161627
if not back_url:

0 commit comments

Comments
 (0)