From 99b046a2f8d36d5a1a86387063c2db42d824fefe Mon Sep 17 00:00:00 2001 From: Paulius Date: Thu, 30 May 2024 13:58:30 +0300 Subject: [PATCH] Fix singleton exception for res_users.py This exception is raised, when: ``` rslt = super().write(vals) File "/custom_addons/hide_menu_user/models/res_users.py", line 37, in write menu.restrict_user_ids = [fields.Command.link(self.id)] File "/opt/prod-odoo17/odoo/fields.py", line 5140, in __get__ raise ValueError("Expected singleton: %s" % record) ValueError: Expected singleton: res.users(2, 46, 41, 43, 44, 48, 8, 40, 39, 47, 7, 49, 6, 45, 42, 9) ``` --- hide_menu_user/models/res_users.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hide_menu_user/models/res_users.py b/hide_menu_user/models/res_users.py index 112394fa4..062e9b822 100644 --- a/hide_menu_user/models/res_users.py +++ b/hide_menu_user/models/res_users.py @@ -19,7 +19,7 @@ # If not, see . # ############################################################################# -from odoo import fields, models +from odoo import fields, models, Command class ResUsers(models.Model): @@ -30,14 +30,14 @@ class ResUsers(models.Model): def write(self, vals): """ - Write method for the ResUsers model. - Ensure the menu will not remain hidden after removing it from the list. - """ + Write method for the ResUsers model. + Ensure the menu will not remain hidden after removing it from the list. + """ res = super(ResUsers, self).write(vals) for record in self: for menu in record.hide_menu_ids: menu.write({ - 'restrict_user_ids': [fields.Command.link(record.id)] + 'restrict_user_ids': [Command.set([record.id] + [user.id for user in menu.restrict_user_ids])] }) return res