2121from ietf .ietfauth .utils import has_role
2222from ietf .person .fields import AutocompletedEmailsField
2323from ietf .person .models import Person , Email
24- from ietf .group .mails import email_iesg_secretary_re_charter
24+ from ietf .group .mails import email_iesg_secretary_re_charter , email_iesg_secretary_personnel_change
2525
2626MAX_GROUP_DELEGATES = 3
2727
@@ -244,6 +244,7 @@ def diff(attr, name):
244244 diff ('list_subscribe' , "Mailing list subscribe address" )
245245 diff ('list_archive' , "Mailing list archive" )
246246
247+ personnel_change_text = ""
247248 # update roles
248249 for attr , slug , title in [('chairs' , 'chair' , "Chairs" ), ('secretaries' , 'secr' , "Secretaries" ), ('techadv' , 'techadv' , "Tech Advisors" ), ('delegates' , 'delegate' , "Delegates" )]:
249250 new = clean [attr ]
@@ -255,6 +256,18 @@ def diff(attr, name):
255256 group .role_set .filter (name = slug ).delete ()
256257 for e in new :
257258 Role .objects .get_or_create (name_id = slug , email = e , group = group , person = e .person )
259+ added = set (new ) - set (old )
260+ deleted = set (old ) - set (new )
261+ if added :
262+ change_text = title + ' added: ' + ", " .join (x .formatted_email () for x in added )
263+ personnel_change_text += change_text + "\n "
264+ if deleted :
265+ change_text = title + ' deleted: ' + ", " .join (x .formatted_email () for x in deleted )
266+ personnel_change_text += change_text + "\n "
267+
268+ if personnel_change_text != "" :
269+ print personnel_change_text
270+ email_iesg_secretary_personnel_change (request , group , personnel_change_text )
258271
259272 # update urls
260273 new_urls = clean ['urls' ]
0 commit comments