Skip to content

Commit 7099f82

Browse files
committed
merged changes 8726 forward
- Legacy-Id: 8838
1 parent 413e926 commit 7099f82

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

ietf/person/models.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
import datetime
44
from urlparse import urljoin
55

6+
from django.conf import settings
7+
68
from django.db import models
79
from django.contrib.auth.models import User
10+
from django.template.loader import render_to_string
811

912
from ietf.person.name import name_parts, initials
13+
from ietf.utils.mail import send_mail_preformatted
1014

1115
class PersonInfo(models.Model):
1216
time = models.DateTimeField(default=datetime.datetime.now) # When this Person record entered the system
@@ -76,6 +80,18 @@ class Meta:
7680
class Person(PersonInfo):
7781
user = models.OneToOneField(User, blank=True, null=True)
7882

83+
def save(self, *args, **kwargs):
84+
created = not self.pk
85+
super(Person, self).save(*args, **kwargs)
86+
if created:
87+
if Person.objects.filter(name=self.name).count() > 1 :
88+
msg = render_to_string('person/mail/possible_duplicates.txt',
89+
dict(name=self.name,
90+
persons=Person.objects.filter(name=self.name),
91+
settings=settings
92+
))
93+
send_mail_preformatted(None, msg)
94+
7995
#this variable, if not None, may be used by url() to keep the sitefqdn.
8096
default_hostscheme = None
8197

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: {{settings.SERVER_EMAIL}}
2+
To: <iesg-secretary@ietf.org>
3+
Subject: Possible duplicate Person objects for {{name}}
4+
5+
A new Person object was just created for {{name}}.
6+
7+
There are now {{persons|length}} Person objects sharing that name.
8+
9+
Please check to see if they represent the same actual person, and if so, merge the objects as appropriate.
10+
11+
{% for person in persons %}Person {{forloop.counter}} (pk={{person.pk}})
12+
time: {{person.time}}
13+
ascii: {{person.ascii}}
14+
email: {% for email in person.email_set.all %}{{ email.address }} {% endfor %}
15+
16+
{% endfor %} {% endautoescape %}

0 commit comments

Comments
 (0)