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 import datetime
from urlparse import urljoin from urlparse import urljoin
from django.conf import settings
from django.db import models from django.db import models
from django.contrib.auth.models import User 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.person.name import name_parts, initials
from ietf.utils.mail import send_mail_preformatted
class PersonInfo(models.Model): class PersonInfo(models.Model):
time = models.DateTimeField(default=datetime.datetime.now) # When this Person record entered the system 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): class Person(PersonInfo):
user = models.OneToOneField(User, blank=True, null=True) 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. #this variable, if not None, may be used by url() to keep the sitefqdn.
default_hostscheme = None 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 %}