From f4cb884cdcbd4984709133b883c50c97b8e48ebd Mon Sep 17 00:00:00 2001 From: Sylvain GARANCHER Date: Tue, 10 May 2016 12:13:27 +0200 Subject: [PATCH] [FIX] base: Add missing return values The _auto_init method was overriden without keeping the return value of the super on some models. This break the new stored computed fields computation at field creation. Closes #11985 opw-677232 --- openerp/addons/base/ir/ir_actions.py | 3 ++- openerp/addons/base/ir/ir_attachment.py | 3 ++- openerp/addons/base/ir/ir_model.py | 3 ++- openerp/addons/base/ir/ir_translation.py | 4 +++- openerp/addons/base/ir/ir_ui_view.py | 9 ++++++--- openerp/addons/base/ir/ir_values.py | 3 ++- openerp/addons/base/ir/workflow/workflow.py | 6 ++++-- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 65cb88a71d1..18a43695142 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -300,10 +300,11 @@ class act_window_view(osv.osv): 'multi': False, } def _auto_init(self, cr, context=None): - super(act_window_view, self)._auto_init(cr, context) + res = super(act_window_view, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'act_window_view_unique_mode_per_action\'') if not cr.fetchone(): cr.execute('CREATE UNIQUE INDEX act_window_view_unique_mode_per_action ON ir_act_window_view (act_window_id, view_mode)') + return res act_window_view() class act_wizard(osv.osv): diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py index ad257b418c3..630cea3e5af 100644 --- a/openerp/addons/base/ir/ir_attachment.py +++ b/openerp/addons/base/ir/ir_attachment.py @@ -184,11 +184,12 @@ class ir_attachment(osv.osv): } def _auto_init(self, cr, context=None): - super(ir_attachment, self)._auto_init(cr, context) + res = super(ir_attachment, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_attachment_res_idx',)) if not cr.fetchone(): cr.execute('CREATE INDEX ir_attachment_res_idx ON ir_attachment (res_model, res_id)') cr.commit() + return res def check(self, cr, uid, ids, mode, context=None, values=None): """Restricts the access to an ir.attachment, according to referred model diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 5dee9f2975b..311c687886c 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -868,10 +868,11 @@ class ir_model_data(osv.osv): self.loads = self.pool.model_data_reference_ids def _auto_init(self, cr, context=None): - super(ir_model_data, self)._auto_init(cr, context) + res = super(ir_model_data, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_model_data_module_name_index\'') if not cr.fetchone(): cr.execute('CREATE INDEX ir_model_data_module_name_index ON ir_model_data (module, name)') + return res @tools.ormcache() def _get_id(self, cr, uid, module, xml_id): diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 0d03ca843c8..0f22036a750 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -229,7 +229,7 @@ class ir_translation(osv.osv): 'Language code of translation item must be among known languages' ), ] def _auto_init(self, cr, context=None): - super(ir_translation, self)._auto_init(cr, context) + res = super(ir_translation, self)._auto_init(cr, context) # FIXME: there is a size limit on btree indexed values so we can't index src column with normal btree. cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_ltns',)) @@ -253,6 +253,8 @@ class ir_translation(osv.osv): cr.execute('CREATE INDEX ir_translation_ltn ON ir_translation (name, lang, type)') cr.commit() + return res + def _check_selection_field_value(self, cr, uid, field, value, context=None): if field == 'lang': return diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 8d8fb373290..36713224814 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -41,10 +41,11 @@ class view_custom(osv.osv): } def _auto_init(self, cr, context=None): - super(view_custom, self)._auto_init(cr, context) + res = super(view_custom, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_ui_view_custom_user_id_ref_id\'') if not cr.fetchone(): cr.execute('CREATE INDEX ir_ui_view_custom_user_id_ref_id ON ir_ui_view_custom (user_id, ref_id)') + return res class view(osv.osv): _name = 'ir.ui.view' @@ -161,10 +162,11 @@ class view(osv.osv): ] def _auto_init(self, cr, context=None): - super(view, self)._auto_init(cr, context) + res = super(view, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_ui_view_model_type_inherit_id\'') if not cr.fetchone(): cr.execute('CREATE INDEX ir_ui_view_model_type_inherit_id ON ir_ui_view (model, inherit_id)') + return res def get_inheriting_views_arch(self, cr, uid, view_id, model, context=None): """Retrieves the architecture of views that inherit from the given view, from the sets of @@ -291,10 +293,11 @@ class view_sc(osv.osv): } def _auto_init(self, cr, context=None): - super(view_sc, self)._auto_init(cr, context) + res = super(view_sc, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_ui_view_sc_user_id_resource\'') if not cr.fetchone(): cr.execute('CREATE INDEX ir_ui_view_sc_user_id_resource ON ir_ui_view_sc (user_id, resource)') + return res def get_sc(self, cr, uid, user_id, model='ir.ui.menu', context=None): ids = self.search(cr, uid, [('user_id','=',user_id),('resource','=',model)], context=context) diff --git a/openerp/addons/base/ir/ir_values.py b/openerp/addons/base/ir/ir_values.py index 5d8cb73373d..17cfab56582 100644 --- a/openerp/addons/base/ir/ir_values.py +++ b/openerp/addons/base/ir/ir_values.py @@ -190,10 +190,11 @@ class ir_values(osv.osv): } def _auto_init(self, cr, context=None): - super(ir_values, self)._auto_init(cr, context) + res = super(ir_values, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_values_key_model_key2_res_id_user_id_idx\'') if not cr.fetchone(): cr.execute('CREATE INDEX ir_values_key_model_key2_res_id_user_id_idx ON ir_values (key, model, key2, res_id, user_id)') + return res def set_default(self, cr, uid, model, field_name, value, for_all_users=True, company_id=False, condition=False): """Defines a default value for the given model and field_name. Any previous diff --git a/openerp/addons/base/ir/workflow/workflow.py b/openerp/addons/base/ir/workflow/workflow.py index dc1fc9afb79..2c26e399e2a 100644 --- a/openerp/addons/base/ir/workflow/workflow.py +++ b/openerp/addons/base/ir/workflow/workflow.py @@ -139,13 +139,14 @@ class wkf_instance(osv.osv): 'state': fields.char('Status', size=32), } def _auto_init(self, cr, context=None): - super(wkf_instance, self)._auto_init(cr, context) + res = super(wkf_instance, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'wkf_instance_res_type_res_id_state_index\'') if not cr.fetchone(): cr.execute('CREATE INDEX wkf_instance_res_type_res_id_state_index ON wkf_instance (res_type, res_id, state)') cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'wkf_instance_res_id_wkf_id_index\'') if not cr.fetchone(): cr.execute('CREATE INDEX wkf_instance_res_id_wkf_id_index ON wkf_instance (res_id, wkf_id)') + return res wkf_instance() @@ -174,10 +175,11 @@ class wkf_triggers(osv.osv): 'workitem_id': fields.many2one('workflow.workitem', 'Workitem', required=True, ondelete="cascade"), } def _auto_init(self, cr, context=None): - super(wkf_triggers, self)._auto_init(cr, context) + res = super(wkf_triggers, self)._auto_init(cr, context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'wkf_triggers_res_id_model_index\'') if not cr.fetchone(): cr.execute('CREATE INDEX wkf_triggers_res_id_model_index ON wkf_triggers (res_id, model)') + return res wkf_triggers()