Merged in [16287] from rjsparks@nostrum.com:

Send mail to a list when a new IETF WG -00 is submitted. Fixes #2730.
 - Legacy-Id: 16289
Note: SVN reference [16287] has been migrated to Git commit 9ace7db719
This commit is contained in:
Henrik Levkowetz 2019-06-19 14:32:25 +00:00
commit 13705976e2
5 changed files with 11067 additions and 13405 deletions

View file

@ -0,0 +1,39 @@
# Copyright The IETF Trust 2019, All Rights Reserved
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
def forward(apps, schema_editor):
MailTrigger = apps.get_model('mailtrigger', 'MailTrigger')
Recipient = apps.get_model('mailtrigger', 'Recipient')
Recipient.objects.create(
slug = 'new_wg_doc_list',
desc = "The email list for announcing new WG -00 submissions",
template = '<new-wg-docs@ietf.org>'
)
changed = MailTrigger.objects.create(
slug = 'sub_new_wg_00',
desc = 'Recipients when a new IETF WG -00 draft is announced',
)
changed.to.set(Recipient.objects.filter(slug__in=['new_wg_doc_list']))
def reverse(apps, schema_editor):
MailTrigger = apps.get_model('mailtrigger','MailTrigger')
Recipient = apps.get_model('mailtrigger', 'Recipient')
MailTrigger.objects.filter(slug='sub_new_wg_00').delete()
Recipient.objects.filter(slug='new_wg_doc_list').delete()
class Migration(migrations.Migration):
dependencies = [
('mailtrigger', '0005_slides_proposed'),
]
operations = [
migrations.RunPython(forward,reverse)
]

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,5 @@
# Copyright The IETF Trust 2013-2019, All Rights Reserved
import re
import email
import datetime
@ -116,6 +118,28 @@ def announce_to_lists(request, submission):
send_mail_message(request, m)
def announce_new_wg_00(request, submission):
m = Message()
m.by = Person.objects.get(name="(System)")
if request.user.is_authenticated:
try:
m.by = request.user.person
except Person.DoesNotExist:
pass
m.subject = 'I-D Action: %s-%s.txt' % (submission.name, submission.rev)
m.frm = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
(m.to, m.cc) = gather_address_lists('sub_new_wg_00',submission=submission)
if m.cc:
m.reply_to = m.cc
m.body = render_to_string('submit/announce_to_lists.txt',
dict(submission=submission,
settings=settings))
m.save()
m.related_docs.add(Document.objects.get(name=submission.name))
send_mail_message(request, m)
def announce_new_version(request, submission, draft, state_change_msg):
(to_email,cc) = gather_address_lists('sub_new_version',doc=draft,submission=submission)

View file

@ -288,7 +288,9 @@ class SubmitTests(TestCase):
self.assertTrue(draft.relations_that_doc("replaces").first().target, replaced_alias)
self.assertEqual(draft.relations_that_doc("possibly-replaces").count(), 1)
self.assertTrue(draft.relations_that_doc("possibly-replaces").first().target, sug_replaced_alias)
self.assertEqual(len(outbox), mailbox_before + 4)
self.assertEqual(len(outbox), mailbox_before + 5)
self.assertIn((u"I-D Action: %s" % name), outbox[-4]["Subject"])
self.assertIn(author.ascii, unicode(outbox[-4]))
self.assertIn((u"I-D Action: %s" % name), outbox[-3]["Subject"])
self.assertIn(author.ascii, unicode(outbox[-3]))
self.assertIn("New Version Notification",outbox[-2]["Subject"])

View file

@ -26,7 +26,7 @@ from ietf.name.models import StreamName, FormalLanguageName
from ietf.person.models import Person, Email
from ietf.community.utils import update_name_contains_indexes_with_new_doc
from ietf.submit.mail import ( announce_to_lists, announce_new_version, announce_to_authors,
send_approval_request_to_group, send_submission_confirmation )
send_approval_request_to_group, send_submission_confirmation, announce_new_wg_00 )
from ietf.submit.models import Submission, SubmissionEvent, Preapproval, DraftSubmissionStateName, SubmissionCheck
from ietf.utils import log
from ietf.utils.accesstoken import generate_random_key
@ -364,6 +364,8 @@ def post_submission(request, submission, approvedDesc):
update_name_contains_indexes_with_new_doc(draft)
announce_to_lists(request, submission)
if submission.group and submission.group.type_id == 'wg' and draft.rev == '00':
announce_new_wg_00(request, submission)
announce_new_version(request, submission, draft, state_change_msg)
announce_to_authors(request, submission)