summaryrefslogtreecommitdiff
path: root/odoo/addons/base/module/report/ir_module_reference_print.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-09-02 15:58:39 +0200
committerRaphael Collet <rco@openerp.com>2016-09-02 17:28:12 +0200
commit9e64f9f9514194d74e166b032add8511182f2677 (patch)
tree5086710c04c6b923be18a6d1d97b3f0f3a2a9c4a /odoo/addons/base/module/report/ir_module_reference_print.py
parent11812b0b9e82b2b1b9041d8250ce01e7b4a5f7ee (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.py39
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)