Send email to new mailtrigger controlled destinations when iana expert review state changes. Fixes #3121. Commit ready for merge.
- Legacy-Id: 18714
This commit is contained in:
parent
6c953bd010
commit
7e384a8aea
|
@ -643,4 +643,15 @@ def email_lc_to_yang_doctors(request, doc):
|
|||
'doc/mail/lc_to_yang_doctors.txt',
|
||||
dict(doc=doc, url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url() ),
|
||||
cc = addrs.cc,
|
||||
)
|
||||
)
|
||||
|
||||
def email_iana_expert_review_state_changed(request, events):
|
||||
assert type(events) == list
|
||||
assert len(events) == 1
|
||||
addrs = gather_address_lists('iana_expert_review_state_changed', doc=events[0].doc)
|
||||
send_mail(request, addrs.to, settings.DEFAULT_FROM_EMAIL,
|
||||
f'IANA expert review state changed to {events[0].state.name} for {events[0].doc.name}',
|
||||
'doc/mail/iana_expert_review_state_changed.txt',
|
||||
dict(event=events[0], url=settings.IDTRACKER_BASE_URL + events[0].doc.get_absolute_url() ),
|
||||
cc = addrs.cc,
|
||||
)
|
||||
|
|
|
@ -201,6 +201,26 @@ class ChangeStateTests(TestCase):
|
|||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertEqual(draft.get_state("draft-iana-review"), next_state)
|
||||
|
||||
def test_change_iana_expert_review_state(self):
|
||||
draft = WgDraftFactory()
|
||||
|
||||
first_state = State.objects.get(used=True, type='draft-iana-experts', slug='reviews-assigned')
|
||||
next_state = State.objects.get(used=True, type='draft-iana-experts', slug='reviewers-ok')
|
||||
|
||||
draft.set_state(first_state)
|
||||
|
||||
url = urlreverse('ietf.doc.views_draft.change_iana_state', kwargs=dict(name=draft.name, state_type="iana-experts"))
|
||||
login_testing_unauthorized(self, 'iana', url)
|
||||
|
||||
empty_outbox()
|
||||
r = self.client.post(url, dict(state=next_state.pk))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertEqual(draft.get_state("draft-iana-experts"), next_state)
|
||||
|
||||
self.assertEqual(len(outbox),1)
|
||||
|
||||
def test_add_expert_review_comment(self):
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.doc.views_draft.add_iana_experts_comment',kwargs=dict(name=draft.name))
|
||||
|
|
|
@ -30,7 +30,8 @@ from ietf.doc.mails import ( email_pulled_from_rfc_queue, email_resurrect_reques
|
|||
email_resurrection_completed, email_state_changed, email_stream_changed,
|
||||
email_stream_state_changed, email_stream_tags_changed, extra_automation_headers,
|
||||
generate_publication_request, email_adopted, email_intended_status_changed,
|
||||
email_iesg_processing_document, email_ad_approved_doc )
|
||||
email_iesg_processing_document, email_ad_approved_doc,
|
||||
email_iana_expert_review_state_changed )
|
||||
from ietf.doc.utils import ( add_state_change_event, can_adopt_draft, can_unadopt_draft,
|
||||
get_tags_for_stream_id, nice_consensus,
|
||||
update_reminder, update_telechat, make_notify_changed_event, get_initial_notify,
|
||||
|
@ -240,6 +241,9 @@ def change_iana_state(request, name, state_type):
|
|||
|
||||
doc.save_with_history(events)
|
||||
|
||||
if state_type == 'draft-iana-experts':
|
||||
email_iana_expert_review_state_changed(request, events)
|
||||
|
||||
return HttpResponseRedirect(doc.get_absolute_url())
|
||||
|
||||
else:
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
# Copyright The IETF Trust 2020 All Rights Reserved
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
def forward(apps,schema_editor):
|
||||
MailTrigger = apps.get_model('mailtrigger', 'MailTrigger')
|
||||
Recipient = apps.get_model('mailtrigger', 'Recipient')
|
||||
|
||||
iana_er_state_changed = MailTrigger.objects.create(
|
||||
slug='iana_expert_review_state_changed',
|
||||
desc='Recipients when the IANA expert review for a document changes',
|
||||
)
|
||||
|
||||
iana_er_state_changed.to.set(
|
||||
Recipient.objects.filter(slug__in=[
|
||||
'doc_ad', 'doc_authors', 'doc_group_chairs', 'doc_group_responsible_directors', 'doc_notify', 'doc_shepherd'
|
||||
])
|
||||
)
|
||||
|
||||
def reverse(apps,schema_editor):
|
||||
MailTrigger = apps.get_model('mailtrigger', 'MailTrigger')
|
||||
|
||||
MailTrigger.objects.filter(slug='iana_expert_review_state_changed').delete()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mailtrigger', '0018_interim_approve_announce'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(forward, reverse),
|
||||
]
|
|
@ -3727,6 +3727,22 @@
|
|||
"model": "mailtrigger.mailtrigger",
|
||||
"pk": "group_personnel_change"
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"cc": [],
|
||||
"desc": "Recipients when the IANA expert review for a document changes",
|
||||
"to": [
|
||||
"doc_ad",
|
||||
"doc_authors",
|
||||
"doc_group_chairs",
|
||||
"doc_group_responsible_directors",
|
||||
"doc_notify",
|
||||
"doc_shepherd"
|
||||
]
|
||||
},
|
||||
"model": "mailtrigger.mailtrigger",
|
||||
"pk": "iana_expert_review_state_changed"
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"cc": [],
|
||||
|
@ -15008,7 +15024,7 @@
|
|||
"fields": {
|
||||
"command": "xym",
|
||||
"switch": "--version",
|
||||
"time": "2020-10-09T00:17:03.141",
|
||||
"time": "2020-11-14T00:10:15.888",
|
||||
"used": true,
|
||||
"version": "xym 0.4.8"
|
||||
},
|
||||
|
@ -15019,9 +15035,9 @@
|
|||
"fields": {
|
||||
"command": "pyang",
|
||||
"switch": "--version",
|
||||
"time": "2020-10-09T00:17:04.888",
|
||||
"time": "2020-11-14T00:10:17.069",
|
||||
"used": true,
|
||||
"version": "pyang 2.3.2"
|
||||
"version": "pyang 2.4.0"
|
||||
},
|
||||
"model": "utils.versioninfo",
|
||||
"pk": 2
|
||||
|
@ -15030,7 +15046,7 @@
|
|||
"fields": {
|
||||
"command": "yanglint",
|
||||
"switch": "--version",
|
||||
"time": "2020-10-09T00:17:05.228",
|
||||
"time": "2020-11-14T00:10:17.405",
|
||||
"used": true,
|
||||
"version": "yanglint SO 1.6.7"
|
||||
},
|
||||
|
@ -15041,9 +15057,9 @@
|
|||
"fields": {
|
||||
"command": "xml2rfc",
|
||||
"switch": "--version",
|
||||
"time": "2020-10-09T00:17:07.630",
|
||||
"time": "2020-11-14T00:10:19.405",
|
||||
"used": true,
|
||||
"version": "xml2rfc 3.2.1"
|
||||
"version": "xml2rfc 3.4.0"
|
||||
},
|
||||
"model": "utils.versioninfo",
|
||||
"pk": 4
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{% autoescape off %}The IANA expert review state for {{event.doc.name}} has changed to {{event.state.name}}.
|
||||
|
||||
For more information, see the document in the Datatracker at: {{ url }}
|
||||
{% endautoescape %}
|
Loading…
Reference in a new issue