diff --git a/bin/addons/base/base.sql b/bin/addons/base/base.sql index 02f6a6836dd..13b895d93b0 100644 --- a/bin/addons/base/base.sql +++ b/bin/addons/base/base.sql @@ -27,6 +27,7 @@ CREATE TABLE ir_model ( id serial, model varchar(64) DEFAULT ''::varchar NOT NULL, name varchar(64), + state varchar(16), info text, primary key(id) ); diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index f29bcb3afe6..91360668243 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -75,7 +75,10 @@ class ir_model(osv.osv): vals['state']='manual' res = super(ir_model,self).create(cr, user, vals, context) if vals.get('state','base')=='manual': - pooler.restart_pool(cr.dbname) + self.instanciate(cr, user, vals['model'], context) + self.pool.get(vals['model']).__init__(self.pool, cr) + self.pool.get(vals['model'])._auto_init(cr,{}) + #pooler.restart_pool(cr.dbname) return res def instanciate(self, cr, user, model, context={}): @@ -84,10 +87,7 @@ class ir_model(osv.osv): x_custom_model._name = model x_custom_model._module = False x_custom_model.createInstance(self.pool, '', cr) - if 'x_name' in x_custom_model._columns: - x_custom_model._rec_name = 'x_name' - else: - x_custom_model._rec_name = x_custom_model._columns.keys()[0] + x_custom_model._rec_name = 'x_name' ir_model() diff --git a/bin/addons/base/ir/wizard/wizard_menu_view.xml b/bin/addons/base/ir/wizard/wizard_menu_view.xml index 40e84576b68..510a816099e 100644 --- a/bin/addons/base/ir/wizard/wizard_menu_view.xml +++ b/bin/addons/base/ir/wizard/wizard_menu_view.xml @@ -21,8 +21,8 @@