From a139c6fc6c2ef698158286a8f4b8bf300849ef19 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 22 Jun 2012 16:12:22 +0200 Subject: [PATCH] [IMP] clean UI for ir.model.data form and tree view bzr revid: fp@tinyerp.com-20120622141222-ddizks1sz66nqxgw --- openerp/addons/base/ir/ir.xml | 22 +++++++++++++--------- openerp/addons/base/ir/ir_model.py | 27 +++++++++++++++++++++++++++ openerp/addons/base/res/res_widget.py | 1 + 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index df1b3501071..6d5da0fc47a 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -1068,18 +1068,23 @@ form
- - - + + + + + + + + + - - +
@@ -1090,10 +1095,9 @@ tree - - - - + + + diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index da5a1ec19fd..b366d1dfb1c 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -642,10 +642,37 @@ class ir_model_data(osv.osv): """ _name = 'ir.model.data' _order = 'module,model,name' + def _display_name_get(self, cr, uid, ids, prop, unknow_none, context=None): + result = {} + result2 = {} + for res in self.browse(cr, uid, ids, context=context): + if res.id: + result.setdefault(res.model, {}) + result[res.model][res.res_id] = res.id + result2[res.id] = False + + for model in result: + try: + r = dict(self.pool.get(model).name_get(cr, uid, result[model].keys(), context=context)) + for key,val in result[model].items(): + result2[val] = r.get(key, False) + except: + # some object have no valid name_get implemented, we accept this + pass + return result2 + + def _complete_name_get(self, cr, uid, ids, prop, unknow_none, context=None): + result = {} + for res in self.browse(cr, uid, ids, context=context): + result[res.id] = (res.module and (res.module + '.') or '')+res.name + return result + _columns = { 'name': fields.char('External Identifier', required=True, size=128, select=1, help="External Key/Identifier that can be used for " "data integration with third-party systems"), + 'complete_name': fields.function(_complete_name_get, type='char', string='Complete ID'), + 'display_name': fields.function(_display_name_get, type='char', string='Record Name'), 'model': fields.char('Model Name', required=True, size=64, select=1), 'module': fields.char('Module', required=True, size=64, select=1), 'res_id': fields.integer('Record ID', select=1, diff --git a/openerp/addons/base/res/res_widget.py b/openerp/addons/base/res/res_widget.py index c4765c3cb1f..2137eab51fd 100644 --- a/openerp/addons/base/res/res_widget.py +++ b/openerp/addons/base/res/res_widget.py @@ -35,6 +35,7 @@ res_widget() class res_widget_user(osv.osv): _name="res.widget.user" + _rec_name="user_id" _order = "sequence" _columns = { 'sequence': fields.integer('Sequence'),