From 6388f6de23e0015542d49e942fbda7ce0e818720 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz <henrik@levkowetz.com> Date: Sun, 18 Oct 2015 13:19:54 +0000 Subject: [PATCH] Merged in [10219] from rjsparks@nostrum.com: Recognize and remove duplicate addresses while gathering. Fixes bug #1815. - Legacy-Id: 10232 Note: SVN reference [10219] has been migrated to Git commit 13d81dc50974e64ff82ce768aace4c7c21e7f1f3 --- ietf/mailtrigger/models.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ietf/mailtrigger/models.py b/ietf/mailtrigger/models.py index 6a6b1d17e..ac4ecc36c 100644 --- a/ietf/mailtrigger/models.py +++ b/ietf/mailtrigger/models.py @@ -3,8 +3,22 @@ from django.db import models from django.template import Template, Context +from email.utils import parseaddr + from ietf.group.models import Role +def clean_duplicates(addrlist): + retval = set() + for a in addrlist: + (name,addr) = parseaddr(a) + if (name,addr)==('',''): + retval.add(a) + elif name: + retval.add('"%s" <%s>'%(name,addr)) + else: + retval.add(addr) + return list(retval) + class MailTrigger(models.Model): slug = models.CharField(max_length=32, primary_key=True) desc = models.TextField(blank=True) @@ -37,8 +51,7 @@ class Recipient(models.Model): if rendering: retval.extend([x.strip() for x in rendering.split(',')]) - retval = list(set(retval)) - return retval + return clean_duplicates(retval) def gather_doc_group_chairs(self, **kwargs): addrs = []