From 41249e7b8cccc4381d7453158d1f1fd7ed5d255b Mon Sep 17 00:00:00 2001 From: Mantavya Gajjar Date: Fri, 17 Apr 2009 14:49:30 +0530 Subject: [PATCH 1/2] improvement in ir.model.fields for view and model * check the existance of the relational model bzr revid: mga@tinyerp.com-20090417091930-fos208yk5teh420p --- bin/addons/base/ir/ir.xml | 6 ++---- bin/addons/base/ir/ir_model.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 0f164e637df..8bcb3abfced 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -750,10 +750,8 @@ - - + + diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 05fe09d2b87..105ffece9dc 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -243,9 +243,14 @@ class ir_model_fields(osv.osv): if vals.get('state','base') == 'manual': if not vals['name'].startswith('x_'): raise except_orm(_('Error'), _("Custom fields must have a name that starts with 'x_' !")) - if self.pool.get(vals['model']): - self.pool.get(vals['model']).__init__(self.pool, cr) - self.pool.get(vals['model'])._auto_init(cr, {}) + + model_ids = self.pool.get('ir.model').search(cr, user, [('model','=',vals['relation'])]) + if model_ids: + if self.pool.get(vals['model']): + self.pool.get(vals['model']).__init__(self.pool, cr) + self.pool.get(vals['model'])._auto_init(cr, {}) + else: + raise except_orm(_('Error'), _("Model %s Does not Exist !" % vals['relation'])) return res ir_model_fields() From 9bcf97fa2d8268d95b64691cfe128d3c47a63646 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Fri, 17 Apr 2009 15:26:37 +0530 Subject: [PATCH 2/2] [FIX] Bug 356863 : corrected menuitem's action allottment (ref:jvo,uco) bzr revid: jvo@tinyerp.com-20090417095637-yn4jhpr36na9sbl8 --- bin/addons/base/ir/ir_ui_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index 507934e38e1..5715fc9ac78 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -200,7 +200,7 @@ class ir_ui_menu(osv.osv): if values_ids: values_obj.write(cursor, user, values_ids[0], {'value': value}, context=ctx) - else: + elif ctx: values_obj.create(cursor, user, { 'name': 'Menuitem', 'model': self._name,