From 13d81dc50974e64ff82ce768aace4c7c21e7f1f3 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Fri, 16 Oct 2015 16:43:10 +0000 Subject: [PATCH] Recognize and remove duplicate addresses while gathering. Fixes bug #1815. Commit ready for merge. - Legacy-Id: 10219 --- 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 = []