summaryrefslogtreecommitdiff
path: root/odoo/addons
diff options
context:
space:
mode:
authorShreya Modi <smo@odoo.com>2019-04-02 10:00:19 +0000
committerBarad Mahendra <mba@openerp.com>2019-07-19 07:09:07 +0000
commit125dbf0dfd1e38558cd8ff6ee2b8d7aeff27dc20 (patch)
tree91932912a659332603f9af168d6fab45c699d477 /odoo/addons
parent112a4f309e59982544f2e82ef7e1b2728a3009ac (diff)
[IMP] base: ensure parent and child partners have the same company
Purpose of the commit is to ensure parent and child partners have the same company. When creating a new child in another company and one of them tries to log a message on other contacts an error is raised due to multi company record rules. It makes no sense to have child contacts belonging to separate companies. If parent is set on contact then the company_id should be readonly and it will automatically set the parent's company_id. Task-1934813 closes: #32405 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Diffstat (limited to 'odoo/addons')
-rw-r--r--odoo/addons/base/models/res_partner.py5
-rw-r--r--odoo/addons/base/views/res_partner_views.xml2
2 files changed, 6 insertions, 1 deletions
diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py
index bd3c0ab4489..3e84b921882 100644
--- a/odoo/addons/base/models/res_partner.py
+++ b/odoo/addons/base/models/res_partner.py
@@ -415,6 +415,11 @@ class Partner(models.Model):
if not self.image and self._context.get('gravatar_image') and self.email:
self.image = self._get_gravatar_image(self.email)
+ @api.onchange('parent_id', 'company_id')
+ def _onchange_company_id(self):
+ if self.parent_id:
+ self.company_id = self.parent_id.company_id.id
+
@api.depends('name', 'email')
def _compute_email_formatted(self):
for partner in self:
diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml
index 2bb056f75b6..5a93c801e9d 100644
--- a/odoo/addons/base/views/res_partner_views.xml
+++ b/odoo/addons/base/views/res_partner_views.xml
@@ -401,7 +401,7 @@
</group>
<group name="misc" string="Misc">
<field name="ref" string="Reference"/>
- <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
+ <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}" attrs="{'readonly': [('parent_id', '!=', False)]}"/>
<field name="industry_id" attrs="{'invisible': [('is_company', '=', False)]}" options="{'no_create': True}"/>
</group>
</group>