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 13d81dc509
This commit is contained in:
Henrik Levkowetz 2015-10-18 13:19:54 +00:00
parent 499a2180a3
commit 6388f6de23

View file

@ -3,8 +3,22 @@
from django.db import models from django.db import models
from django.template import Template, Context from django.template import Template, Context
from email.utils import parseaddr
from ietf.group.models import Role 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): class MailTrigger(models.Model):
slug = models.CharField(max_length=32, primary_key=True) slug = models.CharField(max_length=32, primary_key=True)
desc = models.TextField(blank=True) desc = models.TextField(blank=True)
@ -37,8 +51,7 @@ class Recipient(models.Model):
if rendering: if rendering:
retval.extend([x.strip() for x in rendering.split(',')]) retval.extend([x.strip() for x in rendering.split(',')])
retval = list(set(retval)) return clean_duplicates(retval)
return retval
def gather_doc_group_chairs(self, **kwargs): def gather_doc_group_chairs(self, **kwargs):
addrs = [] addrs = []