diff --git a/partner_contact_in_several_companies/__init__.py b/partner_contact_in_several_companies/__init__.py
index cde864bae21..31660d6a965 100644
--- a/partner_contact_in_several_companies/__init__.py
+++ b/partner_contact_in_several_companies/__init__.py
@@ -1,3 +1,3 @@
-# -*- coding: utf-8 -*-
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
diff --git a/partner_contact_in_several_companies/demo/ir_actions.xml b/partner_contact_in_several_companies/demo/ir_actions.xml
index b1303b028c0..71eba445b5c 100644
--- a/partner_contact_in_several_companies/demo/ir_actions.xml
+++ b/partner_contact_in_several_companies/demo/ir_actions.xml
@@ -5,7 +5,9 @@
ir.actions.act_window
res.partner
kanban,tree,form
- {"search_default_customer":1, 'search_show_all_positions': {'is_set': True, 'set_value': True}}
-
+ {"search_default_customer":1, 'search_show_all_positions': {'is_set': True, 'set_value': True}}
+
diff --git a/partner_contact_in_several_companies/models/res_partner.py b/partner_contact_in_several_companies/models/res_partner.py
index 8a7ea9bea68..9ad9f67e94f 100644
--- a/partner_contact_in_several_companies/models/res_partner.py
+++ b/partner_contact_in_several_companies/models/res_partner.py
@@ -15,11 +15,12 @@ class ResPartner(models.Model):
compute="_compute_contact_type",
store=True,
index=True,
- default="standalone")
+ default="standalone"
+ )
contact_id = fields.Many2one(
"res.partner",
string="Main Contact",
- domain=[("is_company", "=", False), ("contact_type", "=", "standalone"), ],
+ domain=[("is_company", "=", False), ("contact_type", "=", "standalone")],
)
other_contact_ids = fields.One2many(
"res.partner", "contact_id", string="Others Positions",
@@ -120,9 +121,7 @@ def update_contact(self, vals):
if self.env.context.get("__update_contact_lock"):
return
contact_fields = self._contact_fields()
- contact_vals = {
- field: vals[field] for field in contact_fields if field in vals
- }
+ contact_vals = {field: vals[field] for field in contact_fields if field in vals}
if contact_vals:
self.with_context(__update_contact_lock=True).write(contact_vals)
diff --git a/partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py b/partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py
index 3a4c142f7a8..adcebd009b2 100644
--- a/partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py
+++ b/partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py
@@ -13,9 +13,13 @@ def setUp(self):
# Get test records reference
self.main_partner = self.env.ref("base.main_partner")
self.bob_contact = self.env.ref("%s.res_partner_contact1" % current_module)
- self.bob_job1 = self.env.ref("%s.res_partner_contact1_work_position1" % current_module)
+ self.bob_job1 = self.env.ref(
+ "%s.res_partner_contact1_work_position1" % current_module
+ )
self.roger_contact = self.env.ref("base.res_partner_main2")
- self.roger_job2 = self.env.ref("%s.res_partner_main2_position_consultant" % current_module)
+ self.roger_job2 = self.env.ref(
+ "%s.res_partner_main2_position_consultant" % current_module
+ )
def test_00_show_only_standalone_contact(self):
"""Check that only standalone contact are shown if context
@@ -52,13 +56,21 @@ def test_02_reading_other_contact_one2many_show_all_positions(self):
"""
ctx = {}
- self.assertEqual(self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids)
+ self.assertEqual(
+ self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids
+ )
ctx = {"search_show_all_positions": {"is_set": False}}
- self.assertEqual(self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids)
+ self.assertEqual(
+ self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids
+ )
ctx = {"search_show_all_positions": {"is_set": True, "set_value": False}}
- self.assertEqual(self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids)
+ self.assertEqual(
+ self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids
+ )
ctx = {"search_show_all_positions": {"is_set": True, "set_value": True}}
- self.assertEqual(self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids)
+ self.assertEqual(
+ self.bob_job1, self.bob_contact.with_context(ctx).other_contact_ids
+ )
ctx = {}
self.assertIn(self.bob_job1, self.main_partner.with_context(ctx).child_ids)
@@ -83,7 +95,9 @@ def test_03_search_match_attached_contacts(self):
# but when searching without 'all positions',
# we should get the position standalone contact instead.
ctx = {"search_show_all_positions": {"is_set": True, "set_value": False}}
- partner_ids = self.partner.with_context(ctx).search([("parent_id", "ilike", "YourCompany")])
+ partner_ids = self.partner.with_context(ctx).search(
+ [("parent_id", "ilike", "YourCompany")]
+ )
self.assertTrue(self.bob_contact in partner_ids)
def test_04_contact_creation(self):
@@ -100,19 +114,25 @@ def test_04_contact_creation(self):
# Create a contact with both contact_id and name;
# contact's name should override provided value in that case
- new_contact = self.partner.create({"contact_id": self.bob_contact.id, "name": "Rob Egnops"})
+ new_contact = self.partner.create(
+ {"contact_id": self.bob_contact.id, "name": "Rob Egnops"}
+ )
self.assertEqual(new_contact.name, "Bob Egnops")
# Reset contact to standalone
new_contact.write({"contact_id": False})
- self.assertEqual(new_contact.contact_type, "standalone",)
+ self.assertEqual(
+ new_contact.contact_type, "standalone",
+ )
# Reset contact to attached, and ensure only it is unlinked (i.e.
# context is ignored).
new_contact.write({"contact_id": self.bob_contact.id})
ctx = {"search_show_all_positions": {"is_set": True, "set_value": True}}
new_contact.with_context(ctx).unlink()
- partner_ids = self.partner.with_context(ctx).search([("id", "in", [new_contact.id, self.bob_contact.id])])
+ partner_ids = self.partner.with_context(ctx).search(
+ [("id", "in", [new_contact.id, self.bob_contact.id])]
+ )
self.assertIn(self.bob_contact, partner_ids)
self.assertNotIn(new_contact, partner_ids)
@@ -123,11 +143,15 @@ def test_05_contact_fields_sync(self):
# Test DOWNSTREAM sync
self.bob_contact.write({"name": "Rob Egnops"})
- self.assertEqual(self.bob_job1.name, "Rob Egnops",)
+ self.assertEqual(
+ self.bob_job1.name, "Rob Egnops",
+ )
# Test UPSTREAM sync
self.bob_job1.write({"name": "Bob Egnops"})
- self.assertEqual(self.bob_contact.name, "Bob Egnops",)
+ self.assertEqual(
+ self.bob_contact.name, "Bob Egnops",
+ )
def test_06_ir_action(self):
"""Check ir_action context is auto updated.
@@ -144,7 +168,7 @@ def test_06_ir_action(self):
self.assertIn(
new_context_val,
details["context"],
- msg="Default actions not updated with new context"
+ msg="Default actions not updated with new context",
)
details = self.env["ir.actions.act_window"].for_xml_id(
@@ -154,7 +178,7 @@ def test_06_ir_action(self):
self.assertNotIn(
new_context_val,
details["context"],
- msg="Custom actions incorrectly updated with new context"
+ msg="Custom actions incorrectly updated with new context",
)
def test_07_onchange(self):
@@ -164,15 +188,11 @@ def test_07_onchange(self):
new_contact = self.partner.create({"name": "Bob before onchange"})
new_contact.write({"contact_id": self.bob_contact.id})
new_contact._onchange_contact_id()
- self.assertEqual(
- new_contact.name, "Bob Egnops"
- )
+ self.assertEqual(new_contact.name, "Bob Egnops")
new_contact.write({"contact_type": "standalone"})
new_contact._onchange_contact_type()
- self.assertEqual(
- new_contact.contact_id, self.partner
- )
+ self.assertEqual(new_contact.contact_id, self.partner)
def test_08_commercial_partner_compute(self):
new_contact = self.partner.create({"name": "Bob before onchange"})
diff --git a/partner_contact_in_several_companies/views/res_partner.xml b/partner_contact_in_several_companies/views/res_partner.xml
index 167940dc28b..800f3d2f7cb 100644
--- a/partner_contact_in_several_companies/views/res_partner.xml
+++ b/partner_contact_in_several_companies/views/res_partner.xml
@@ -1,4 +1,4 @@
-
+
res.partner.select.contact
@@ -48,17 +48,20 @@
expr="//field[@name='child_ids']/form//field[@name='name']"
position="before"
>
-
-
+
- {'invisible': [('contact_type','=','attached')]}
+ {'invisible': [('contact_type','=','attached')]}
@@ -219,7 +222,10 @@
-
+
@@ -234,7 +240,10 @@
Contacts in several partners: personal info
res.partner
-
+