From 3f1d969e51a9deb3fdb5b3a8b2e1812b407518f4 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Fri, 12 Apr 2013 15:32:14 +0200 Subject: [PATCH] [FIX] module, technical reference guide report: don't print fields having the same name than another on another object that have been modified in that module. + small refactoring bzr revid: qdp-launchpad@openerp.com-20130412133214-s92o4gcfwfu7yfbp --- .../module/report/ir_module_reference_print.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openerp/addons/base/module/report/ir_module_reference_print.py b/openerp/addons/base/module/report/ir_module_reference_print.py index dacd8deb110..b5f67dc7367 100644 --- a/openerp/addons/base/module/report/ir_module_reference_print.py +++ b/openerp/addons/base/module/report/ir_module_reference_print.py @@ -72,14 +72,16 @@ class ir_module_reference_print(report_sxw.rml_parse): return modobj.browse(self.cr, self.uid, ids) def _fields_find(self, obj, module): + res = [] data_obj = self.pool.get('ir.model.data') modobj = self.pool.get(obj) - tmp_res = modobj.fields_get(self.cr, self.uid).items() - module_fields_ids = data_obj.search(self.cr, self.uid, [('model', '=', 'ir.model.fields'), ('module', '=', module)]) - module_fields_res_ids = [x['res_id'] for x in data_obj.read(self.cr, self.uid, module_fields_ids, ['res_id'])] - module_fields_names = [x['name'] for x in self.pool.get('ir.model.fields').read(self.cr, self.uid, module_fields_res_ids, ['name'])] - res = [tmp_res[i] for i in range(len(tmp_res)) if tmp_res[i][0] in module_fields_names] - res.sort() + fname_wildcard = 'field_' + modobj._name.replace('.', '_') + '_%' + module_fields_ids = data_obj.search(self.cr, self.uid, [('model', '=', 'ir.model.fields'), ('module', '=', module), ('name', 'like', fname_wildcard)]) + if module_fields_ids: + module_fields_res_ids = [x['res_id'] for x in data_obj.read(self.cr, self.uid, module_fields_ids, ['res_id'])] + module_fields_names = [x['name'] for x in self.pool.get('ir.model.fields').read(self.cr, self.uid, module_fields_res_ids, ['name'])] + res = modobj.fields_get(self.cr, self.uid, allfields=module_fields_names).items() + res.sort() return res report_sxw.report_sxw('report.ir.module.reference', 'ir.module.module',