Skip to content
Snippets Groups Projects
Commit 2c10c1c5 authored by jan.bednarik's avatar jan.bednarik
Browse files

Fix updating of name collision id on every save of existing user.

parent 057bdd20
No related branches found
No related tags found
No related merge requests found
...@@ -18,9 +18,10 @@ class User(AbstractUser): ...@@ -18,9 +18,10 @@ class User(AbstractUser):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
# deal with first name and last name collisions # deal with first name and last name collisions
collisions = User.objects.filter(first_name=self.first_name, last_name=self.last_name)\ collisions = User.objects.filter(first_name=self.first_name, last_name=self.last_name)\
.order_by('-name_collision_id')[:1] .order_by('-name_collision_id')
if len(collisions) > 0: if len(collisions) > 0 and self not in collisions:
self.name_collision_id = collisions[0].name_collision_id + 1 self.name_collision_id = collisions[0].name_collision_id + 1
# TODO when we allow name change, it should also reset name_collision_id
super().save(*args, **kwargs) super().save(*args, **kwargs)
......
...@@ -90,3 +90,14 @@ def test_user__name_collision(): ...@@ -90,3 +90,14 @@ def test_user__name_collision():
assert u1.name_collision_id == 0 assert u1.name_collision_id == 0
assert u2.name_collision_id == 1 assert u2.name_collision_id == 1
assert u3.name_collision_id == 2 assert u3.name_collision_id == 2
def test_user__name_collision_is_not_updated_for_existing_user():
u1 = User.objects.create(username='a', first_name='Ryan', last_name='Reynolds')
u2 = User.objects.create(username='b', first_name='Ryan', last_name='Reynolds')
assert u1.name_collision_id == 0
assert u2.name_collision_id == 1
u1.save()
u2.save()
assert u1.name_collision_id == 0
assert u2.name_collision_id == 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment