From 9725eadfdd9728b938b345c81e1da80c51e64c65 Mon Sep 17 00:00:00 2001 From: jbm-odoo Date: Mon, 25 Nov 2019 12:57:15 +0000 Subject: [PATCH] [Fix] hr_employee: Fix compute fields When we add a user to employee, we can have problem with leave, expense or coach manager. It's due to those compute fields. closes odoo/odoo#40795 Related: odoo/enterprise#6865 Signed-off-by: Yannick Tivisse (yti) --- addons/fleet/views/res_config_settings_views.xml | 2 +- addons/hr/models/hr_employee_base.py | 2 ++ addons/hr_expense/models/hr_employee.py | 2 ++ addons/hr_holidays/models/hr_employee.py | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/fleet/views/res_config_settings_views.xml b/addons/fleet/views/res_config_settings_views.xml index eddce7ccd0d..63d610b45b5 100644 --- a/addons/fleet/views/res_config_settings_views.xml +++ b/addons/fleet/views/res_config_settings_views.xml @@ -29,7 +29,7 @@
diff --git a/addons/hr/models/hr_employee_base.py b/addons/hr/models/hr_employee_base.py index 02f0d91b00b..b80e757d85e 100644 --- a/addons/hr/models/hr_employee_base.py +++ b/addons/hr/models/hr_employee_base.py @@ -86,3 +86,5 @@ class HrEmployeeBase(models.AbstractModel): previous_manager = employee._origin.parent_id if manager and (employee.coach_id == previous_manager or not employee.coach_id): employee.coach_id = manager + elif not employee.coach_id: + employee.coach_id = False diff --git a/addons/hr_expense/models/hr_employee.py b/addons/hr_expense/models/hr_employee.py index fb7f158d1f8..1ef5997a6fe 100644 --- a/addons/hr_expense/models/hr_employee.py +++ b/addons/hr_expense/models/hr_employee.py @@ -30,6 +30,8 @@ class Employee(models.Model): manager = employee.parent_id.user_id if manager and manager.has_group('hr_expense.group_hr_expense_user') and (employee.expense_manager_id == previous_manager or not employee.expense_manager_id): employee.expense_manager_id = manager + elif not employee.expense_manager_id: + employee.expense_manager_id = False class EmployeePublic(models.Model): diff --git a/addons/hr_holidays/models/hr_employee.py b/addons/hr_holidays/models/hr_employee.py index f2ecc17f16c..cd8662895e5 100644 --- a/addons/hr_holidays/models/hr_employee.py +++ b/addons/hr_holidays/models/hr_employee.py @@ -158,6 +158,8 @@ class HrEmployeeBase(models.AbstractModel): manager = employee.parent_id.user_id if manager and employee.leave_manager_id == previous_manager or not employee.leave_manager_id: employee.leave_manager_id = manager + elif not employee.leave_manager_id: + employee.leave_manager_id = False def _compute_show_leaves(self): show_leaves = self.env['res.users'].has_group('hr_holidays.group_hr_holidays_user')