[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
This commit is contained in:
Quentin (OpenERP) 2013-04-12 15:32:14 +02:00
parent 7f4d6299cc
commit 3f1d969e51
1 changed files with 8 additions and 6 deletions

View File

@ -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',