Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.
Module: Base
Entity: ir.module.module
Compute Method: _get_views
| Inputs | Method | Outputs |
|---|---|---|
|
- IrModelData = self.env['ir.model.data'].with_context(active_test=True) - dmodels = ['ir.ui.view', 'ir.actions.report', 'ir.ui.menu'] - for module in self: - # Skip uninstalled modules below, no data to find anyway. - if module.state not in ('installed', 'to upgrade', 'to remove'): - module.views_by_module = "" - module.reports_by_module = "" - module.menus_by_module = "" - continue - - # then, search and group ir.model.data records - imd_models = defaultdict(list) - imd_domain = [('module', '=', module.name), ('model', 'in', tuple(dmodels))] - for data in IrModelData.sudo().search(imd_domain): - imd_models[data.model].append(data.res_id) - - def browse(model): - # as this method is called before the module update, some xmlid - # may be invalid at this stage; explictly filter records before - # reading them - return self.env[model].browse(imd_models[model]).exists() - - def format_view(v): - return '%s%s (%s)' % (v.inherit_id and '* INHERIT ' or '', v.name, v.type) - - module.views_by_module = "\n".join(sorted(format_view(v) for v in browse('ir.ui.view'))) - module.reports_by_module = "\n".join(sorted(r.name for r in browse('ir.actions.report'))) - module.menus_by_module = "\n".join(sorted(m.complete_name for m in browse('ir.ui.menu'))) |
|
