From 0849ba9d6fc5df0f8eea002c6a4ac2c09a0a19ac Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Wed, 5 Jan 2011 15:07:08 +0100 Subject: [PATCH 1/4] [ADD] ir.model : list of modules in which the object is defined [ADD] ir.model.fields : list of modules in which the field is defined [IMP] ir.model : aligned field form view with ir.model.fields [ADD] ir.model : list of views [ADD] ir.model : report "Model Overview" bzr revid: jba@openerp.com-20110105140708-qrby7d6trhjw7vs5 --- bin/addons/base/__openerp__.py | 1 + bin/addons/base/ir/ir.xml | 20 ++++++++-------- bin/addons/base/ir/ir_model.py | 24 +++++++++++++++++++- bin/addons/base/ir/report/ir_report.xml | 16 +++++++++++++ bin/addons/base/ir/report/modeloverview.sxw | Bin 0 -> 17797 bytes 5 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 bin/addons/base/ir/report/ir_report.xml create mode 100644 bin/addons/base/ir/report/modeloverview.sxw diff --git a/bin/addons/base/__openerp__.py b/bin/addons/base/__openerp__.py index bb419fc90d3..e15dabc42e7 100644 --- a/bin/addons/base/__openerp__.py +++ b/bin/addons/base/__openerp__.py @@ -43,6 +43,7 @@ 'ir/wizard/wizard_menu_view.xml', 'ir/ir.xml', 'ir/workflow/workflow_view.xml', + 'ir/report/ir_report.xml', 'module/module_view.xml', 'module/module_data.xml', 'module/module_report.xml', diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 29a836892b5..e944747cfd3 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -967,6 +967,7 @@ + @@ -981,29 +982,26 @@
- - - - + + + + - - - - + @@ -1032,6 +1030,9 @@ + + + @@ -1094,7 +1095,7 @@ - + @@ -1113,6 +1114,7 @@ + diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 4dfe39a7762..ed43ce824a3 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -63,6 +63,18 @@ class ir_model(osv.osv): is_osv_mem = self._is_osv_memory(cr, uid, all_model_ids, 'osv_memory', arg=None, context=context) return [('id', 'in', [id for id in is_osv_mem if bool(is_osv_mem[id]) == value])] + def _in_modules(self, cr, uid, ids, field_name, arg, context=None): + res = osv.osv.get_xml_ids(self, cr, uid, ids) + for k,v in res.iteritems(): + res[k]=', '.join(map(lambda x: x.split('.')[0],v)) + return res + + def _view_ids(self, cr, uid, ids, field_name, arg, context=None): + models=self.browse(cr,uid,ids) + res={} + for model in models: + res[model.id]=self.pool.get("ir.ui.view").search(cr, uid, [('model', '=', model.name)]) + return res _columns = { 'name': fields.char('Object Name', size=64, translate=True, required=True), @@ -73,7 +85,9 @@ class ir_model(osv.osv): 'access_ids': fields.one2many('ir.model.access', 'model_id', 'Access'), 'osv_memory': fields.function(_is_osv_memory, method=True, string='In-memory model', type='boolean', fnct_search=_search_osv_memory, - help="Indicates whether this object model lives in memory only, i.e. is not persisted (osv.osv_memory)") + help="Indicates whether this object model lives in memory only, i.e. is not persisted (osv.osv_memory)"), + 'modules': fields.function(_in_modules, method=True, type='char', size=128, string='In modules', help='List of modules in which the object is defined'), + 'view_ids': fields.function(_view_ids, method=True, type='one2many', obj='ir.ui.view', string='Views'), } _defaults = { @@ -150,6 +164,13 @@ ir_model() class ir_model_fields(osv.osv): _name = 'ir.model.fields' _description = "Fields" + + def _in_modules(self, cr, uid, ids, field_name, arg, context=None): + res = osv.osv.get_xml_ids(self, cr, uid, ids) + for k,v in res.iteritems(): + res[k]=', '.join(map(lambda x: x.split('.')[0],v)) + return res + _columns = { 'name': fields.char('Name', required=True, size=64, select=1), 'model': fields.char('Object Name', size=64, required=True, select=1), @@ -170,6 +191,7 @@ class ir_model_fields(osv.osv): 'groups': fields.many2many('res.groups', 'ir_model_fields_group_rel', 'field_id', 'group_id', 'Groups'), 'view_load': fields.boolean('View Auto-Load'), 'selectable': fields.boolean('Selectable'), + 'modules': fields.function(_in_modules, method=True, type='char', size=128, string='In modules', help='List of modules in which the field is defined'), } _rec_name='field_description' _defaults = { diff --git a/bin/addons/base/ir/report/ir_report.xml b/bin/addons/base/ir/report/ir_report.xml new file mode 100644 index 00000000000..3d077f453c8 --- /dev/null +++ b/bin/addons/base/ir/report/ir_report.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/bin/addons/base/ir/report/modeloverview.sxw b/bin/addons/base/ir/report/modeloverview.sxw new file mode 100644 index 0000000000000000000000000000000000000000..ea0f4ce0dfa577029b0aeb12915f2070e44bc23f GIT binary patch literal 17797 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 h{A+0aD^2qKmw{GZ>J9WSGvwEw Date: Fri, 7 Jan 2011 11:19:19 +0100 Subject: [PATCH 2/4] [FIX] list of views function in ir.model bzr revid: jba@openerp.com-20110107101919-bei5x77fl98432jy --- bin/addons/base/ir/ir_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index ed43ce824a3..3e24b56809e 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -73,7 +73,7 @@ class ir_model(osv.osv): models=self.browse(cr,uid,ids) res={} for model in models: - res[model.id]=self.pool.get("ir.ui.view").search(cr, uid, [('model', '=', model.name)]) + res[model.id]=self.pool.get("ir.ui.view").search(cr, uid, [('model', '=', model.model)]) return res _columns = { From e6cddbf400fb0e62e3755708db4fcf981aa1edc9 Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Fri, 7 Jan 2011 11:33:35 +0100 Subject: [PATCH 3/4] [FIX] inherited view in "Model Overview" report bzr revid: jba@openerp.com-20110107103335-2kqmt5g4bue52sge --- bin/addons/base/ir/report/modeloverview.sxw | Bin 17797 -> 17955 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bin/addons/base/ir/report/modeloverview.sxw b/bin/addons/base/ir/report/modeloverview.sxw index ea0f4ce0dfa577029b0aeb12915f2070e44bc23f..83769b93b94da641a2c81ed41baacfd6a98148a3 100644 GIT binary patch delta 13046 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 Z!2%M55Ds5J7s9w8I|(!xQqh0>{vTv2+~WWM delta 12944 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 t)qkS Date: Fri, 7 Jan 2011 12:42:33 +0100 Subject: [PATCH 4/4] [FIX] list only installed modules bzr revid: jba@openerp.com-20110107114233-f5p2h1rasyoxwfdp --- bin/addons/base/ir/ir_model.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 3e24b56809e..1e38cf761fa 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -40,6 +40,18 @@ def _get_fields_type(self, cr, uid, context=None): field_types.remove(types) return field_types +def _in_modules(self, cr, uid, ids): + #return list of installed modules where self is defined + res = osv.osv.get_xml_ids(self, cr, uid, ids) + for k,v in res.iteritems(): + res[k]=set(map(lambda x: x.split('.')[0],v)) + module_pool=self.pool.get("ir.module.module") + installed_modules=[module for module in reduce(lambda x, y: x|y, res.values()) + if module_pool.search(cr,uid,[('name','=',module),('state','=','installed')])] + for k,v in res.iteritems(): + res[k]=', '.join([m for m in v if m in installed_modules]) + return res + class ir_model(osv.osv): _name = 'ir.model' _description = "Objects" @@ -64,10 +76,7 @@ class ir_model(osv.osv): return [('id', 'in', [id for id in is_osv_mem if bool(is_osv_mem[id]) == value])] def _in_modules(self, cr, uid, ids, field_name, arg, context=None): - res = osv.osv.get_xml_ids(self, cr, uid, ids) - for k,v in res.iteritems(): - res[k]=', '.join(map(lambda x: x.split('.')[0],v)) - return res + return _in_modules(self, cr, uid, ids) def _view_ids(self, cr, uid, ids, field_name, arg, context=None): models=self.browse(cr,uid,ids) @@ -166,10 +175,7 @@ class ir_model_fields(osv.osv): _description = "Fields" def _in_modules(self, cr, uid, ids, field_name, arg, context=None): - res = osv.osv.get_xml_ids(self, cr, uid, ids) - for k,v in res.iteritems(): - res[k]=', '.join(map(lambda x: x.split('.')[0],v)) - return res + return _in_modules(self, cr, uid, ids) _columns = { 'name': fields.char('Name', required=True, size=64, select=1),