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
This commit is contained in:
Raimon Esteve 2023-10-31 09:01:24 +01:00
parent 0d5c4a7818
commit aa65eadf41
1 changed files with 11 additions and 8 deletions

19
user.py
View File

@ -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