From 6b6faa1553788336d8b7baafee63b9f2a4f380f1 Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Tue, 31 Oct 2023 09:01:24 +0100 Subject: [PATCH] Remplace set sale_device context from _preferences_fields to _get_preferences Check rule only if _check_access is set and enforce companies rule issue4080 #163126 --- user.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/user.py b/user.py index 31247e5..a22faed 100644 --- a/user.py +++ b/user.py @@ -7,23 +7,18 @@ from trytond.pool import PoolMeta from trytond.pyson import Eval -__all__ = ['User'] - - class User(metaclass=PoolMeta): __name__ = "res.user" sale_device = fields.Many2One('sale.device', 'Sale Device', domain=[('shop', '=', Eval('shop'))], depends=['shop'] - ) + ) @classmethod def __setup__(cls): super(User, cls).__setup__() - if 'sale_device' not in cls._preferences_fields: - cls._preferences_fields.extend([ - 'sale_device', - ]) + if 'sale_device' not in cls._context_fields: + cls._context_fields.insert(0, 'sale_device') @classmethod def __register__(cls, module_name): @@ -41,3 +36,11 @@ class User(metaclass=PoolMeta): def on_change_company(self): super().on_change_company() self.sale_device = None + + @classmethod + def _get_preferences(cls, user, context_only=False): + res = super(User, cls)._get_preferences(user, + context_only=context_only) + if not context_only: + res['sale_device'] = user.sale_device and user.sale_device.id or None + return res