summaryrefslogtreecommitdiff
path: root/addons/hr
diff options
context:
space:
mode:
authorjbm-odoo <jbm@odoo.com>2019-11-04 08:47:18 +0000
committerjbm-odoo <jbm@odoo.com>2019-11-06 10:08:50 +0000
commit6b5bdbb476b849fac4e46a7d0082bc12bc6ae6e2 (patch)
tree1bd212fc663c8305c0d681aaad27ffabe0949223 /addons/hr
parentc83cac21a738702820ce5084c605d47fab06e909 (diff)
[IMP] hr_[contract,employee,recruitment,work_entry]: Add multi edit in view
Make some fields editable in multi edit. Some onchange are tranformed in compute fields. id=2078674 closes odoo/odoo#39711 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/hr')
-rw-r--r--addons/hr/models/hr_employee_base.py17
-rw-r--r--addons/hr/views/hr_employee_views.xml9
2 files changed, 15 insertions, 11 deletions
diff --git a/addons/hr/models/hr_employee_base.py b/addons/hr/models/hr_employee_base.py
index 75eef28fa8c..02f0d91b00b 100644
--- a/addons/hr/models/hr_employee_base.py
+++ b/addons/hr/models/hr_employee_base.py
@@ -29,7 +29,9 @@ class HrEmployeeBase(models.AbstractModel):
resource_id = fields.Many2one('resource.resource')
resource_calendar_id = fields.Many2one('resource.calendar', domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
parent_id = fields.Many2one('hr.employee', 'Manager', domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
- coach_id = fields.Many2one('hr.employee', 'Coach', domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
+ coach_id = fields.Many2one(
+ 'hr.employee', 'Coach', compute='_compute_coach', store=True, readonly=False,
+ domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
tz = fields.Selection(
string='Timezone', related='resource_id.tz', readonly=False,
help="This field is used in order to define in which timezone the resources will work.")
@@ -77,9 +79,10 @@ class HrEmployeeBase(models.AbstractModel):
employee.last_activity = False
employee.last_activity_time = False
- @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.depends('parent_id')
+ def _compute_coach(self):
+ for employee in self:
+ manager = employee.parent_id
+ previous_manager = employee._origin.parent_id
+ if manager and (employee.coach_id == previous_manager or not employee.coach_id):
+ employee.coach_id = manager
diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml
index 4320ec08924..494b00ccc33 100644
--- a/addons/hr/views/hr_employee_views.xml
+++ b/addons/hr/views/hr_employee_views.xml
@@ -200,14 +200,15 @@
<field name="name">hr.employee.tree</field>
<field name="model">hr.employee</field>
<field name="arch" type="xml">
- <tree string="Employees">
- <field name="name"/>
- <field name="work_phone"/>
+ <tree string="Employees" multi_edit="1">
+ <field name="name" readonly="1"/>
+ <field name="work_phone" readonly="1"/>
<field name="work_email"/>
- <field name="company_id" groups="base.group_multi_company"/>
+ <field name="company_id" groups="base.group_multi_company" readonly="1"/>
<field name="department_id"/>
<field name="job_id"/>
<field name="parent_id"/>
+ <field name="work_location" optional="hide"/>
<field name="coach_id" invisible="1"/>
</tree>
</field>