diff --git a/ietf/mailtrigger/migrations/0007_add_interim_announce.py b/ietf/mailtrigger/migrations/0007_add_interim_announce.py new file mode 100644 index 000000000..d4c12b116 --- /dev/null +++ b/ietf/mailtrigger/migrations/0007_add_interim_announce.py @@ -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 {% elif group.type_id == 'rg' %}IRTF-Announce {% 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), + ] diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py index cb21b40b2..cb3d068c4 100644 --- a/ietf/meeting/helpers.py +++ b/ietf/meeting/helpers.py @@ -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, diff --git a/ietf/meeting/test_data.py b/ietf/meeting/test_data.py index e11d880db..538ea10b4 100644 --- a/ietf/meeting/test_data.py +++ b/ietf/meeting/test_data.py @@ -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 diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index fc5cfe190..e46819637 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -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 {% elif group.stream_id == 'irtf' %}IRTF-Announce {% endif %}", + "desc": "The group's stream's announce list" + }, + "model": "mailtrigger.recipient", + "pk": "group_stream_announce" +}, { "fields": { "template": "The IAB ", @@ -4917,14 +4949,6 @@ "model": "mailtrigger.recipient", "pk": "logged_in_person" }, -{ - "fields": { - "template": "", - "desc": "IETF manual post handling" - }, - "model": "mailtrigger.recipient", - "pk": "submission_manualpost_handling" -}, { "fields": { "template": "", @@ -5029,6 +5053,14 @@ "model": "mailtrigger.recipient", "pk": "submission_group_mail_list" }, +{ + "fields": { + "template": "", + "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" } ] diff --git a/ietf/settings.py b/ietf/settings.py index 54a7ec1f6..c3890936f 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -515,7 +515,6 @@ IDSUBMIT_ANNOUNCE_LIST_EMAIL = 'i-d-announce@ietf.org' # Interim Meeting Tool settings INTERIM_ANNOUNCE_FROM_EMAIL = 'IESG Secretary ' -INTERIM_ANNOUNCE_TO_EMAIL = 'IETF Announcement List ' # 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