diff --git a/base_user_role/models/user.py b/base_user_role/models/user.py
index 9b71e140..65742820 100644
--- a/base_user_role/models/user.py
+++ b/base_user_role/models/user.py
@@ -12,6 +12,14 @@ class ResUsers(models.Model):
string="Role lines",
default=lambda self: self._default_role_lines(),
)
+
+ show_alert = fields.Boolean(compute="_compute_show_alert")
+
+ @api.depends("role_line_ids")
+ def _compute_show_alert(self):
+ for user in self:
+ user.show_alert = user.role_line_ids.filtered(lambda rec: rec.is_enabled)
+
role_ids = fields.One2many(
comodel_name="res.users.role",
string="Roles",
diff --git a/base_user_role/tests/test_user_role.py b/base_user_role/tests/test_user_role.py
index 0669bcc8..6f640227 100644
--- a/base_user_role/tests/test_user_role.py
+++ b/base_user_role/tests/test_user_role.py
@@ -247,6 +247,15 @@ class TestUserRole(TransactionCase):
role_group_ids = sorted(set(role.trans_implied_ids.ids))
self.assertEqual(user_group_ids, role_group_ids)
+ def test_show_alert_computation(self):
+ """Test the computation of the `show_alert` field."""
+ self.user_id.write({"role_line_ids": [(0, 0, {"role_id": self.role1_id.id})]})
+ self.assertTrue(self.user_id.show_alert)
+
+ # disable role
+ self.user_id.role_line_ids.unlink()
+ self.assertFalse(self.user_id.show_alert)
+
def test_group_groups_into_role(self):
user_group_ids = [group.id for group in self.user_id.groups_id]
# Check that there is not a role with name: Test Role
diff --git a/base_user_role/views/user.xml b/base_user_role/views/user.xml
index 5bacde7e..081923b1 100644
--- a/base_user_role/views/user.xml
+++ b/base_user_role/views/user.xml
@@ -24,8 +24,28 @@
+
+
+
+
+
+
res.users.search.inherit
res.users