Skip to content

Commit d525ade

Browse files
committed
Use review team secretary alias if there is one for email about review request changes. Add test for review team secretary alias. Commit ready for merge.
- Legacy-Id: 15730
1 parent 6067dcb commit d525ade

3 files changed

Lines changed: 41 additions & 6 deletions

File tree

ietf/doc/tests_review.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from mock import patch
88
from requests import Response
99

10-
10+
from django.apps import apps
1111
from django.urls import reverse as urlreverse
1212
from django.conf import settings
1313

@@ -98,6 +98,27 @@ def test_request_review(self):
9898
self.assertTrue('reviewteam3 Early' in outbox[1]['Subject'])
9999
self.assertTrue('reviewsecretary3@' in outbox[1]['To'])
100100

101+
# set the reviewteamsetting for the secretary email alias, then do the post again
102+
m = apps.get_model('review', 'ReviewTeamSettings')
103+
for row in m.objects.all():
104+
if row.group.upcase_acronym == review_team3.upcase_acronym:
105+
row.secr_mail_alias = 'reviewsecretary3-alias@example.com'
106+
row.save(update_fields=['secr_mail_alias'])
107+
108+
r = self.client.post(url, {
109+
"type": "early",
110+
"team": [review_team.pk,review_team3.pk],
111+
"deadline": deadline.isoformat(),
112+
"requested_rev": "01",
113+
"requested_by": Person.objects.get(user__username="ad").pk,
114+
"comment": "gZT2iiYqYLKiQHvsgWCcVLdH"
115+
})
116+
self.assertEqual(r.status_code, 302)
117+
118+
self.assertEqual(len(outbox),4)
119+
self.assertTrue('reviewsecretary@' in outbox[2]['To'])
120+
self.assertTrue('reviewsecretary3-alias@' in outbox[3]['To'])
121+
101122
def test_request_review_of_rfc(self):
102123
doc = WgRfcFactory()
103124

ietf/mailtrigger/models.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from email.utils import parseaddr
77
from ietf.utils.mail import formataddr
88
from ietf.person.models import Email
9+
from ietf.review.models import ReviewTeamSettings
910

1011
import debug # pyflakes:ignore
1112

@@ -172,8 +173,13 @@ def gather_group_secretaries(self, **kwargs):
172173
if 'group' in kwargs:
173174
group = kwargs['group']
174175
if not group.acronym=='none':
175-
if group.reviewteamsettings and group.reviewteamsettings.secr_mail_alias:
176-
addrs = [group.reviewteamsettings.secr_mail_alias, ]
176+
rtsqs = ReviewTeamSettings.objects.filter(group=group)
177+
if rtsqs:
178+
rts = rtsqs[0]
179+
else:
180+
rts = None
181+
if rts and rts.secr_mail_alias and len(rts.secr_mail_alias) > 1:
182+
addrs = [rts.secr_mail_alias, ]
177183
else:
178184
addrs.extend(group.role_set.filter(name='secr').values_list('email__address',flat=True))
179185
return addrs

ietf/review/utils.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from ietf.ietfauth.utils import has_role, is_authorized_in_doc_stream
1717
from ietf.review.models import (ReviewRequest, ReviewRequestStateName, ReviewTypeName,
1818
ReviewerSettings, UnavailablePeriod, ReviewWish, NextReviewerInTeam,
19-
ReviewSecretarySettings)
19+
ReviewTeamSettings, ReviewSecretarySettings)
2020
from ietf.utils.mail import send_mail
2121
from ietf.doc.utils import extract_complete_replaces_ancestor_mapping_for_docs
2222

@@ -350,12 +350,20 @@ def extract_email_addresses(objs):
350350
to.add(e)
351351

352352
if notify_secretary:
353-
extract_email_addresses(Role.objects.filter(name="secr", group=review_req.team).distinct())
353+
rtsqs = ReviewTeamSettings.objects.filter(group=review_req.team)
354+
if rtsqs:
355+
rts = rtsqs[0]
356+
else:
357+
rts = None
358+
if rts and rts.secr_mail_alias and len(rts.secr_mail_alias) > 1:
359+
to.add(rts.secr_mail_alias)
360+
else:
361+
extract_email_addresses(Role.objects.filter(name="secr", group=review_req.team).distinct())
354362
if notify_reviewer:
355363
extract_email_addresses([review_req.reviewer])
356364
if notify_requested_by:
357365
extract_email_addresses([review_req.requested_by.email()])
358-
366+
359367
if not to:
360368
return
361369

0 commit comments

Comments
 (0)