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:
parent
6067dcbfef
commit
d525ade0b0
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue