Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.
Module: Invoicing
Entity: ir.module.module
Compute Method: _compute_account_templates
| Inputs | Method | Outputs |
|---|---|---|
|
- chart_category = self.env.ref('base.module_category_accounting_localizations_account_charts') - ChartTemplate = self.env['account.chart.template'] + code2country = self.env['res.country'].search([]).grouped('code') for module in self: - templates = {} - if module.category_id == chart_category or module.name == 'account': - try: - python_module = import_module(f"odoo.addons.{module.name}.models") - except ModuleNotFoundError: - templates = {} - else: - templates = { - fct._l10n_template[0]: { - 'name': template_values.get('name'), - 'parent': template_values.get('parent'), - 'sequence': template_values.get('sequence', 1), - 'country': template_values.get('country', ''), - 'visible': template_values.get('visible', True), - 'installed': module.state == "installed", - 'module': module.name, - } - for _name, mdl in getmembers(python_module, template_module) - for _name, cls in getmembers(mdl, template_class) - for _name, fct in getmembers(cls, template_function) - if (template_values := fct(ChartTemplate)) - } - module.account_templates = { - code: templ(self.env, code, **vals) - for code, vals in sorted(templates.items(), key=lambda kv: kv[1]['sequence']) + code: templ(self.env, code2country, **vals) + for code, vals in module._get_module_template().items() } |
|
