diff --git a/ietf/mailtrigger/migrations/0011_ietf_last_call.py b/ietf/mailtrigger/migrations/0011_ietf_last_call.py new file mode 100644 index 000000000..15e29ac09 --- /dev/null +++ b/ietf/mailtrigger/migrations/0011_ietf_last_call.py @@ -0,0 +1,49 @@ +# Copyright The IETF Trust 2019, All Rights Reserved +# -*- coding: utf-8 -*- +# Generated by Django 1.11.25 on 2019-10-04 12:12 +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') + + ietf_last_call = Recipient.objects.create( + slug = 'ietf_last_call', + desc = 'The IETF Last Call list', + template = 'last-call@ietf.org' + ) + ietf_general = Recipient.objects.get(slug='ietf_general') + + review_completed_triggers = MailTrigger.objects.filter(slug__startswith='review_completed') + + for trigger in review_completed_triggers: + trigger.cc.remove(ietf_general) + trigger.cc.add(ietf_last_call) + +def reverse(apps, schema_editor): + MailTrigger = apps.get_model('mailtrigger','MailTrigger') + Recipient = apps.get_model('mailtrigger','Recipient') + + ietf_general = Recipient.objects.get(slug='ietf_general') + ietf_last_call = Recipient.objects.get(slug='ietf_last_call') + + review_completed_triggers = MailTrigger.objects.filter(slug__startswith='review_completed') + + for trigger in review_completed_triggers: + trigger.cc.remove(ietf_last_call) + trigger.cc.add(ietf_general) + + ietf_last_call.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('mailtrigger', '0010_add_review_reminder_mailtriggers'), + ] + + operations = [ + migrations.RunPython(forward, reverse), + ] diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index 4bed711ec..29ac5f204 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -3985,8 +3985,8 @@ "cc": [], "desc": "Recipients for a change to a reviewer's availability", "to": [ - "review_reviewer", - "group_secretaries" + "group_secretaries", + "review_reviewer" ] }, "model": "mailtrigger.mailtrigger", @@ -3995,7 +3995,7 @@ { "fields": { "cc": [ - "ietf_general", + "ietf_last_call", "review_doc_all_parties", "review_doc_group_mail_list" ], @@ -4007,6 +4007,456 @@ "model": "mailtrigger.mailtrigger", "pk": "review_completed" }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a artart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_artart_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a artart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_artart_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a artart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_artart_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a genart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_genart_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a genart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_genart_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a genart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_genart_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a i18ndir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_i18ndir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a i18ndir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_i18ndir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a i18ndir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_i18ndir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a intdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_intdir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a intdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_intdir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a intdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_intdir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a iotdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_iotdir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a iotdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_iotdir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a iotdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_iotdir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a opsdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_opsdir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a opsdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_opsdir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a opsdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_opsdir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a rtgdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_rtgdir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a rtgdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_rtgdir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a rtgdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_rtgdir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a secdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_secdir_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a secdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_secdir_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a secdir ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_secdir_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a tsvart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_tsvart_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a tsvart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_tsvart_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a tsvart ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_tsvart_telechat" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_yangdoctors_early" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_yangdoctors_lc" + }, + { + "fields": { + "cc": [ + "ietf_last_call", + "review_doc_all_parties", + "review_doc_group_mail_list" + ], + "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed", + "to": [ + "review_team_mail_list" + ] + }, + "model": "mailtrigger.mailtrigger", + "pk": "review_completed_yangdoctors_telechat" + }, { "fields": { "cc": [], @@ -4535,6 +4985,14 @@ "model": "mailtrigger.recipient", "pk": "ietf_general" }, + { + "fields": { + "desc": "The IETF Last Call list", + "template": "last-call@ietf.org" + }, + "model": "mailtrigger.recipient", + "pk": "ietf_last_call" + }, { "fields": { "desc": "The Secretariat", @@ -13632,7 +14090,7 @@ "fields": { "command": "xym", "switch": "--version", - "time": "2019-08-28T00:12:18.148", + "time": "2019-10-09T00:11:52.857", "used": true, "version": "xym 0.4" }, @@ -13643,9 +14101,9 @@ "fields": { "command": "pyang", "switch": "--version", - "time": "2019-08-28T00:12:19.512", + "time": "2019-10-09T00:11:54.264", "used": true, - "version": "pyang 1.7.8" + "version": "pyang 2.0.2" }, "model": "utils.versioninfo", "pk": 2 @@ -13654,7 +14112,7 @@ "fields": { "command": "yanglint", "switch": "--version", - "time": "2019-08-28T00:12:19.751", + "time": "2019-10-09T00:11:54.535", "used": true, "version": "yanglint 0.14.80" }, @@ -13665,9 +14123,9 @@ "fields": { "command": "xml2rfc", "switch": "--version", - "time": "2019-08-28T00:12:20.931", + "time": "2019-10-09T00:11:55.470", "used": true, - "version": "xml2rfc 2.23.1" + "version": "xml2rfc 2.32.0" }, "model": "utils.versioninfo", "pk": 4 diff --git a/ietf/templates/doc/mail/last_call_announcement.txt b/ietf/templates/doc/mail/last_call_announcement.txt index 96a100520..ee20168d6 100644 --- a/ietf/templates/doc/mail/last_call_announcement.txt +++ b/ietf/templates/doc/mail/last_call_announcement.txt @@ -1,7 +1,7 @@ {% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: The IESG To: {{ to }}{% if cc %} CC: {{ cc }}{% endif %} -Reply-To: ietf@ietf.org +Reply-To: last-call@ietf.org Sender: Subject: Last Call: {{ doc.file_tag }} ({{ doc.title|clean_whitespace }}) to {{ doc|std_level_prompt }} @@ -10,7 +10,7 @@ The IESG has received a request from {{ group }} to consider the following docum - '{{ d.filled_title }}' {{ d.file_tag }} as {{ d|std_level_prompt }}{% endfor %} -The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the ietf@ietf.org mailing lists by {{ expiration_date }}. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting.{% endfilter %} +The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the last-call@ietf.org mailing lists by {{ expiration_date }}. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting.{% endfilter %} Abstract{{ docs|pluralize }} diff --git a/ietf/templates/doc/status_change/last_call_announcement.txt b/ietf/templates/doc/status_change/last_call_announcement.txt index 08d3d9f88..799ebc45b 100644 --- a/ietf/templates/doc/status_change/last_call_announcement.txt +++ b/ietf/templates/doc/status_change/last_call_announcement.txt @@ -1,7 +1,7 @@ {% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: The IESG To: IETF-Announce {% if cc %} CC: {{ cc }}{% endif %} -Reply-To: ietf@ietf.org +Reply-To: last-call@ietf.org Sender: Subject: Last Call: {{ doc.title|clean_whitespace }} @@ -14,7 +14,7 @@ The supporting document for this request can be found here: {{ settings.IDTRACKER_BASE_URL }}{{ doc.get_absolute_url }} -The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the ietf@ietf.org mailing lists by {{ expiration_date }}. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting.{% endfilter %} +The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the last-call@ietf.org mailing lists by {{ expiration_date }}. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting.{% endfilter %} The affected document{{ urls|pluralize }} can be obtained via {% for u in urls %}{{ settings.IDTRACKER_BASE_URL}}{{ u }}