From 1e5778844f6e567a35e55ab79e1d6e0f0246f667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 4 Dec 2018 16:06:02 +0100 Subject: [PATCH 1/6] [IMP] hr_contract,hr_payroll: Remove unused boolean 'manager' field on hr.employee The boolean manager field added by hr_contract on the hr.employee model was not used. This commit removes it. --- addons/hr_contract/models/hr_contract.py | 1 - addons/hr_contract/views/hr_contract_views.xml | 3 --- addons/hr_payroll/data/hr_payroll_demo.xml | 1 - 3 files changed, 5 deletions(-) diff --git a/addons/hr_contract/models/hr_contract.py b/addons/hr_contract/models/hr_contract.py index 938ae2d06a8..81e4a14e752 100644 --- a/addons/hr_contract/models/hr_contract.py +++ b/addons/hr_contract/models/hr_contract.py @@ -12,7 +12,6 @@ from odoo.osv import expression class Employee(models.Model): _inherit = "hr.employee" - manager = fields.Boolean(string='Is a Manager') medic_exam = fields.Date(string='Medical Examination Date', groups="hr.group_hr_user") vehicle = fields.Char(string='Company Vehicle', groups="hr.group_hr_user") contract_ids = fields.One2many('hr.contract', 'employee_id', string='Employee Contracts') diff --git a/addons/hr_contract/views/hr_contract_views.xml b/addons/hr_contract/views/hr_contract_views.xml index 56f7b6387b5..0e2576f2ab9 100644 --- a/addons/hr_contract/views/hr_contract_views.xml +++ b/addons/hr_contract/views/hr_contract_views.xml @@ -28,9 +28,6 @@ - - - diff --git a/addons/hr_payroll/data/hr_payroll_demo.xml b/addons/hr_payroll/data/hr_payroll_demo.xml index ea4ed7ec63a..ab77c6d03e8 100644 --- a/addons/hr_payroll/data/hr_payroll_demo.xml +++ b/addons/hr_payroll/data/hr_payroll_demo.xml @@ -101,7 +101,6 @@ - Roger Scott From 0cd13b001a9c66a8cde22abf5b98332005af1f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Wed, 2 Jan 2019 08:53:31 +0100 Subject: [PATCH 2/6] [IMP] hr, hr_holidays, hr_expense: Change onchange parent_id behaviour Purpose ======= When the manager (parent_id) of an employee changes, it doesn't always mean that other responsibles (Leave responsible, expense responsible, coach) should also change. Specification ============= When changing the employee's manager, the leave responsible, the expense responsible and the coach should be changed only if the field was not set or if the responsible is the previous manager. In that case, they should be set to the new manager. Otherwise, it means the field was most probably set manually and it should be left unchanged. --- addons/hr/models/hr.py | 7 +++++++ addons/hr_expense/models/hr_employee.py | 10 +++++++++- addons/hr_holidays/models/hr.py | 8 ++++++++ addons/hr_timesheet/views/hr_views.xml | 4 ++-- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/addons/hr/models/hr.py b/addons/hr/models/hr.py index 09f19dfc5c4..665893c76a4 100644 --- a/addons/hr/models/hr.py +++ b/addons/hr/models/hr.py @@ -218,6 +218,13 @@ class Employee(models.Model): if employee.pin and not employee.pin.isdigit(): raise ValidationError(_("The PIN must be a sequence of digits.")) + @api.onchange('parent_id') + def _onchange_parent_id(self): + manager = self.parent_id + previous_manager = self._origin.parent_id + if manager and (self.coach_id == previous_manager or not self.coach_id): + self.coach_id = manager + @api.onchange('job_id') def _onchange_job_id(self): if self.job_id: diff --git a/addons/hr_expense/models/hr_employee.py b/addons/hr_expense/models/hr_employee.py index 4a2b7dcb0a5..50c051b2330 100644 --- a/addons/hr_expense/models/hr_employee.py +++ b/addons/hr_expense/models/hr_employee.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models +from odoo import fields, models, api class Employee(models.Model): _inherit = 'hr.employee' @@ -10,3 +10,11 @@ class Employee(models.Model): 'res.users', string='Expense Responsible', domain=lambda self: [('groups_id', 'in', self.env.ref('hr_expense.group_hr_expense_user').id)], help="User responsible of expense approval. Should be Expense Manager.") + + @api.onchange('parent_id') + def _onchange_parent_id(self): + super(Employee, self)._onchange_parent_id() + previous_manager = self._origin.parent_id.user_id + manager = self.parent_id.user_id + if manager and manager.has_group('hr_expense.group_hr_expense_user') and (self.expense_manager_id == previous_manager or not self.expense_manager_id): + self.expense_manager_id = manager diff --git a/addons/hr_holidays/models/hr.py b/addons/hr_holidays/models/hr.py index 26ba7ec4d5d..8103cb97a25 100644 --- a/addons/hr_holidays/models/hr.py +++ b/addons/hr_holidays/models/hr.py @@ -144,6 +144,14 @@ class Employee(models.Model): employee.current_leave_state = leave_data.get(employee.id, {}).get('current_leave_state') employee.current_leave_id = leave_data.get(employee.id, {}).get('current_leave_id') + @api.onchange('parent_id') + def _onchange_parent_id(self): + super(Employee, self)._onchange_parent_id() + previous_manager = self._origin.parent_id.user_id + manager = self.parent_id.user_id + if manager and manager.has_group('hr.group_hr_user') and (self.leave_manager_id == previous_manager or not self.leave_manager_id): + self.leave_manager_id = manager + @api.multi def _compute_show_leaves(self): show_leaves = self.env['res.users'].has_group('hr_holidays.group_hr_holidays_user') diff --git a/addons/hr_timesheet/views/hr_views.xml b/addons/hr_timesheet/views/hr_views.xml index 630e45bcd5f..b18a86eb7f2 100644 --- a/addons/hr_timesheet/views/hr_views.xml +++ b/addons/hr_timesheet/views/hr_views.xml @@ -32,7 +32,7 @@ hr.employee - + - + + -
- + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - +
+
+ + + + + + + + + + + + + + + + +
+
- - - - - - - + + - + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - - @@ -260,7 +263,7 @@
-
+
@@ -270,7 +273,6 @@ - hr.employee.tree hr.employee @@ -595,6 +597,17 @@ + + Archive/Restore + + + code + + if records: + records.toggle_active() + + + Employees hr.employee diff --git a/addons/hr/views/res_config_settings_views.xml b/addons/hr/views/res_config_settings_views.xml index 1e4550f3cb9..97ff8116337 100644 --- a/addons/hr/views/res_config_settings_views.xml +++ b/addons/hr/views/res_config_settings_views.xml @@ -42,6 +42,20 @@
+

Employee Update Rights

+
+
+
+ +
+
+
+
+
diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml new file mode 100644 index 00000000000..b2e64082bd3 --- /dev/null +++ b/addons/hr/views/res_users.xml @@ -0,0 +1,152 @@ + + + + + + + + + res.users.preferences.form.simplified.inherit + res.users + + primary + +