Skip to content

Commit b76ea7b

Browse files
committed
Let a reviewer indicate that an AD should give this review early attention. Fixes ietf-tools#2553. Commit ready for merge.
- Legacy-Id: 15676
1 parent c7bf147 commit b76ea7b

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

ietf/doc/tests_review.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ def test_complete_review_enter_content(self):
649649

650650
self.assertTrue(settings.MAILING_LIST_ARCHIVE_URL in review_req.review.external_url)
651651

652-
def test_complete_notify_ad(self):
652+
def test_complete_notify_ad_because_team_settings(self):
653653
review_req, url = self.setup_complete_review_test()
654654
review_req.team.reviewteamsettings.notify_ad_when.add(ReviewResultName.objects.get(slug='issues'))
655655
# TODO - it's a little surprising that the factories so far didn't give this doc an ad
@@ -672,6 +672,31 @@ def test_complete_notify_ad(self):
672672

673673
self.assertEqual(len(outbox), 2)
674674
self.assertIn('Has Issues', outbox[-1]['Subject'])
675+
self.assertIn('settings indicated', outbox[-1].get_payload(decode=True).decode("utf-8"))
676+
677+
def test_complete_notify_ad_because_checkbox(self):
678+
review_req, url = self.setup_complete_review_test()
679+
review_req.doc.ad = PersonFactory()
680+
review_req.doc.save_with_history([DocEvent.objects.create(doc=review_req.doc, rev=review_req.doc.rev, by=review_req.reviewer.person, type='changed_document',desc='added an AD')])
681+
login_testing_unauthorized(self, review_req.reviewer.person.user.username, url)
682+
683+
empty_outbox()
684+
685+
r = self.client.post(url, data={
686+
"result": ReviewResultName.objects.get(reviewteamsettings_review_results_set__group=review_req.team, slug="issues").pk,
687+
"state": ReviewRequestStateName.objects.get(slug="completed").pk,
688+
"reviewed_rev": review_req.doc.rev,
689+
"review_submission": "enter",
690+
"review_content": "This is a review\nwith two lines",
691+
"review_url": "",
692+
"review_file": "",
693+
"email_ad": "1",
694+
})
695+
self.assertEqual(r.status_code, 302)
696+
697+
self.assertEqual(len(outbox), 2)
698+
self.assertIn('Has Issues', outbox[-1]['Subject'])
699+
self.assertIn('reviewer indicated', outbox[-1].get_payload(decode=True).decode("utf-8"))
675700

676701
@patch('requests.get')
677702
def test_complete_review_link_to_mailing_list(self, mock):

ietf/doc/views_review.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ class CompleteReviewForm(forms.Form):
379379
completion_date = DatepickerDateField(date_format="yyyy-mm-dd", picker_settings={ "autoclose": "1" }, initial=datetime.date.today, help_text="Date of announcement of the results of this review")
380380
completion_time = forms.TimeField(widget=forms.HiddenInput, initial=datetime.time.min)
381381
cc = MultiEmailField(required=False, help_text="Email addresses to send to in addition to the review team list")
382+
email_ad = forms.BooleanField(label="Send extra email to the responsible AD suggesting early attention", required=False)
382383

383384
def __init__(self, review_req, is_reviewer, *args, **kwargs):
384385
self.review_req = review_req
@@ -645,13 +646,14 @@ def complete_review(request, name, request_id):
645646
review.external_url = mailarch.construct_message_url(list_name, email.utils.unquote(msg["Message-ID"]))
646647
review.save_with_history([close_event])
647648

648-
if review_req.result in review_req.team.reviewteamsettings.notify_ad_when.all():
649+
if form.cleaned_data['email_ad'] or review_req.result in review_req.team.reviewteamsettings.notify_ad_when.all():
649650
(to, cc) = gather_address_lists('review_notify_ad',review_req = review_req)
650651
msg_txt = render_to_string("review/notify_ad.txt", {
651652
"to": to,
652653
"cc": cc,
653654
"review_req": review_req,
654655
"settings": settings,
656+
"explicit_request": form.cleaned_data['email_ad'],
655657
})
656658
msg = infer_message(msg_txt)
657659
msg.by = request.user.person

ietf/templates/review/notify_ad.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ The review is available at {{settings.IDTRACKER_BASE_URL}}{% url 'ietf.doc.views
99

1010
The document is available at {{settings.IDTRACKER_BASE_URL}}{% url 'ietf.doc.views_doc.document_main' name=review_req.doc.name %}
1111

12+
This message was sent because {% if explicit_request %}the reviewer indicated it should be on the review completion form{% else %}the review team settings indicated it should be{% endif %}.
13+
1214
{% endautoescape %}

0 commit comments

Comments
 (0)