From a6728b561662f73393c4675b2aeaa18095c519ae Mon Sep 17 00:00:00 2001 From: "mga@tinyerp.com" <> Date: Wed, 20 Aug 2008 15:51:43 +0530 Subject: [PATCH] * change the order first load models then load actions * overrides the name_search method of ir.model.fields for server action bzr revid: mga@tinyerp.com-20080820102143-wc1gptqmcu0l679m --- bin/addons/base/ir/__init__.py | 2 +- bin/addons/base/ir/ir_actions.py | 104 +++++++++++++++---------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/bin/addons/base/ir/__init__.py b/bin/addons/base/ir/__init__.py index 2d8e697adeb..f6d3f769213 100644 --- a/bin/addons/base/ir/__init__.py +++ b/bin/addons/base/ir/__init__.py @@ -31,9 +31,9 @@ import ir_sequence import ir_ui_menu import ir_ui_view -import ir_actions import ir_default import ir_model +import ir_actions import ir_report_custom import ir_attachment import ir_cron diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 9ed4565169a..4e65045ab29 100755 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -270,58 +270,58 @@ def model_get(self, cr, uid, context={}): return res -#class ir_model_fields(osv.osv): -# _inherit = 'ir.model.fields' -# _rec_name = 'complete_name' -# _columns = { -# 'complete_name': fields.char('Complete Name', required=True, size=64, select=1), -# } -# -# def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=80): -# def get_fields(cr, uid, field, rel): -# result = [] -# mobj = self.pool.get('ir.model') -# id = mobj.search(cr, uid, [('model','=',rel)]) -# -# obj = self.pool.get('ir.model.fields') -# ids = obj.search(cr, uid, [('model_id','in',id)]) -# records = obj.read(cr, uid, ids) -# for record in records: -# id = record['id'] -# fld = field + '/' + record['name'] -# -# result.append((id, fld)) -# return result -# -# if not args: -# args=[] -# if not context: -# context={} -# return super(ir_model_fields, self).name_search(cr, uid, name, args, operator, context, limit) -# -# result = [] -# obj = self.pool.get('ir.model.fields') -# ids = obj.search(cr, uid, args) -# records = obj.read(cr, uid, ids) -# for record in records: -# id = record['id'] -# field = record['name'] -# -# if record['ttype'] == 'many2one': -# rel = record['relation'] -# res = get_fields(cr, uid, field, record['relation']) -# for rs in res: -# result.append(rs) -# -# result.append((id, field)) -# -# for rs in result: -# obj.write(cr, uid, [rs[0]], {'complete_name':rs[1]}) -# -# #result = super(ir_model_fields, self).name_search(cr, uid, name, [['complete_name','ilike',name]], operator, context, limit) -# return result -# -#ir_model_fields() +class ir_model_fields(osv.osv): + _inherit = 'ir.model.fields' + _rec_name = 'complete_name' + _columns = { + 'complete_name': fields.char('Complete Name', required=True, size=64, select=1), + } + + def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=80): + def get_fields(cr, uid, field, rel): + result = [] + mobj = self.pool.get('ir.model') + id = mobj.search(cr, uid, [('model','=',rel)]) + + obj = self.pool.get('ir.model.fields') + ids = obj.search(cr, uid, [('model_id','in',id)]) + records = obj.read(cr, uid, ids) + for record in records: + id = record['id'] + fld = field + '/' + record['name'] + + result.append((id, fld)) + return result + + if not args: + args=[] + if not context: + context={} + return super(ir_model_fields, self).name_search(cr, uid, name, args, operator, context, limit) + + result = [] + obj = self.pool.get('ir.model.fields') + ids = obj.search(cr, uid, args) + records = obj.read(cr, uid, ids) + for record in records: + id = record['id'] + field = record['name'] + + if record['ttype'] == 'many2one': + rel = record['relation'] + res = get_fields(cr, uid, field, record['relation']) + for rs in res: + result.append(rs) + + result.append((id, field)) + + for rs in result: + obj.write(cr, uid, [rs[0]], {'complete_name':rs[1]}) + + #result = super(ir_model_fields, self).name_search(cr, uid, name, [['complete_name','ilike',name]], operator, context, limit) + return result + +ir_model_fields() ## # Actions that are run on the server side #