diff --git a/ietf/mailtrigger/migrations/0005_interim_trigger.py b/ietf/mailtrigger/migrations/0005_interim_trigger.py new file mode 100644 index 000000000..3ad6a3947 --- /dev/null +++ b/ietf/mailtrigger/migrations/0005_interim_trigger.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +def make_mailtriggers(apps): + Recipient = apps.get_model('mailtrigger','Recipient') + MailTrigger = apps.get_model('mailtrigger','MailTrigger') + + def mt_factory(slug,desc,to_slugs,cc_slugs=[]): + + # Try to protect ourselves from typos + all_slugs = to_slugs[:] + all_slugs.extend(cc_slugs) + for recipient_slug in all_slugs: + try: + Recipient.objects.get(slug=recipient_slug) + except Recipient.DoesNotExist: + print "****Some rule tried to use",recipient_slug + raise + + m, _ = MailTrigger.objects.get_or_create(slug=slug, desc=desc) + m.to = Recipient.objects.filter(slug__in=to_slugs) + m.cc = Recipient.objects.filter(slug__in=cc_slugs) + + mt_factory(slug='interim_approved', + desc="Recipients when an interim meeting is approved " + "and an announcement needs to be sent", + to_slugs=['iesg_secretary'], + cc_slugs=[] + ) + +def forward(apps, schema_editor): + make_mailtriggers(apps) + +def reverse(apps, schema_editor): + MailTrigger=apps.get_model('mailtrigger','MailTrigger') + MailTrigger.objects.filter(slug='interim_approved').delete() + +class Migration(migrations.Migration): + dependencies = [ + ('mailtrigger', '0004_auto_20160516_1659'), + ] + + operations = [migrations.RunPython(forward, reverse)] diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py index e73adcae5..23c604772 100644 --- a/ietf/meeting/helpers.py +++ b/ietf/meeting/helpers.py @@ -567,7 +567,7 @@ def send_interim_announcement_request(meeting): interim meeting which includes the link to send the official announcement""" group = meeting.session_set.first().group requester = meeting.session_set.first().requested_by - (to_email, cc_list) = gather_address_lists('session_requested',group=group,person=requester) + (to_email, cc_list) = gather_address_lists('interim_approved') from_email = ('"IETF Meeting Session Request Tool"','session_request_developers@ietf.org') subject = '{group} - Interim Meeting Approved'.format(group=group.acronym) template = 'meeting/interim_announcement_request.txt' @@ -578,7 +578,8 @@ def send_interim_announcement_request(meeting): from_email, subject, template, - context,) + context, + cc_list) def send_interim_cancellation_notice(meeting): """Sends an email that a scheduled interim meeting has been cancelled.""" diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index 9d601c9bd..bd25057ff 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -6011,5 +6011,16 @@ }, "model": "mailtrigger.mailtrigger", "pk": "sub_new_version" +}, +{ + "fields": { + "cc": [], + "to": [ + "iesg_secretary" + ], + "desc": "Recipients when an interim meeting is approved and an announcement needs to be sent" + }, + "model": "mailtrigger.mailtrigger", + "pk": "interim_approved" } ]