'For a given view ``view_id``, should return:
* the view itself
* all views inheriting from it, enabled or not
- but not the optional children of a non-enabled child
* all views called from it (via t-call)
:returns recordset of ir.ui.view'

@api.model
def _views_get(self, view_id, options=True, bundles=False, root=True):

    try:
        view = self._view_obj(view_id)
    except ValueError:
        _logger.warning("Could    not    find    view    object    with    view_id    '%s'", view_id)
        return []
    while (root and view.inherit_id):
        view = view.inherit_id
    views_to_return = view
    node = etree.fromstring(view.arch)
    xpath = '//t[@t-call]'
    if bundles:
        xpath += '|    //t[@t-call-assets]'
    for child in node.xpath(xpath):
        try:
            called_view = self._view_obj(child.get('t-call', child.get('t-call-assets')))
        except ValueError:
            continue
        if (called_view not in views_to_return):
            views_to_return += self._views_get(called_view, options=options, bundles=bundles)
    extensions = view.inherit_children_ids
    if (not options):
        extensions = view.inherit_children_ids.filtered((lambda view: view.active))
    for extension in extensions.sorted(key=(lambda v: v.id)):
        for ext_view in self._views_get(extension, options=extension.active, root=False):
            if (ext_view not in views_to_return):
                views_to_return += ext_view
    return views_to_return
