From 008c1688bfec2ffec36b7d81468be4694bb6ef86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 25 Sep 2024 12:44:11 +0200 Subject: [PATCH] Set employee when changing company only if the user has one available value --- modules/company/res.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/company/res.py b/modules/company/res.py index bed70e831c..551e2535de 100644 --- a/modules/company/res.py +++ b/modules/company/res.py @@ -200,17 +200,14 @@ class User(metaclass=PoolMeta): if self.employee and self.employee not in employees: self.employee = None - @fields.depends('company', 'employees') + @fields.depends('company', 'employees', 'employee') def on_change_company(self): - Employee = Pool().get('company.employee') - self.employee = None - if self.company and self.employees: - employees = Employee.search([ - ('id', 'in', [e.id for e in self.employees]), - ('company', '=', self.company.id), - ]) - if employees: - self.employee = employees[0] + if self.employee and self.employee.company != self.company: + self.employee = None + employees = [ + e for e in (self.employees or []) if e.company == self.company] + if len(employees) == 1: + self.employee, = employees @classmethod def _get_preferences(cls, user, context_only=False):