Skip to content

Commit ab34ecb

Browse files
committed
Merged in [17288] from rjsparks@nostrum.com:
Make internal review email about an RG use the IRSG instead of the IESG in text and addresses. Fixes ietf-tools#2881. - Legacy-Id: 17307 Note: SVN reference [17288] has been migrated to Git commit 4cce1b5
2 parents 53bdd42 + 4cce1b5 commit ab34ecb

4 files changed

Lines changed: 85 additions & 12 deletions

File tree

ietf/doc/mails.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright The IETF Trust 2010-2019, All Rights Reserved
1+
# Copyright The IETF Trust 2010-2020, All Rights Reserved
22
# -*- coding: utf-8 -*-
33
# generation of mails
44

@@ -542,5 +542,5 @@ def email_charter_internal_review(request, charter):
542542
milestones=charter.group.groupmilestone_set.filter(state="charter"),
543543
),
544544
cc=addrs.cc,
545-
extra={'Reply-To': ["iesg@ietf.org", ]},
545+
extra={'Reply-To': ["irsg@irtf.org" if charter.group.type_id == 'rg' else "iesg@ietf.org", ]},
546546
)

ietf/doc/tests_charter.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,44 @@ def find_event(t):
228228
self.assertEqual(r.status_code, 302)
229229
self.assertTrue("A new charter" in get_payload(outbox[-3]))
230230

231+
def test_change_rg_state(self):
232+
233+
irtf = Group.objects.get(acronym='irtf')
234+
235+
group = GroupFactory(acronym='somerg', type_id='rg', state_id='proposed',list_email='somerg@ietf.org',parent=irtf)
236+
charter = CharterFactory(group=group)
237+
238+
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name))
239+
login_testing_unauthorized(self, "secretary", url)
240+
241+
s = State.objects.get(used=True, type="charter", slug="intrev")
242+
empty_outbox()
243+
244+
r = self.client.post(url, dict(charter_state=str(s.pk), message="test message"))
245+
self.assertEqual(r.status_code, 302)
246+
247+
self.assertIn("Internal RG Review", outbox[-3]['Subject'])
248+
self.assertIn("iab@", outbox[-3]['To'])
249+
self.assertIn("irsg@", outbox[-3]['To'])
250+
body = get_payload(outbox[-3])
251+
for word in ["A new IRTF RG",
252+
"Mailing list", "somerg@ietf.org",
253+
"Charter", "Milestones"]:
254+
255+
self.assertIn(word, body)
256+
257+
self.assertIn("state changed", outbox[-2]['Subject'].lower())
258+
self.assertIn("iesg-secretary@", outbox[-2]['To'])
259+
body = get_payload(outbox[-2])
260+
for word in ["RG", "Charter", ]:
261+
self.assertIn(word, body)
262+
263+
self.assertIn("State Update Notice", outbox[-1]['Subject'])
264+
self.assertIn("somerg-chairs@", outbox[-1]['To'])
265+
body = get_payload(outbox[-1])
266+
for word in ["State changed", "Datatracker URL", ]:
267+
self.assertIn(word, body)
268+
231269
def test_abandon_bof(self):
232270
charter = CharterFactory(group__state_id='bof',group__type_id='wg')
233271
url = urlreverse('ietf.doc.views_charter.change_state',kwargs={'name':charter.name,'option':'abandon'})
@@ -575,6 +613,41 @@ def test_edit_review_announcement_text(self):
575613
self.assertTrue(group.name in charter.latest_event(WriteupDocEvent, type="changed_review_announcement").text)
576614
self.assertTrue(charter.group.name in charter.latest_event(WriteupDocEvent, type="changed_new_work_text").text)
577615

616+
def test_rg_edit_review_announcement_text(self):
617+
irtf = Group.objects.get(acronym='irtf')
618+
charter = CharterFactory(
619+
group__acronym = 'somerg',
620+
group__type_id = 'rg',
621+
group__list_email = 'somerg@ietf.org',
622+
group__parent = irtf,
623+
)
624+
group = charter.group
625+
626+
url = urlreverse('ietf.doc.views_charter.review_announcement_text', kwargs=dict(name=charter.name))
627+
self.client.logout()
628+
login_testing_unauthorized(self, "secretary", url)
629+
630+
by = Person.objects.get(user__username="secretary")
631+
(e1, e2) = default_review_text(group, charter, by)
632+
announcement_text = e1.text
633+
new_work_text = e2.text
634+
635+
empty_outbox()
636+
r = self.client.post(url, dict(
637+
announcement_text=announcement_text,
638+
new_work_text=new_work_text,
639+
send_both="1"))
640+
self.assertEqual(r.status_code, 302)
641+
self.assertEqual(len(outbox), 2)
642+
self.assertTrue(all(['RG Review' in m['Subject'] for m in outbox]))
643+
self.assertTrue('ietf-announce@' in outbox[0]['To'])
644+
self.assertTrue('somerg@' in outbox[0]['Cc'])
645+
self.assertTrue('new-work@' in outbox[1]['To'])
646+
self.assertIsNotNone(outbox[0]['Reply-To'])
647+
self.assertIsNotNone(outbox[1]['Reply-To'])
648+
self.assertTrue('irsg@irtf.org' in outbox[0]['Reply-To'])
649+
self.assertTrue('irsg@irtf.org' in outbox[1]['Reply-To'])
650+
578651
def test_edit_action_announcement_text(self):
579652
area = GroupFactory(type_id='area')
580653
RoleFactory(name_id='ad',group=area,person=Person.objects.get(user__username='ad'))

ietf/name/fixtures/names.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,7 +1309,7 @@
13091309
{
13101310
"fields": {
13111311
"desc": "This is the state when you'd like to propose the charter / new charter. This state also allows you to ask whether external review can be skipped in ballot. After you select this state, the Secretariat takes over and drives the rest of the process.",
1312-
"name": "Start Chartering/Rechartering (Internal IESG/IAB Review)",
1312+
"name": "Start Chartering/Rechartering (Internal Steering Group/IAB Review)",
13131313
"next_states": [],
13141314
"order": 0,
13151315
"slug": "intrev",
@@ -3281,8 +3281,8 @@
32813281
"cc": [],
32823282
"desc": "Recipients for message noting that internal review has started on a charter",
32833283
"to": [
3284-
"iab",
3285-
"iesg"
3284+
"group_steering_group",
3285+
"iab"
32863286
]
32873287
},
32883288
"model": "mailtrigger.mailtrigger",
@@ -14226,7 +14226,7 @@
1422614226
"fields": {
1422714227
"command": "xym",
1422814228
"switch": "--version",
14229-
"time": "2020-01-09T00:13:22.771",
14229+
"time": "2020-01-16T00:12:27.984",
1423014230
"used": true,
1423114231
"version": "xym 0.4"
1423214232
},
@@ -14237,9 +14237,9 @@
1423714237
"fields": {
1423814238
"command": "pyang",
1423914239
"switch": "--version",
14240-
"time": "2020-01-09T00:13:23.631",
14240+
"time": "2020-01-16T00:12:29.007",
1424114241
"used": true,
14242-
"version": "pyang 2.1"
14242+
"version": "pyang 2.1.1"
1424314243
},
1424414244
"model": "utils.versioninfo",
1424514245
"pk": 2
@@ -14248,7 +14248,7 @@
1424814248
"fields": {
1424914249
"command": "yanglint",
1425014250
"switch": "--version",
14251-
"time": "2020-01-09T00:13:23.912",
14251+
"time": "2020-01-16T00:12:29.206",
1425214252
"used": true,
1425314253
"version": "yanglint 0.14.80"
1425414254
},
@@ -14259,9 +14259,9 @@
1425914259
"fields": {
1426014260
"command": "xml2rfc",
1426114261
"switch": "--version",
14262-
"time": "2020-01-09T00:13:24.917",
14262+
"time": "2020-01-16T00:12:30.657",
1426314263
"used": true,
14264-
"version": "xml2rfc 2.37.2"
14264+
"version": "xml2rfc 2.37.3"
1426514265
},
1426614266
"model": "utils.versioninfo",
1426714267
"pk": 4

ietf/templates/doc/charter/review_text.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{% load ietf_filters %}{% autoescape off %}From: The IESG <iesg-secretary@ietf.org>
22
To: {{ to }}{% if cc %}
33
Cc: {{ cc }} {% endif %}
4-
Reply-To: iesg@ietf.org
4+
Reply-To: {% if group.type_id == "rg" %}irsg@irtf.org{% else %}iesg@ietf.org{% endif %}
55
Subject: {{ group.type.name }} Review: {{ group.name }} ({{ group.acronym }})
66

77
{% filter wordwrap:78 %}{% if review_type == "new" %}A new {% if group.type_id == "rg" %}IRTF{% else %}IETF{% endif %} {{ group.type.name }} has been proposed in the {{ group.parent.name }}.{% elif review_type == "recharter" %}The {{ group.name }} ({{group.acronym}}) {{ group.type.name }} in the {{ group.parent.name }} of the {% if group.type_id == "rg" %}IRTF{% else %}IETF{% endif %} is undergoing rechartering.{% endif %} The {% if group.type_id == "rg" %}IRSG{% else %}IESG{% endif %} has not made any determination yet. The following draft charter was submitted, and is provided for informational purposes only. Please send your comments to the {% if group.type_id == "rg" %}IRSG{% else %}IESG{% endif %} mailing list ({% if group.type_id == "rg" %}irsg@irtf.org{% else %}iesg@ietf.org{% endif %}) by {{ review_date }}.

0 commit comments

Comments
 (0)