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
This commit is contained in:
Russ Housley 2018-11-06 07:26:30 +00:00
parent 6067dcbfef
commit d525ade0b0
3 changed files with 41 additions and 6 deletions

View file

@ -7,7 +7,7 @@ from StringIO import StringIO
from mock import patch
from requests import Response
from django.apps import apps
from django.urls import reverse as urlreverse
from django.conf import settings
@ -98,6 +98,27 @@ class ReviewTests(TestCase):
self.assertTrue('reviewteam3 Early' in outbox[1]['Subject'])
self.assertTrue('reviewsecretary3@' in outbox[1]['To'])
# set the reviewteamsetting for the secretary email alias, then do the post again
m = apps.get_model('review', 'ReviewTeamSettings')
for row in m.objects.all():
if row.group.upcase_acronym == review_team3.upcase_acronym:
row.secr_mail_alias = 'reviewsecretary3-alias@example.com'
row.save(update_fields=['secr_mail_alias'])
r = self.client.post(url, {
"type": "early",
"team": [review_team.pk,review_team3.pk],
"deadline": deadline.isoformat(),
"requested_rev": "01",
"requested_by": Person.objects.get(user__username="ad").pk,
"comment": "gZT2iiYqYLKiQHvsgWCcVLdH"
})
self.assertEqual(r.status_code, 302)
self.assertEqual(len(outbox),4)
self.assertTrue('reviewsecretary@' in outbox[2]['To'])
self.assertTrue('reviewsecretary3-alias@' in outbox[3]['To'])
def test_request_review_of_rfc(self):
doc = WgRfcFactory()

View file

@ -6,6 +6,7 @@ from django.template import Template, Context
from email.utils import parseaddr
from ietf.utils.mail import formataddr
from ietf.person.models import Email
from ietf.review.models import ReviewTeamSettings
import debug # pyflakes:ignore
@ -172,8 +173,13 @@ class Recipient(models.Model):
if 'group' in kwargs:
group = kwargs['group']
if not group.acronym=='none':
if group.reviewteamsettings and group.reviewteamsettings.secr_mail_alias:
addrs = [group.reviewteamsettings.secr_mail_alias, ]
rtsqs = ReviewTeamSettings.objects.filter(group=group)
if rtsqs:
rts = rtsqs[0]
else:
rts = None
if rts and rts.secr_mail_alias and len(rts.secr_mail_alias) > 1:
addrs = [rts.secr_mail_alias, ]
else:
addrs.extend(group.role_set.filter(name='secr').values_list('email__address',flat=True))
return addrs

View file

@ -16,7 +16,7 @@ from ietf.person.models import Person
from ietf.ietfauth.utils import has_role, is_authorized_in_doc_stream
from ietf.review.models import (ReviewRequest, ReviewRequestStateName, ReviewTypeName,
ReviewerSettings, UnavailablePeriod, ReviewWish, NextReviewerInTeam,
ReviewSecretarySettings)
ReviewTeamSettings, ReviewSecretarySettings)
from ietf.utils.mail import send_mail
from ietf.doc.utils import extract_complete_replaces_ancestor_mapping_for_docs
@ -350,12 +350,20 @@ def email_review_request_change(request, review_req, subject, msg, by, notify_se
to.add(e)
if notify_secretary:
extract_email_addresses(Role.objects.filter(name="secr", group=review_req.team).distinct())
rtsqs = ReviewTeamSettings.objects.filter(group=review_req.team)
if rtsqs:
rts = rtsqs[0]
else:
rts = None
if rts and rts.secr_mail_alias and len(rts.secr_mail_alias) > 1:
to.add(rts.secr_mail_alias)
else:
extract_email_addresses(Role.objects.filter(name="secr", group=review_req.team).distinct())
if notify_reviewer:
extract_email_addresses([review_req.reviewer])
if notify_requested_by:
extract_email_addresses([review_req.requested_by.email()])
if not to:
return