|
 |
|
send_mail search
|
|
|
|
|
|
|
 |
|
./community/forms.py
|
|
|
|
|
|
|
User subscribes to community list
|
Confirm list subscription: %s' % self.clist
|
|
|
|
User unsubscribes from community list
|
'Confirm list subscription cancelation: %s' % self.clist
|
|
|
|
 |
|
./community/models.py
|
|
|
|
|
|
|
|
'%s notification: Changes on %s' % (l.long_name(), self.event.doc.name)
|
|
|
|
 |
|
./doc/expire.py
|
|
|
|
|
|
|
|
u"Expiration impending: %s" % doc.file_tag()
|
Authors, chairs (if wg item)
|
|
|
|
u"I-D was expired %s" % doc.file_tag()
|
|
|
|
 |
|
./doc/mails.py
|
|
|
|
|
|
|
 |
|
email_state_changed
|
|
|
"ID Tracker State Update Notice: %s" % doc.file_tag()
|
|
|
|
 |
|
When ballots are deferred or undeferred
|
|
|
|
|
|
|
 |
|
When a last call request is sent
|
|
|
|
|
|
|
 |
|
When a ballot is approved
|
|
|
|
|
|
|
 |
|
When a last call is issued
|
|
|
|
|
|
|
 |
|
When state is edited directly from the document view
|
|
|
|
|
|
|
 |
|
When the state is edited directly from the secretariat telechat view
|
|
|
|
|
|
|
 |
|
When new IANA state is received
|
|
|
|
|
|
|
 |
|
email_stream_changed
|
|
|
u"Stream changed to <b>%s</b> from %s" % (new_stream, old_stream)
|
doc.notify, old and new stream managers
|
|
|
 |
|
When stream is manually changed
|
|
|
|
|
|
|
 |
|
When a draft is adopted by a group (and the stream changes)
|
|
|
|
|
|
|
 |
|
email_pulled_from_rfc_queue
|
|
Document is pulled form rfc queue
|
"%s changed state from %s to %s" % (doc.name, prev_state.name, next_state.name)
|
|
|
|
 |
|
email_authors
|
|
|
|
|
|
|
 |
|
email_ad
|
|
|
"%s updated by %s" % (doc.file_tag(), changed_by.plain_name())
|
ad.role_email("ad").formatted_email() but only if the ad wasn’t the user responsible for the action
|
A subject is passed in, but is ignored
|
|
 |
|
When last call is requested
|
|
|
|
|
|
|
 |
|
When a ballot is approved
|
|
|
|
|
|
|
 |
|
When last call is issued
|
|
|
|
|
|
|
 |
|
When a comment is added to a draft
|
|
|
|
|
|
|
 |
|
When state is edited directly from the document view
|
|
|
|
|
|
|
 |
|
When the intended status of a document is changed
|
|
|
|
|
|
|
 |
|
When anything is changed when the older edit_info form is used (currently, only when starting IESG processing)
|
|
|
|
|
|
|
 |
|
When document state is manually edited by the secretariat from the telechat view
|
|
|
|
|
|
|
 |
|
When new IANA state is received
|
|
|
|
|
|
|
 |
|
send_last_call_request
|
|
|
"Last Call: %s" % doc.file_tag()
|
iesg-secretary @ ietf.org
|
|
|
 |
|
email_resurrect_requested
|
|
|
"I-D Resurrection Request"
|
internet-drafts @ ietf.org
|
|
|
 |
|
email_resurrection_completed
|
|
|
"I-D Resurrection Completed - %s" % doc.file_tag()
|
the requester’s role email (either secretariat role or ad role)
|
|
|
 |
|
email_ballot_deferred
|
|
|
"IESG Deferred Ballot notification: %s" % doc.file_tag()
|
|
|
|
 |
|
email_ballot_undeferred
|
|
|
"IESG Undeferred Ballot notification: %s" % doc.file_tag()
|
|
|
|
 |
|
email_iana
|
|
|
|
|
To passed in as an argument, subject parsed from passed in message
|
|
 |
|
When conflict review is started
|
|
|
Conflict Review requested for {{reviewed_doc.name}}
|
settings.IANA_EVAL_EMAIL (currently drafts-eval @ icon.org)
|
|
|
 |
|
When conflict review is finished
|
|
|
Evaluation: {{doc.title}}
|
|
|
|
 |
|
email_last_call_expired
|
|
|
"Last Call Expired: %s" % doc.file_tag()
|
doc.notify, iesg @ ietf.org
|
|
|
 |
|
email_stream_state_changed
|
|
|
u"%s changed for %s" % (state_type.label, doc.name)
|
chairs and delegates of group, authors
|
|
|
 |
|
When a document is adopted by a group
|
|
|
|
|
|
|
 |
|
When stream state (such the documents WG state) is manually edited
|
|
|
|
|
|
|
 |
|
email_stream_tags_changed
|
|
when stream state is manually edited
|
u"Tags changed for %s" % doc.name
|
chairs and delegates of group, authors, shepherd
|
|
|
 |
|
./doc/utils.py
|
|
|
|
|
|
|
 |
|
./doc/utils_charter.py
|
|
|
|
|
|
|
 |
|
./doc/views_ballot.py
|
|
|
|
|
|
|
 |
|
send_ballot_comment
|
|
ballot position is updated, save and send email is selected
|
e.g.: Foo Bar’s discuss on doc.name-doc.rev (with comment)
|
iesg @ ietf.org, cc: taken from form. Form initializes the cc to be empty, but offers everything in doc.notify as a checkbox
|
|
|
 |
|
ballot_writeup_notes
|
|
|
Evaluation: {{ doc.file_tag }} to {{ doc|std_level_prompt }}
|
One message to iesg @ ietf.org, separate message (same content, but with automation headers) to settings.IANA_EVAL_EMAIL
|
|
|
 |
|
approve_ballot
|
|
secretariat approves ballot
|
|
|
|
|
 |
|
IETF stream document
|
|
|
{{ action_type }} Action: '{{ doc.title|clean_whitespace }}' to {{ doc|std_level_prompt }} ({{ doc.filename_with_rev }})
|
ietf-announce @ ietf.org, cc: settings.DOC_APPROVAL_EMAIL_CC (currently rfc-editor @ rfc-editor.org). If group, then cc: group chairs (using tools alias) and group mailing list. Then a separate message with same contents are sent and automation heads are sent to settings.IANA_APPROVE_EMAIL
|
|
|
 |
|
Conflict review (old style)
|
|
|
Results of IETF-conflict review for {{ doc.file_tag }}
|
group chair, stream manager, if IRTF stream, then irsg @ irtf.org. cc: iesg @ ietf.org, iana @ iana.org , ietf-announce @ ietf.org.
|
This is NOT USED in modern practice. It’s probably time to weed it from the code.
|
|
 |
|
make last call
|
|
secretariat acts on last call request
|
Last Call: {{ doc.file_tag }} ({{ doc.title|clean_whitespace }}) to {{ doc|std_level_prompt }}
|
ietf-announce @ ietf.org. If group, then cc group list. If doc is of type draft, then send a separate message to drafts-lastcall @ icann.org with automation headers.
|
|
|
 |
|
./doc/views_charter.py
|
|
|
|
|
|
|
 |
|
announcement_text
|
|
secretariat sends review announcement
|
WG Review: {{ group.name }} ({{ group.acronym }})
|
ietf-announce @ ietf.org, cc: group list
|
Secretariat has ability to edit To and CC before sending
|
|
 |
|
ballot_writeup_notes
|
|
ballot writeup is changed
|
Evaluation: {{ doc.name }}
|
|
|
|
 |
|
approve
|
|
secretariat approves charter ballot
|
WG Action: {{ action_type }} {{ group.name }} ({{ group.acronym }})
|
ietf-announce @ ietf.org, cc: group list
|
Secretariat has ability to edit To and CC before sending
|
|
 |
|
./doc/views_conflict_review.py
|
|
|
|
|
|
|
 |
|
send_conflict_review_started_email
|
|
stream manager asks for a conflict review
|
Conflict Review requested for {{reviewed_doc.name}}
|
iesg-secretary @ ietf.org
|
|
|
 |
|
send_conflict_eval_email
|
|
|
Evaluation: {{doc.title}}
|
|
|
|
 |
|
approve
|
|
secretariat approves conflict-review ballot
|
Results of IETF-conflict review for {{conflictdoc.canonical_name}}-{{conflictdoc.rev}}
|
doc.notify (which is initialized to contain the stream manager), cc: iesg @ ietf.org, iana @ iana.org, ietf-announce @ ietf.org
|
This is what is in modern use
|
|
 |
|
./doc/views_draft.py
|
|
|
|
|
|
|
 |
|
replaces
|
|
draft replaces information is changed
|
"%s updated by %s" % (doc.name, login)
|
authors, group chairs (using role address), ads (using tools.ietf.org alias), and shepherd of all affected docs (those replacing and those being replaced).
|
|
|
 |
|
to_iesg
|
|
draft submitted to the iesg
|
"Publication has been requested for %s-%s" % (doc.name,doc.rev)
|
doc.ad.email_address(), cc: group chairs (using tools alias), iesg-secretary @ ietf.org, doc.notify
|
|
|
 |
|
request_publication
|
|
stream manager requests publication
|
"%s: '%s' to %s (%s-%s.txt)" % (action, doc.title, std_level_prompt(doc), doc.name, doc.rev)
|
rfc-editor @ rfc-editor.org, then a separate copy with automation headers to settings.IANA_APPROVE_EMAIL
|
|
|
 |
|
./doc/views_status_change.py
|
|
|
|
|
|
|
 |
|
send_status_change_eval_email
|
|
|
Evaluation: {{doc.title}}
|
|
|
|
 |
|
approve
|
|
secretariat approves ballot
|
{{action}}: {{relateddoc.target.document.title}} to {{newstatus}}
|
ietf-announce @ ietf.org cc: rfc-editor @ rfc-editor.org, doc.notify
|
|
|
 |
|
./group/mails.py
|
|
|
|
|
|
|
 |
|
email_iesg_secretary_re_charter
|
|
|
Regarding %s %s: %s" % (group.type.name, group.acronym, subject), where subject is passed in as an argument
|
iesg-secretary @ ietf.org
|
|
|
charter’s state manually changes
|
subject = “Charter state changed to %s” % charter_state.name
|
|
|
|
|
subject = “Charter title changed to%S” % new_title
|
|
|
|
|
subject = “Charter state changed to %s” % new_charter_state.name
|
|
|
|
 |
|
conclude
|
|
|
subject = “Request closing of group”
|
|
|
|
 |
|
email_iesg_secretary_personnel_change
|
|
group is edited, and personnel differences are detected
|
u"Personnel change for %s working group" % (group.acronym)
|
iesg-secretary @ ietf.org
|
|
|
 |
|
email_milestones_changed
|
|
|
u"Milestones changed for %s %s" % (group.acronym, group.type.name)
|
group ad, group chairs, if rg, then irtf chair. Then a separate message is sent to the group list, eliding any lines that match “Added .* for review, due”
|
|
|
 |
|
email_milestone_review_reminder
|
|
cron runs send-milestone-reminders
|
u"Reminder: Milestone%s needing review in %s %s" % ("s" if len(milestones) > 1 else "", group.acronym, group.type.name)
|
group ad, if rg, then irtf chair. cc: group chairs
|
|
|
 |
|
email_milestones_due
|
|
cron runs send-milestone-reminders
|
u"Reminder: Milestone%s are soon due in %s %s" % ("s" if len(milestones) > 1 else "", group.acronym, group.type.name)
|
|
|
|
 |
|
email_milestones_overdue
|
|
cron runs send-milestone-reminders
|
u"Reminder: Milestone%s overdue in %s %s" % ("s" if len(milestones) > 1 else "", group.acronym, group.type.name)
|
|
|
|
 |
|
./ietfauth/forms.py
|
|
|
|
|
|
|
 |
|
RegistrationForm.send_email
|
|
|
'Confirm registration at %s' % domain
|
|
|
|
 |
|
RecoverPasswordForm.send_email
|
|
|
'Password reset at %s' % domain
|
|
|
|
 |
|
PersonForm.send_email
|
|
|
'Confirm email address for %s' % person.name
|
provided email addresses (note the plural)
|
|
|
 |
|
./ipr/views.py
|
|
|
|
|
|
|
 |
|
email
|
|
secretariat initiates email to a discloser
|
'Regarding {}'.format(ipr.title)
|
|
|
|
 |
|
new
|
|
system receives a new disclosure
|
'New IPR Submission Notification'
|
settings.IPR_EMAIL_TO (currently ietf-ipr @ ietf.org)
|
|
|
 |
|
notify
|
|
|
|
|
|
|
some disclosure is posted that updates this one
|
|
separate copy to the submitters of this disclosure and the submitters of all the disclosures this one updates
|
|
|
|
Posting of IPR {% if ipr.updates %}Updated {% endif %}Disclosure
|
separate copies to the submitter, the authors of all related documents (cc ipr-announce @ ietf.org, the list if a wg doc, else the sponsoring ad else the general area ad) and if a generic disclosure, the general area ad
|
|
|
 |
|
./liaisons/mails.py
|
|
|
|
|
|
|
 |
|
send_liaison_by_email
|
|
a liaison statement is added or approved
|
u'New Liaison Statement, "%s"' % (liaison.title)
|
to and cc are populated from fields provided on the form (defaults are provided based on the target groups. statements @ ietf.org is bcc’ed.
|
|
|
 |
|
notify_pending_by_email
|
|
a statement needing approval is added
|
u'New Liaison Statement, "%s" needs your approval' % (liaison.title)
|
|
known to be broken - the current “to” is a workaround and the secretariat ensures the right people are notified. The liaison project underway will address this.
|
|
 |
|
send_sdo_reminder
|
|
management command is run to poke the SDO liaison managers to update personnel lists
|
'Request for update of list of authorized individuals'
|
Role.objects.filter(name="liaiman", group=sdo).first().email.address
|
|
|
 |
|
possibly_send_deadline_reminder
|
|
management command is run check liaison deadlines
|
'[Liaison deadline %s] %s' % (PREVIOUS_DAYS[days_to_go], liaison.title) or '[Liaison OUT OF DATE] %s' % liaison.title
|
to the liaison to_contact, cc the liaison.cc, technical and response contact, bcc statements @ ietf.org
|
|
|
 |
|
./message/utils.py
|
|
|
|
|
|
|
 |
|
send_scheduled_messages_from_send_queue
|
|
time arrives to send a queued message (what drives the clock on this?)
|
whatever went into the queue
|
whatever went into the queue
|
not clear if this is used? Only secr code seems to put stuff in this queue, and it’s not clear that function is called.
|
|
 |
|
./nomcom/forms.py
|
|
|
|
|
|
|
 |
|
NominateForm.save
|
|
|
|
|
|
|
 |
|
FeedbackForm.save
|
|
|
‘NomCom comment confirmation’
|
|
|
|
 |
|
./nomcom/utils.py
|
|
|
|
|
|
|
 |
|
send_accept_reminder_to_nominee
|
|
|
'Reminder: please accept (or decline) your nomination.'
|
|
|
|
 |
|
send_questionnaire_reminder_to_nominee
|
|
|
'Reminder: please complete the Nomcom questionnaires for your nomination.'
|
|
|
|
 |
|
get_or_create_nominee
|
|
when a nomination arrives
|
|
|
|
|
if a new person is created
|
|
settings.NOMCOM_ADMIN_EMAIL (currently ietf-secretariat-reply @ ietf.org ) and nomcom.group.get_chair().email.address
|
NOMCOM_ADMIN_EMAIL is set to DEFAULT_FROM_EMAIL?
|
|
if a new nomination is created
|
'IETF Nomination Information'
|
|
|
|
if nomcom is configured to send questionnaire automatically
|
'%s Questionnaire' % position
|
|
|
|
if a new nomination is created
|
|
nomcom.group.get_chair().email.address
|
|
|
 |
|
./person/models.py
|
|
|
|
|
|
|
 |
|
Person.save
|
|
if there is another person with this same name
|
Possible duplicate Person objects for {{name}}
|
iesg-secretary @ ietf.org
|
|
|
 |
|
Alias.save
|
|
if there is another alias with this same name
|
Possible duplicate Person objects for {{name}}
|
iesg-secretary @ ietf.org
|
|
|
 |
|
./secr/announcement/views.py
|
|
|
|
|
|
|
 |
|
confirm
|
|
shows a message created elsewhere giving the secretary an opportunity to review (but not edit) it and choose to send or cancel
|
|
|
Only used by the announce tool - values are whatever the secretary puts in the message.
|
|
 |
|
./secr/meetings/views.py
|
|
|
|
|
|
|
 |
|
send_notificaitons
|
|
Secretariat presses button to send notices about scheduled sessions
|
'%s - Requested session has been scheduled for IETF %s' % (group.acronym, meeting.number) (or a similar string for groups that requested multiple sessions)
|
for each scheduled session request: to the requester (using the chair role of the group), cc the group list
|
|
|
 |
|
./secr/sreq/views.py
|
|
|
|
|
|
|
 |
|
send_notification
|
|
when a session request is received (for 1 or two sessions)
|
'%s - New Meeting Session Request for IETF %s' % (group.acronym, meeting.number) or '%s - Update to a Meeting Session Request for IETF %s' % (group.acronym, meeting.number)
|
session-request @ ietf.org, cc the group list
|
|
|
when a session request is received for 3 or more sessions
|
'%s - Request for meeting session approval for IETF %s' % (group.acronym, meeting.number)
|
group’s ad, cc group chairs, session-request @ ietf.org
|
|
|
 |
|
cancel
|
|
|
'%s - Cancelling a meeting request for IETF %s' % (group.acronym, meeting.number)
|
session-request @ ietf.org, cc ads (using tools alias), chairs, logged in user
|
|
|
 |
|
no_session
|
|
|
'%s - Not having a session at IETF %s' % (group.acronym, meeting.number)
|
session-request @ ietf.org, cc ads (using tools alias), chairs, logged in user
|
|
|
 |
|
./submit/mail.py
|
|
|
|
|
|
|
 |
|
send_submission_confirmation
|
|
|
'Confirm submission of I-D %s' % submission.name
|
if previous version exists, then authors of the previous version, else, the submitter and all authors listed on the submission.
|
|
|
 |
|
send_full_url
|
|
|
'Full URL for managing submission of draft %s' % submission.name
|
|
|
|
 |
|
send_approval_request_to_group
|
|
|
'New draft waiting for approval: %s' % submission.name
|
|
|
|
 |
|
send_manual_post_request
|
|
|
u'Manual Post Requested for %s' % submission.name
|
internet-drafts @ ietf.org, cc submitter, authors in submission, group chairs
|
|
|
 |
|
announce_to_lists
|
|
|
'I-D Action: %s-%s.txt' % (submission.name, submission.rev)
|
i-d-announce @ ietf.org, cc group list address
|
|
|
 |
|
announce_new_version
|
|
|
'New Version Notification - %s-%s.txt' % (submission.name, submission.rev)
|
doc.notify, ad, stream manager if not ietf stream, rfc-editor if doc is in state ‘ann’ or ‘rfcqueue’, any ads with an active discuss
|
|
|
 |
|
announce_to_authors
|
|
|
'New Version Notification for %s-%s.txt' % (submission.name, submission.rev)
|
all authors listed in submission, and if previous version of draft exists all authors from previous version.
|
|
|
 |
|
./sync/mails.py
|
|
|
"Datatracker Sync Discrepancies Report"
|
iesg-secretary @ ietf.org
|
Nothing seems to be calling this?
|
|
 |
|
./sync/rfceditor.py
|
|
in update_drafts_from_queue
|
'%s in RFC Editor queue' % d.name,
|
iesg-secretary @ ietf.org
|
|
|