diff --git a/src/backend/core/models.py b/src/backend/core/models.py index c4d897a59..20b458273 100644 --- a/src/backend/core/models.py +++ b/src/backend/core/models.py @@ -230,11 +230,7 @@ class Meta: verbose_name_plural = _("users") def __str__(self): - return ( - str(self.profile_contact) - if self.profile_contact - else self.email or str(self.sub) - ) + return self.name if self.name else self.email or f"User {self.sub}" def save(self, *args, **kwargs): """ diff --git a/src/backend/core/tests/test_models_team_accesses.py b/src/backend/core/tests/test_models_team_accesses.py index 8d9bc891f..c628016cd 100644 --- a/src/backend/core/tests/test_models_team_accesses.py +++ b/src/backend/core/tests/test_models_team_accesses.py @@ -20,16 +20,13 @@ def test_models_team_accesses_str(): """ The str representation should include user name, team full name and role. """ - contact = factories.ContactFactory(full_name="David Bowman") - user = contact.owner - user.profile_contact = contact - user.save() + user = factories.UserFactory() access = factories.TeamAccessFactory( role="member", user=user, team__name="admins", ) - assert str(access) == "David Bowman is member in team admins" + assert str(access) == f"{user} is {access.role} in team {access.team}" def test_models_team_accesses_unique(): diff --git a/src/backend/core/tests/test_models_users.py b/src/backend/core/tests/test_models_users.py index bd65988ab..87b7f598c 100644 --- a/src/backend/core/tests/test_models_users.py +++ b/src/backend/core/tests/test_models_users.py @@ -14,13 +14,18 @@ def test_models_users_str(): - """The str representation should be the full name.""" + """ + user str representation should return main name and main email when main identity exists. + Otherwise, it should return the admin_email or, as a last resort, uuid. + """ user = factories.UserFactory() - contact = factories.ContactFactory(full_name="david bowman", owner=user) - user.profile_contact = contact - user.save() + assert str(user) == user.name + + no_name_user = factories.UserFactory(name=None) + assert str(no_name_user) == no_name_user.email - assert str(user) == "david bowman" + no_name_no_email_user = factories.UserFactory(name=None, email=None) + assert str(no_name_no_email_user) == f"User {no_name_no_email_user.sub}" def test_models_users_id_unique():