diff --git a/ietf/person/models.py b/ietf/person/models.py index 248c0ebad..e93e2cc7e 100644 --- a/ietf/person/models.py +++ b/ietf/person/models.py @@ -127,6 +127,20 @@ class Alias(models.Model): """ person = models.ForeignKey(Person) name = models.CharField(max_length=255, db_index=True) + + def save(self, *args, **kwargs): + created = not self.pk + super(Alias, self).save(*args, **kwargs) + if created: + if Alias.objects.filter(name=self.name).exclude(person__name=self.name).count() > 1 : + msg = render_to_string('person/mail/possible_duplicates.txt', + dict(name=self.name, + persons=Person.objects.filter(alias__name=self.name), + settings=settings + )) + send_mail_preformatted(None, msg) + + def __unicode__(self): return self.name class Meta: diff --git a/ietf/templates/person/mail/possible_duplicates.txt b/ietf/templates/person/mail/possible_duplicates.txt index 580710741..1a1dab199 100644 --- a/ietf/templates/person/mail/possible_duplicates.txt +++ b/ietf/templates/person/mail/possible_duplicates.txt @@ -2,15 +2,16 @@ To: Subject: Possible duplicate Person objects for {{name}} -A new Person object was just created for {{name}}. +A new Person and/or Alias object was just created for {{name}}. There are now {{persons|length}} Person objects sharing that name. Please check to see if they represent the same actual person, and if so, merge the objects as appropriate. -{% for person in persons %}Person {{forloop.counter}} (pk={{person.pk}}) - time: {{person.time}} - ascii: {{person.ascii}} - email: {% for email in person.email_set.all %}{{ email.address }} {% endfor %} +{% for person in persons %}Person {{forloop.counter}} {{ person.name }} (pk={{person.pk}}) + time: {{person.time}} + ascii: {{person.ascii}} + email: {% for email in person.email_set.all %}{{ email.address }} {% endfor %} + aliases: {{ person.alias_set.all|join:", " }} {% endfor %} {% endautoescape %}