From 7feee30d46fba5fea9c93f24fe843ee4e25d0b25 Mon Sep 17 00:00:00 2001 From: Suresh Krishnan Date: Sat, 18 Jul 2015 16:52:50 +0000 Subject: [PATCH] Informing ADs, chairs and delegates of WG personnel changes. Fixes #1310. Commit ready for merge - Legacy-Id: 9812 --- ietf/group/edit.py | 3 ++- ietf/group/mails.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/ietf/group/edit.py b/ietf/group/edit.py index 2a749a0c5..909fcd3dc 100644 --- a/ietf/group/edit.py +++ b/ietf/group/edit.py @@ -21,7 +21,7 @@ from ietf.group.utils import get_group_or_404 from ietf.ietfauth.utils import has_role from ietf.person.fields import SearchableEmailsField from ietf.person.models import Person, Email -from ietf.group.mails import email_iesg_secretary_re_charter, email_iesg_secretary_personnel_change +from ietf.group.mails import email_iesg_secretary_re_charter, email_iesg_secretary_personnel_change, email_delegates_changed from ietf.utils.ordereddict import insert_after_in_ordered_dict MAX_GROUP_DELEGATES = 3 @@ -275,6 +275,7 @@ def edit(request, group_type=None, acronym=None, action="edit"): if deleted: change_text=title + ' deleted: ' + ", ".join(x.formatted_email() for x in deleted) personnel_change_text+=change_text+"\n" + email_delegates_changed(request, group, title, added, deleted) if personnel_change_text!="": email_iesg_secretary_personnel_change(request, group, personnel_change_text) diff --git a/ietf/group/mails.py b/ietf/group/mails.py index 91743e457..191b4557c 100644 --- a/ietf/group/mails.py +++ b/ietf/group/mails.py @@ -32,6 +32,38 @@ def email_iesg_secretary_personnel_change(request, group, text): full_subject = u"Personnel change for %s working group" % (group.acronym) send_mail_text(request, to, None, full_subject,text) +def email_delegates_changed(request, group, title, added, deleted): + + # Send to management and chairs + to = [] + if group.ad_role(): + to.append(group.ad_role().email.formatted_email()) + elif group.type_id == "rg": + to.append("IRTF Chair ") + + for r in group.role_set.filter(name="chair"): + to.append(r.formatted_email()) + + # Send to the delegates who were added or deleted + for delegate in added: + to.append(delegate.formatted_email()) + + for delegate in deleted: + to.append(delegate.formatted_email()) + + personnel_change_text="" + if added: + change_text=title + ' added: ' + ", ".join(x.formatted_email() for x in added) + personnel_change_text+=change_text+"\n" + if deleted: + change_text=title + ' deleted: ' + ", ".join(x.formatted_email() for x in deleted) + personnel_change_text+=change_text+"\n" + + if to: + full_subject = u"%s changed for %s working group" % (title, group.acronym) + send_mail_text(request, to, None, full_subject,personnel_change_text) + + def email_milestones_changed(request, group, changes): def wrap_up_email(to, text):