From f5325272f83634441008787eec3ea9d5b749e019 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 4 Dec 2014 03:51:48 +0000 Subject: [PATCH] Send mail to the secretariat when a Person is created with the same name as some other Person objects in case its a duplicate that needs to be merged. Fixes ticket #1553. Commit ready to merge. - Legacy-Id: 8726 --- ietf/person/models.py | 16 ++++++++++++++++ .../person/mail/possible_duplicates.txt | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 ietf/templates/person/mail/possible_duplicates.txt diff --git a/ietf/person/models.py b/ietf/person/models.py index 9842d9297..3db715d73 100644 --- a/ietf/person/models.py +++ b/ietf/person/models.py @@ -3,10 +3,14 @@ import datetime from urlparse import urljoin +from django.conf import settings + from django.db import models from django.contrib.auth.models import User +from django.template.loader import render_to_string from ietf.person.name import name_parts, initials +from ietf.utils.mail import send_mail_preformatted class PersonInfo(models.Model): time = models.DateTimeField(default=datetime.datetime.now) # When this Person record entered the system @@ -76,6 +80,18 @@ class PersonInfo(models.Model): class Person(PersonInfo): user = models.OneToOneField(User, blank=True, null=True) + def save(self, *args, **kwargs): + created = not self.pk + super(Person, self).save(*args, **kwargs) + if created: + if Person.objects.filter(name=self.name).count() > 1 : + msg = render_to_string('person/mail/possible_duplicates.txt', + dict(name=self.name, + persons=Person.objects.filter(name=self.name), + settings=settings + )) + send_mail_preformatted(None, msg) + #this variable, if not None, may be used by url() to keep the sitefqdn. default_hostscheme = None diff --git a/ietf/templates/person/mail/possible_duplicates.txt b/ietf/templates/person/mail/possible_duplicates.txt new file mode 100644 index 000000000..580710741 --- /dev/null +++ b/ietf/templates/person/mail/possible_duplicates.txt @@ -0,0 +1,16 @@ +{% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: {{settings.SERVER_EMAIL}} +To: +Subject: Possible duplicate Person objects for {{name}} + +A new Person 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 %} + +{% endfor %} {% endautoescape %}