diff --git a/odoo/models.py b/odoo/models.py index 058906fc533..e5d8d3208a7 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -173,7 +173,18 @@ def to_company_ids(companies): def check_company_domain_parent_of(self, companies): - return ['|', ('company_id', '=', False), ('company_id', 'parent_of', to_company_ids(companies))] + if isinstance(companies, str): + return ['|', ('company_id', '=', False), ('company_id', 'parent_of', [companies])] + + companies = [id for id in to_company_ids(companies) if id] + if not companies: + return [('company_id', '=', False)] + + return ['|', ('company_id', '=', False), ('company_id', 'in', [ + int(parent) + for rec in self.env['res.company'].sudo().browse(companies) + for parent in rec.parent_path.split('/')[:-1] + ])] class MetaModel(api.Meta):