Changes interim announcements and interim cancellation announcements to use mailtriggers. Adds irtf-announce to announcements for IRTF groups. Fixes #2018. Commit ready for merge.

- Legacy-Id: 12099
This commit is contained in:
Robert Sparks 2016-10-07 15:05:47 +00:00
parent c34356db94
commit 5b32cc2da7
5 changed files with 177 additions and 73 deletions

View file

@ -0,0 +1,47 @@
# -*- 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='group_stream_announce',
desc="The group's stream's announce list",
template="{% if group.type_id == 'wg' %}IETF-Announce <ietf-announce@ietf.org>{% elif group.type_id == 'rg' %}IRTF-Announce <irtf-announce@irtf.org>{% endif %}"
)
annc = MailTrigger.objects.create(
slug='interim_announced',
desc='Recipients when an interim meeting is announced',
)
annc.to = Recipient.objects.filter(slug__in=['ietf_announce','stream_announce'])
annc.cc = Recipient.objects.filter(slug__in=['group_mail_list',])
annc = MailTrigger.objects.create(
slug='interim_cancelled',
desc='Recipients when an interim meeting is cancelled',
)
annc.to = Recipient.objects.filter(slug__in=['ietf_announce','stream_aanounce'])
annc.cc = Recipient.objects.filter(slug__in=['group_chairs','group_mail_list','logged_in_person'])
def reverse(apps, schema_editor):
MailTrigger=apps.get_model('mailtrigger','MailTrigger')
Recipient=apps.get_model('mailtrigger','Recipient')
MailTrigger.objects.filter(slug__in=['interim_announced','interim_cancelled']).delete()
Recipient.objects.filter(slug='group_stream_announce').delete()
class Migration(migrations.Migration):
dependencies = [
('mailtrigger', '0006_auto_20160707_1933'),
]
operations = [
migrations.RunPython(forward,reverse),
]

View file

@ -409,8 +409,7 @@ def get_announcement_initial(meeting, is_change=False):
group = meeting.session_set.first().group
in_person = bool(meeting.city)
initial = {}
initial['to'] = settings.INTERIM_ANNOUNCE_TO_EMAIL
initial['cc'] = group.list_email
(initial['to'],initial['cc']) = gather_address_lists('interim_announced',group=group)
initial['frm'] = settings.INTERIM_ANNOUNCE_FROM_EMAIL
if in_person:
desc = 'Interim'
@ -585,8 +584,7 @@ def send_interim_cancellation_notice(meeting):
"""Sends an email that a scheduled interim meeting has been cancelled."""
session = meeting.session_set.first()
group = session.group
to_email = settings.INTERIM_ANNOUNCE_TO_EMAIL
(_, cc_list) = gather_address_lists('session_request_cancelled',group=group)
(to_email, cc_list) = gather_address_lists('interim_cancelled',group=group)
from_email = settings.INTERIM_ANNOUNCE_FROM_EMAIL
subject = '{group} ({acronym}) {type} Interim Meeting Cancelled (was {date})'.format(
group=group.name,

View file

@ -47,7 +47,7 @@ def make_meeting_test_data(meeting=None):
room = Room.objects.create(meeting=meeting, name="Test Room", capacity=123, functional_name="Testing Ground")
room.session_types.add("session")
room.resources.add(projector)
asname = RoomResourceName.objects.create(name='Audio Stream', slug='audiostream')
asname = RoomResourceName.objects.get(slug='audiostream')
UrlResource.objects.create(name=asname, room=room, url='http://ietf{number}streaming.dnsalias.net/ietf/ietf{number}1.m3u'.format(number=meeting.number))
# another room

View file

@ -197,9 +197,9 @@
{
"fields": {
"order": 0,
"revname": "Normatively Referenced by",
"revname": "is normatively referenced by",
"used": true,
"name": "Normative Reference",
"name": "normatively references",
"desc": "Normative Reference"
},
"model": "name.docrelationshipname",
@ -219,9 +219,9 @@
{
"fields": {
"order": 0,
"revname": "Informatively Referenced by",
"revname": "is informatively referenced by",
"used": true,
"name": "Informative Reference",
"name": "informatively references",
"desc": "Informative Reference"
},
"model": "name.docrelationshipname",
@ -816,7 +816,7 @@
"posted"
],
"used": true,
"name": "Awaiting Approval from Previous Version Authors'",
"name": "Awaiting Approval from Previous Version Authors",
"desc": ""
},
"model": "name.draftsubmissionstatename",
@ -1060,6 +1060,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Internet Engineering Task Force",
"name": "IETF",
"desc": ""
},
@ -1070,6 +1071,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Area",
"name": "Area",
"desc": ""
},
@ -1080,6 +1082,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Area Group",
"name": "AG",
"desc": "Area group"
},
@ -1090,6 +1093,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Working Group",
"name": "WG",
"desc": "Working group"
},
@ -1100,6 +1104,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Research Group",
"name": "RG",
"desc": "Research group"
},
@ -1110,6 +1115,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Team",
"name": "Team",
"desc": ""
},
@ -1120,6 +1126,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "An Individual",
"name": "Individual",
"desc": ""
},
@ -1130,6 +1137,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Standards Organization",
"name": "SDO",
"desc": "Standards organization"
},
@ -1140,6 +1148,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Internet Research Task Force",
"name": "IRTF",
"desc": ""
},
@ -1150,6 +1159,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "The RFC Editor",
"name": "RFC Editor",
"desc": ""
},
@ -1160,6 +1170,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "IETF/IAB Nominating Committee",
"name": "Nomcom",
"desc": "An IETF/IAB Nominating Committee. Use 'SDO' for external nominating committees."
},
@ -1170,6 +1181,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Internet Architecture Board",
"name": "IAB",
"desc": ""
},
@ -1180,6 +1192,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "The Internet Society",
"name": "ISOC",
"desc": ""
},
@ -1190,6 +1203,7 @@
"fields": {
"order": 0,
"used": true,
"verbose_name": "Area Directorate",
"name": "Directorate",
"desc": "In many areas, the Area Directors have formed an advisory group or directorate. These comprise experienced members of the IETF and the technical community represented by the area. The specific name and the details of the role for each group differ from area to area, but the primary intent is that these groups assist the Area Director(s), e.g., with the review of specifications produced in the area."
},
@ -1980,7 +1994,7 @@
"fields": {
"order": 0,
"used": true,
"name": "Meetecho Remote Partition Support",
"name": "Meetecho Support",
"desc": "The room will have a meetecho wrangler"
},
"model": "name.roomresourcename",
@ -1996,6 +2010,16 @@
"model": "name.roomresourcename",
"pk": "boardroom"
},
{
"fields": {
"order": 0,
"used": true,
"name": "Audio Stream",
"desc": "Audio streaming support"
},
"model": "name.roomresourcename",
"pk": "audiostream"
},
{
"fields": {
"order": 0,
@ -2036,16 +2060,6 @@
"model": "name.sessionstatusname",
"pk": "sched"
},
{
"fields": {
"order": 0,
"used": true,
"name": "Scheduled - Announcement to be sent",
"desc": ""
},
"model": "name.sessionstatusname",
"pk": "scheda"
},
{
"fields": {
"order": 0,
@ -2056,16 +2070,6 @@
"model": "name.sessionstatusname",
"pk": "canceled"
},
{
"fields": {
"order": 0,
"used": true,
"name": "Cancelled - Pre Announcement",
"desc": ""
},
"model": "name.sessionstatusname",
"pk": "canceledpa"
},
{
"fields": {
"order": 0,
@ -2096,6 +2100,26 @@
"model": "name.sessionstatusname",
"pk": "deleted"
},
{
"fields": {
"order": 0,
"used": true,
"name": "Scheduled - Announcement to be sent",
"desc": ""
},
"model": "name.sessionstatusname",
"pk": "scheda"
},
{
"fields": {
"order": 0,
"used": true,
"name": "Cancelled - Pre Announcement",
"desc": ""
},
"model": "name.sessionstatusname",
"pk": "canceledpa"
},
{
"fields": {
"order": 0,
@ -4693,14 +4717,6 @@
"model": "mailtrigger.recipient",
"pk": "group_chairs"
},
{
"fields": {
"template": null,
"desc": "The group's secretaries"
},
"model": "mailtrigger.recipient",
"pk": "group_secretaries"
},
{
"fields": {
"template": "{{ changed_personnel | join:\", \" }}",
@ -4725,6 +4741,14 @@
"model": "mailtrigger.recipient",
"pk": "group_responsible_directors"
},
{
"fields": {
"template": null,
"desc": "The group's secretaries"
},
"model": "mailtrigger.recipient",
"pk": "group_secretaries"
},
{
"fields": {
"template": null,
@ -4733,6 +4757,14 @@
"model": "mailtrigger.recipient",
"pk": "group_steering_group"
},
{
"fields": {
"template": "{% if group.stream_id == 'ietf' %}IETF-Announce <ietf-announce@ietf.org>{% elif group.stream_id == 'irtf' %}IRTF-Announce <irtf-announce@irtf.org>{% endif %}",
"desc": "The group's stream's announce list"
},
"model": "mailtrigger.recipient",
"pk": "group_stream_announce"
},
{
"fields": {
"template": "The IAB <iab@iab.org>",
@ -4917,14 +4949,6 @@
"model": "mailtrigger.recipient",
"pk": "logged_in_person"
},
{
"fields": {
"template": "<ietf-manualpost@ietf.org>",
"desc": "IETF manual post handling"
},
"model": "mailtrigger.recipient",
"pk": "submission_manualpost_handling"
},
{
"fields": {
"template": "<new-work@ietf.org>",
@ -5029,6 +5053,14 @@
"model": "mailtrigger.recipient",
"pk": "submission_group_mail_list"
},
{
"fields": {
"template": "<ietf-manualpost@ietf.org>",
"desc": "IETF manual post handling"
},
"model": "mailtrigger.recipient",
"pk": "submission_manualpost_handling"
},
{
"fields": {
"template": "{{submission.submitter}}",
@ -5528,6 +5560,45 @@
"model": "mailtrigger.mailtrigger",
"pk": "group_personnel_change"
},
{
"fields": {
"cc": [
"group_mail_list"
],
"to": [
"ietf_announce"
],
"desc": "Recipients when an interim meeting is announced"
},
"model": "mailtrigger.mailtrigger",
"pk": "interim_announced"
},
{
"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"
},
{
"fields": {
"cc": [
"group_chairs",
"group_mail_list",
"logged_in_person"
],
"to": [
"ietf_announce"
],
"desc": "Recipients when an interim meeting is cancelled"
},
"model": "mailtrigger.mailtrigger",
"pk": "interim_cancelled"
},
{
"fields": {
"cc": [],
@ -5854,6 +5925,20 @@
"model": "mailtrigger.mailtrigger",
"pk": "resurrection_requested"
},
{
"fields": {
"cc": [
"group_responsible_directors"
],
"to": [
"group_chairs",
"group_secretaries"
],
"desc": "Recipients when a group is sent a reminder to submit minutes for a session"
},
"model": "mailtrigger.mailtrigger",
"pk": "session_minutes_reminder"
},
{
"fields": {
"cc": [
@ -5932,20 +6017,6 @@
"model": "mailtrigger.mailtrigger",
"pk": "session_scheduled"
},
{
"fields": {
"cc": [
"group_responsible_directors"
],
"to": [
"group_chairs",
"group_secretaries"
],
"desc": "Recipients when a group is sent a reminder to submit minutes for a session"
},
"model": "mailtrigger.mailtrigger",
"pk": "session_minutes_reminder"
},
{
"fields": {
"cc": [
@ -6033,16 +6104,5 @@
},
"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"
}
]

View file

@ -515,7 +515,6 @@ IDSUBMIT_ANNOUNCE_LIST_EMAIL = 'i-d-announce@ietf.org'
# Interim Meeting Tool settings
INTERIM_ANNOUNCE_FROM_EMAIL = 'IESG Secretary <iesg-secretary@ietf.org>'
INTERIM_ANNOUNCE_TO_EMAIL = 'IETF Announcement List <ietf-announce@ietf.org>'
# Days from meeting to day of cut off dates on submit -- cutoff_time_utc is added to this
IDSUBMIT_DEFAULT_CUTOFF_DAY_OFFSET_00 = 13