diff --git a/addons/hr/models/hr_plan.py b/addons/hr/models/hr_plan.py
index c3051d3b48d..60e64692658 100644
--- a/addons/hr/models/hr_plan.py
+++ b/addons/hr/models/hr_plan.py
@@ -9,8 +9,9 @@ class HrPlanActivityType(models.Model):
_name = 'hr.plan.activity.type'
_description = 'Plan activity type'
_rec_name = 'summary'
+ _check_company_auto = True
-
+ company_id = fields.Many2one('res.company', default=lambda self: self.env.company)
activity_type_id = fields.Many2one(
'mail.activity.type', 'Activity Type',
default=lambda self: self.env.ref('mail.mail_activity_data_todo'),
@@ -23,7 +24,7 @@ class HrPlanActivityType(models.Model):
('manager', 'Manager'),
('employee', 'Employee'),
('other', 'Other')], default='employee', string='Responsible', required=True)
- responsible_id = fields.Many2one('res.users', 'Name', help='Specific responsible of activity if not linked to the employee.')
+ responsible_id = fields.Many2one('res.users', 'Name', help='Specific responsible of activity if not linked to the employee.', check_company=True)
note = fields.Html('Note')
@@ -62,5 +63,6 @@ class HrPlan(models.Model):
_description = 'plan'
name = fields.Char('Name', required=True)
- plan_activity_type_ids = fields.Many2many('hr.plan.activity.type', string='Activities')
+ company_id = fields.Many2one('res.company', default=lambda self: self.env.company)
+ plan_activity_type_ids = fields.Many2many('hr.plan.activity.type', string='Activities', domain="[('company_id', '=', company_id)]")
active = fields.Boolean(default=True)
diff --git a/addons/hr/security/hr_security.xml b/addons/hr/security/hr_security.xml
index b801b1ec4bc..c84300e0502 100644
--- a/addons/hr/security/hr_security.xml
+++ b/addons/hr/security/hr_security.xml
@@ -49,5 +49,17 @@
['|',('company_id','=',False),('company_id', 'in', company_ids)]
+
+
+ Plan multi-company rule
+
+ ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
+
+
+
+ Plan Activity Type multi-company rule
+
+ ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
+
diff --git a/addons/hr/views/hr_plan_views.xml b/addons/hr/views/hr_plan_views.xml
index 252ae9e2c4e..57fc261f51a 100644
--- a/addons/hr/views/hr_plan_views.xml
+++ b/addons/hr/views/hr_plan_views.xml
@@ -20,6 +20,7 @@
+
@@ -37,10 +38,12 @@
+
+
@@ -61,6 +64,7 @@
+
@@ -74,6 +78,7 @@
+
diff --git a/addons/hr/wizard/hr_plan_wizard.py b/addons/hr/wizard/hr_plan_wizard.py
index 9df61d1de8c..92f0293c0c3 100644
--- a/addons/hr/wizard/hr_plan_wizard.py
+++ b/addons/hr/wizard/hr_plan_wizard.py
@@ -8,11 +8,16 @@ class HrPlanWizard(models.TransientModel):
_name = 'hr.plan.wizard'
_description = 'Plan Wizard'
- plan_id = fields.Many2one('hr.plan', default=lambda self: self.env['hr.plan'].search([], limit=1))
+ def _default_plan_id(self):
+ employee = self.env['hr.employee'].browse(self.env.context.get('active_id'))
+ return self.env['hr.plan'].search([('company_id', '=', employee.company_id.id)], limit=1)
+
+ plan_id = fields.Many2one('hr.plan', default=_default_plan_id, domain="[('company_id', '=', company_id)]")
employee_id = fields.Many2one(
'hr.employee', string='Employee', required=True,
default=lambda self: self.env.context.get('active_id', None),
)
+ company_id = fields.Many2one(related='employee_id.company_id')
def action_launch(self):
for activity_type in self.plan_id.plan_activity_type_ids:
diff --git a/addons/hr/wizard/hr_plan_wizard_views.xml b/addons/hr/wizard/hr_plan_wizard_views.xml
index 51754c2a634..d9da9ced4ec 100644
--- a/addons/hr/wizard/hr_plan_wizard_views.xml
+++ b/addons/hr/wizard/hr_plan_wizard_views.xml
@@ -10,6 +10,7 @@
+