Merged in [8726] from rjsparks@nostrum.com:\n 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.

- Legacy-Id: 8869
Note: SVN reference [8726] has been migrated to Git commit f5325272f8
This commit is contained in:
Henrik Levkowetz 2015-01-15 21:10:38 +00:00
commit 46e2ed7dec
2 changed files with 32 additions and 0 deletions

View file

@ -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

View file

@ -0,0 +1,16 @@
{% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: {{settings.SERVER_EMAIL}}
To: <iesg-secretary@ietf.org>
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 %}