[FIX] hr : Hide field department in launch plan wizard if multiple employees from different departments are selected

task - 3279067

closes odoo/odoo#123220

X-original-commit: 838c8cb48c9d539476ac133d1513eeefefbb3a24
Signed-off-by: Kevin Baptiste <kba@odoo.com>
This commit is contained in:
Jurgen (jugj)
2023-06-01 10:25:40 +02:00
parent 3dd031bab0
commit bd0be295d9
2 changed files with 20 additions and 8 deletions
+19 -7
View File
@@ -13,17 +13,23 @@ class HrPlanWizard(models.TransientModel):
def _default_plan_id(self):
# We know that all employees belong to the same company
employee = self.env['hr.employee'].browse(self.env.context.get('active_ids')[0] if self.env.context.get('active_ids') else [])
return self.env['hr.plan'].search([
('company_id', '=', employee.company_id.id),
'|',
('department_id', '=', employee.department_id.id),
('department_id', '=', False)
employees = self.env['hr.employee'].browse(self.env.context.get('active_ids') if self.env.context.get('active_ids') else [])
if len(employees.department_id) > 1:
return self.env['hr.plan'].search([
('company_id', '=', employees[0].company_id.id),
('department_id', '=', False)
], limit=1)
else:
return self.env['hr.plan'].search([
('company_id', '=', employees[0].company_id.id),
'|',
('department_id', '=', employees[0].department_id.id),
('department_id', '=', False)
], limit=1)
plan_id = fields.Many2one('hr.plan', default=lambda self: self._default_plan_id(),
domain="[('company_id', '=', company_id), '|', ('department_id', '=', department_id), ('department_id', '=', False)]")
department_id = fields.Many2one(related='employee_ids.department_id')
department_id = fields.Many2one('hr.department', compute='_compute_department_id')
employee_ids = fields.Many2many(
'hr.employee', 'hr_employee_hr_plan_wizard_rel', 'employee_id', 'plan_wizard_id', string='Employee', required=True,
default=lambda self: self.env.context.get('active_ids', []),
@@ -31,6 +37,12 @@ class HrPlanWizard(models.TransientModel):
company_id = fields.Many2one('res.company', 'Company', compute='_compute_company_id', required=True)
warning = fields.Html(compute='_compute_warning')
@api.depends('employee_ids')
def _compute_department_id(self):
for wizard in self:
all_departments = wizard.employee_ids.department_id
wizard.department_id = False if len(all_departments) > 1 else all_departments
@api.constrains('employee_ids')
def _check_employee_companies(self):
for wizard in self:
+1 -1
View File
@@ -8,7 +8,7 @@
<form>
<sheet>
<group>
<field name="department_id"/>
<field name="department_id" attrs="{'invisible': [('department_id', '=', False)]}"/>
<field name="plan_id"/>
<field name="employee_ids" invisible="1"/>
<field name="company_id" invisible="1"/>