# Copyright 2019 Creu Blanca # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models class Base(models.AbstractModel): _inherit = 'base' def _get_record_parents(self, field): if not self or not hasattr(self, self._parent_name): return [] return getattr( self, self._parent_name )._get_record_parents(field) + [(self.id, str(getattr(self, field)))] def _get_record_direct_childs(self, field, domain): if not hasattr(self, self._parent_name): return [] return [(r.id, str(getattr(r, field))) for r in self.search([( self._parent_name, '=', self.id or False )] + domain)] def get_record_direct_childs_parents(self, options, domain=False): if not domain: domain = [] field = options.get('child_selection_field', 'display_name') return { 'childs': self._get_record_direct_childs(field, domain), 'parents': self._get_record_parents(field) }