🧑💻(models) improve user str representation
Improve user model str representation to display name or email if provided. Otherwise, returns sub as last resort.
This commit is contained in:
committed by
Marie
parent
2598f3649a
commit
66300aca66
@@ -230,11 +230,7 @@ class User(AbstractBaseUser, BaseModel, auth_models.PermissionsMixin):
|
|||||||
verbose_name_plural = _("users")
|
verbose_name_plural = _("users")
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return (
|
return self.name if self.name else self.email or f"User {self.sub}"
|
||||||
str(self.profile_contact)
|
|
||||||
if self.profile_contact
|
|
||||||
else self.email or str(self.sub)
|
|
||||||
)
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -20,16 +20,13 @@ def test_models_team_accesses_str():
|
|||||||
"""
|
"""
|
||||||
The str representation should include user name, team full name and role.
|
The str representation should include user name, team full name and role.
|
||||||
"""
|
"""
|
||||||
contact = factories.ContactFactory(full_name="David Bowman")
|
user = factories.UserFactory()
|
||||||
user = contact.owner
|
|
||||||
user.profile_contact = contact
|
|
||||||
user.save()
|
|
||||||
access = factories.TeamAccessFactory(
|
access = factories.TeamAccessFactory(
|
||||||
role="member",
|
role="member",
|
||||||
user=user,
|
user=user,
|
||||||
team__name="admins",
|
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():
|
def test_models_team_accesses_unique():
|
||||||
|
|||||||
@@ -14,13 +14,18 @@ pytestmark = pytest.mark.django_db
|
|||||||
|
|
||||||
|
|
||||||
def test_models_users_str():
|
def test_models_users_str():
|
||||||
"""The str representation should be the full name."""
|
"""
|
||||||
|
user str representation should return name or email when avalaible.
|
||||||
|
Otherwise, it should return the sub.
|
||||||
|
"""
|
||||||
user = factories.UserFactory()
|
user = factories.UserFactory()
|
||||||
contact = factories.ContactFactory(full_name="david bowman", owner=user)
|
assert str(user) == user.name
|
||||||
user.profile_contact = contact
|
|
||||||
user.save()
|
|
||||||
|
|
||||||
assert str(user) == "david bowman"
|
no_name_user = factories.UserFactory(name=None)
|
||||||
|
assert str(no_name_user) == no_name_user.email
|
||||||
|
|
||||||
|
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():
|
def test_models_users_id_unique():
|
||||||
|
|||||||
Reference in New Issue
Block a user