Skip to content

Commit

Permalink
[FIX] base_multi_company: Allow child_of/parent_of operator into sear…
Browse files Browse the repository at this point in the history
…ch domain on company_id/company_ids
  • Loading branch information
lmignon committed May 10, 2017
1 parent fe161fe commit 2f1d0d5
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 1 deletion.
1 change: 1 addition & 0 deletions base_multi_company/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Contributors

* Dave Lasley <[email protected]>
* Pedro M. Baeza <[email protected]>
* Laurent Mignon <[email protected]>

Maintainer
----------
Expand Down
2 changes: 1 addition & 1 deletion base_multi_company/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
def create_company_assignment_view(cr):
cr.execute("""
CREATE OR REPLACE VIEW res_company_assignment
AS SELECT id, name
AS SELECT id, name, parent_id
FROM res_company;
""")

Expand Down
5 changes: 5 additions & 0 deletions base_multi_company/models/res_company_assignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,8 @@ class ResCompanyAssignment(models.Model):
_auto = False

name = fields.Char()

# This field must never be exposed into the UI. The purpose of this
# field is to be able to use the hierarchy operators (
# child_of/parent_of) into search domains on company_id / company_ids
parent_id = fields.Many2one('res.company')
17 changes: 17 additions & 0 deletions base_multi_company/tests/test_multi_company_abstract.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def setUp(self):
self.company_1 = Companies._company_default_get()
self.company_2 = Companies.create({
'name': 'Test Co 2',
'account_no': '123456'
})

def add_company(self, company):
Expand Down Expand Up @@ -99,8 +100,24 @@ def test_inverse_company_id(self):

def test_search_company_id(self):
""" It should return correct record by searching company_id. """
self.add_company(self.company_2)
record = self.env['multi.company.abstract.tester'].search([
('company_id.account_no', '=', self.company_2.account_no),
('id', '=', self.record.id),
])
self.assertEqual(record, self.record)
record = self.env['multi.company.abstract.tester'].search([
('company_id', '=', self.company_1.id),
('id', '=', self.record.id),
])
self.assertEqual(record, self.record)
record = self.env['multi.company.abstract.tester'].search([
('company_ids', 'child_of', self.company_1.id),
('id', '=', self.record.id),
])
self.assertEqual(record, self.record)
record = self.env['multi.company.abstract.tester'].search([
('company_ids', 'parent_of', self.company_1.id),
('id', '=', self.record.id),
])
self.assertEqual(record, self.record)

0 comments on commit 2f1d0d5

Please sign in to comment.