diff options
| author | Raphael Collet <rco@openerp.com> | 2016-09-02 15:58:39 +0200 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2016-09-02 17:28:12 +0200 |
| commit | 9e64f9f9514194d74e166b032add8511182f2677 (patch) | |
| tree | 5086710c04c6b923be18a6d1d97b3f0f3a2a9c4a /odoo/addons/base/module/report/ir_module_reference_print.py | |
| parent | 11812b0b9e82b2b1b9041d8250ce01e7b4a5f7ee (diff) | |
[REF] openerp: move `openerp` to `odoo`
Diffstat (limited to 'odoo/addons/base/module/report/ir_module_reference_print.py')
| -rw-r--r-- | odoo/addons/base/module/report/ir_module_reference_print.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/odoo/addons/base/module/report/ir_module_reference_print.py b/odoo/addons/base/module/report/ir_module_reference_print.py new file mode 100644 index 00000000000..19587b3cb8f --- /dev/null +++ b/odoo/addons/base/module/report/ir_module_reference_print.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models + +class IrModelReferenceReport(models.AbstractModel): + _name = 'report.base.report_irmodulereference' + + @api.model + def _object_find(self, module): + Data = self.env['ir.model.data'] + data = Data.search([('model','=','ir.model'), ('module','=',module.name)]) + res_ids = data.mapped('res_id') + return self.env['ir.model'].browse(res_ids) + + @api.multi + def _fields_find(self, model, module): + Data = self.env['ir.model.data'] + fname_wildcard = 'field_' + model.replace('.', '_') + '_%' + data = Data.search([('model', '=', 'ir.model.fields'), ('module', '=', module.name), ('name', 'like', fname_wildcard)]) + if data: + res_ids = data.mapped('res_ids') + fnames = self.env['ir.model.fields'].browse(res_ids).mapped('name') + return sorted(self.env[model].fields_get(fnames).iteritems()) + return [] + + @api.model + def render_html(self, docids, data=None): + Report = self.env['report'] + report = Report._get_report_from_name('base.report_irmodulereference') + selected_modules = self.env['ir.module.module'].browse(docids) + docargs = { + 'doc_ids': docids, + 'doc_model': report.model, + 'docs': selected_modules, + 'findobj': self._object_find, + 'findfields': self._fields_find, + } + return Report.render('base.report_irmodulereference', docargs) |
