Skip to content

Commit 7fb2775

Browse files
committed
Send announcements when posting new version of a draft. Fixes ietf-tools#649
- Legacy-Id: 3085
1 parent fe699f7 commit 7fb2775

5 files changed

Lines changed: 114 additions & 6 deletions

File tree

ietf/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@
191191
# ID Submission Tool settings
192192
IDST_FROM_EMAIL = 'IETF I-D Submission Tool <idsubmission@ietf.org>'
193193
IDST_TO_EMAIL = 'internet-drafts@ietf.org'
194+
IDST_ID_EMAIL = 'Internet-Drafts@ietf.org'
195+
IDST_ID_ANNOUNCE_LIST = 'i-d-announce@ietf.org'
194196

195197
# Days from meeting to cut off dates on submit
196198
FIRST_CUTOFF_DAYS = 5

ietf/submit/utils.py

Lines changed: 70 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from django.contrib.sites.models import Site
77

88
from ietf.idtracker.models import (InternetDraft, PersonOrOrgInfo, IETFWG,
9-
IDAuthor, EmailAddress, IDState)
9+
IDAuthor, EmailAddress, IESGLogin)
1010
from ietf.utils.mail import send_mail
1111
from ietf.idrfc.utils import add_document_comment
1212

@@ -36,32 +36,34 @@ def request_full_url(request, submission):
3636

3737
def perform_post(submission):
3838
group_id = submission.group_acronym and submission.group_acronym.pk or NONE_WG
39+
state_change_msg = ''
3940
try:
4041
draft = InternetDraft.objects.get(filename=submission.filename)
4142
draft.title = submission.id_document_name
4243
draft.group_id = group_id
4344
draft.filename = submission.filename
4445
draft.revision = submission.revision
45-
draft.revision_date = submission.creation_date
46+
draft.revision_date = submission.submission_date
4647
draft.file_type = submission.file_type
4748
draft.txt_page_count = submission.txt_page_count
4849
draft.last_modified_date = datetime.date.today()
4950
draft.abstract = submission.abstract
50-
draft.status_id=1 # Active
51-
draft.expired_tombstone=0
51+
draft.status_id = 1 # Active
52+
draft.expired_tombstone = 0
5253
draft.save()
5354
if draft.idinternal and draft.idinternal.cur_sub_state_id == 5 and draft.idinternal.rfc_flag == 0: # Substate 5 Revised ID Needed
5455
draft.idinternal.prev_sub_state_id = draft.idinternal.cur_sub_state_id
5556
draft.idinternal.cur_sub_state_id = 2 # Substate 2 AD Followup
5657
draft.idinternal.save()
57-
add_document_comment(None, draft, "Sub state has been changed to AD Follow up from New Id Needed")
58+
state_change_msg = "Sub state has been changed to AD Follow up from New Id Needed"
59+
add_document_comment(None, draft, state_change_msg)
5860
except InternetDraft.DoesNotExist:
5961
draft = InternetDraft.objects.create(
6062
title=submission.id_document_name,
6163
group_id=group_id,
6264
filename=submission.filename,
6365
revision=submission.revision,
64-
revision_date=submission.creation_date,
66+
revision_date=submission.submission_date,
6567
file_type=submission.file_type,
6668
txt_page_count=submission.txt_page_count,
6769
start_date=datetime.date.today(),
@@ -71,11 +73,73 @@ def perform_post(submission):
7173
intended_status_id=8, # None
7274
)
7375
update_authors(draft, submission)
76+
add_document_comment(None, draft, "New version available")
7477
move_docs(submission)
7578
submission.status_id = POSTED
79+
send_announcements(submission, draft, state_change_msg)
7680
submission.save()
7781

7882

83+
def send_announcements(submission, draft, state_change_msg):
84+
announce_to_lists(submission)
85+
if draft.idinternal and not draft.idinternal.rfc_flag:
86+
announce_new_version(submission, draft, state_change_msg)
87+
announce_to_authors(submission)
88+
89+
90+
def announce_to_lists(submission):
91+
subject = 'I-D Action: %s-%s.txt' % (submission.filename, submission.revision)
92+
from_email = settings.IDST_ID_EMAIL
93+
to_email = [settings.IDST_ID_ANNOUNCE_LIST]
94+
authors = []
95+
for i in submission.tempidauthors_set.order_by('author_order'):
96+
if not i.author_order:
97+
continue
98+
authors.append(i.get_full_name())
99+
if submission.group_acronym:
100+
cc = [submission.group_acronym.email_address]
101+
else:
102+
cc = None
103+
send_mail(None, to_email, from_email, subject, 'submit/announce_to_lists.txt',
104+
{'submission': submission,
105+
'authors': authors}, cc=cc)
106+
107+
108+
def announce_new_version(submission, draft, state_change_msg):
109+
to_email = []
110+
if draft.idinternal.state_change_notice_to:
111+
to_email.append(draft.idinternal.state_change_notice_to)
112+
if draft.idinternal.job_owner:
113+
to_email.append(draft.idinternal.job_owner.person.email()[1])
114+
if draft.idinternal.ballot:
115+
for p in draft.idinternal.ballot.positions.all():
116+
if p.discuss == 1 and p.ad.user_level == IESGLogin.AD_LEVEL:
117+
to_email.append(p.ad.person.email()[1])
118+
subject = 'New Version Notification - %s-%s.txt' % (submission.filename, submission.revision)
119+
from_email = settings.IDST_ID_EMAIL
120+
send_mail(None, to_email, from_email, subject, 'submit/announce_new_version.txt',
121+
{'submission': submission,
122+
'msg': state_change_msg})
123+
124+
125+
def announce_to_authors(submission):
126+
authors = submission.tempidauthors_set.order_by('author_order')
127+
cc = list(set([i.email()[1] for i in authors]))
128+
to_email = [authors[0].email()[1]] # First TempIdAuthor is submitter
129+
from_email = settings.IDST_ID_EMAIL
130+
subject = 'New Version Notification for %s-%s.txt' % (submission.filename, submission.revision)
131+
if submission.group_acronym:
132+
wg = submission.group_acronym.group_acronym.acronym
133+
elif submission.filename.startswith('draft-iesg'):
134+
wg = 'IESG'
135+
else:
136+
wg = 'Individual Submission'
137+
send_mail(None, to_email, from_email, subject, 'submit/announce_to_authors.txt',
138+
{'submission': submission,
139+
'submitter': authors[0].get_full_name(),
140+
'wg': wg}, cc=cc)
141+
142+
79143
def find_person(first_name, last_name, middle_initial, name_suffix, email):
80144
person_list = None
81145
if email:
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
New version (-{{ submission.revision }}) has been submitted for {{ submission.filename }}-{{ submission.revision }}.txt.
2+
http://www.ietf.org/internet-drafts/{{ submission.filename }}-{{ submission.revision }}.txt
3+
{{ msg }}
4+
5+
Diff from previous version:
6+
http://tools.ietf.org/rfcdiff?url2={{ submission.filename }}-{{ submission.revision }}
7+
8+
IETF Secretariat.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
A new version of I-D, {{ submission.filename }}-{{ submission.revision }}.txt has been successfully submitted by {{ submitter }} and posted to the IETF repository.
2+
3+
Filename: {{ submission.filename }}
4+
Revision: {{ submission.revision }}
5+
Title: {{ submission.id_document_name }}
6+
Creation date: {{ submission.creation_date|date:"Y-m-d" }}
7+
WG ID: {{ wg }}
8+
Number of pages: {{ submission.txt_page_count }}
9+
10+
Abstract:
11+
{{ submission.abstract }}
12+
13+
{{ submission.comment_to_sec|default:"" }}
14+
15+
The IETF Secretariat
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
A New Internet-Draft is available from the on-line Internet-Drafts directories.{% if submission.group_acronym %} This draft is a work item of the {{ submission.group_acronym.group_acronym.name }} Working Group of the IETF.{% endif %}
2+
3+
Title : {{ submission.id_document_name }}
4+
Author(s) : {% for author in authors %}{{ author }}{% if not forloop.last %}
5+
{% endif %}{% endfor %}
6+
Filename : {{ submission.filename }}-{{ submission.revision }}.txt
7+
Pages : {{ submission.txt_page_count }}
8+
Date : {{ submission.submission_date|date:"Y-m-d" }}
9+
10+
{{ submission.abstract }}
11+
12+
A URL for this Internet-Draft is:
13+
http://www.ietf.org/internet-drafts/{{ submission.filename }}-{{ submission.revision }}.txt
14+
15+
Internet-Drafts are also available by anonymous FTP at:
16+
ftp://ftp.ietf.org/internet-drafts/
17+
18+
This Internet-Draft can be retrieved at:
19+
ftp://ftp.ietf.org/internet-drafts/{{ submission.filename }}-{{ submission.revision }}.txt

0 commit comments

Comments
 (0)