diff options
| author | Ravi Gohil (OpenERP) <rgo@tinyerp.com> | 2014-05-06 11:58:00 +0530 |
|---|---|---|
| committer | Ravi Gohil (OpenERP) <rgo@tinyerp.com> | 2014-05-06 11:58:00 +0530 |
| commit | 1aaebff05fa0f90d27c15afdf58b7fb5ebda4f6d (patch) | |
| tree | aeb58c6f09fa1dd49cbbdd38a07f3b4e56b97a95 | |
| parent | 188930bb01e93d7d142d19c2ac171814257347dc (diff) | |
| parent | 166b8efabb7497ab3ee7bd9bfbd294ad08833d49 (diff) | |
[FIX] Modifying default value for other than char/string/selection fields from 'Setting/Technical/Actions/User-defined Defaults' view sets wrong pickle value for respective record. (Maintenance Case: 607398)
lp bug: https://launchpad.net/bugs/1153628 fixed
bzr revid: rgo@tinyerp.com-20140506062800-231wt7bk7sbzet6y
| -rw-r--r-- | openerp/addons/base/ir/ir_values.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/openerp/addons/base/ir/ir_values.py b/openerp/addons/base/ir/ir_values.py index 18ced2d1e20..7a92e2cec6a 100644 --- a/openerp/addons/base/ir/ir_values.py +++ b/openerp/addons/base/ir/ir_values.py @@ -22,6 +22,7 @@ import pickle from openerp.osv import osv, fields from openerp.osv.orm import except_orm +from openerp.tools.safe_eval import safe_eval as eval EXCLUDED_FIELDS = set(( 'report_sxw_content', 'report_rml_content', 'report_sxw', 'report_rml', @@ -121,7 +122,10 @@ class ir_values(osv.osv): record = self.browse(cursor, user, id, context=context) if record.key == 'default': # default values are pickled on the fly - value = pickle.dumps(value) + try: + value = isinstance(value, (str, unicode)) and pickle.dumps(eval(value)) or pickle.dumps(value) + except Exception: + value = pickle.dumps(value) self.write(cursor, user, id, {name[:-9]: value}, context=ctx) def onchange_object_id(self, cr, uid, ids, object_id, context=None): |
