Skip to content

Commit e867345

Browse files
committed
Fix bug in alias generation that create duplicate aliases
- Legacy-Id: 3665
1 parent b2f1e17 commit e867345

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

redesign/importing/utils.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def get_or_create_email(o, create_fake):
7373
e, _ = Email.objects.select_related("person").get_or_create(address=email)
7474
if not e.person:
7575
asciified = unaccent.asciify(name)
76-
aliases = Alias.objects.filter(name__in=(name, asciified))
76+
aliases = Alias.objects.filter(name__in=(name, asciified)).select_related('person')
7777
if aliases:
7878
p = aliases[0].person
7979
else:
@@ -95,7 +95,8 @@ def get_or_create_email(o, create_fake):
9595
e.save()
9696
else:
9797
if e.person.name != name:
98-
Alias.objects.create(name=name, person=e.person)
98+
if not Alias.objects.filter(name=name):
99+
Alias.objects.create(name=name, person=e.person)
99100
# take longest name rather than the first we encounter
100101
if len(name) > e.person.name:
101102
e.person.name = name
@@ -114,3 +115,11 @@ def possibly_import_other_priority_email(email, addr):
114115
e.save()
115116
except Email.DoesNotExist:
116117
Email.objects.create(address=addr, person=email.person, active=False)
118+
119+
def dont_save_queries():
120+
# prevent memory from leaking when settings.DEBUG=True
121+
from django.db import connection
122+
class DontSaveQueries(object):
123+
def append(self, x):
124+
pass
125+
connection.queries = DontSaveQueries()

0 commit comments

Comments
 (0)