[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:
@@ -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:
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user