summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavi Gohil (OpenERP) <rgo@tinyerp.com>2014-05-06 11:58:00 +0530
committerRavi Gohil (OpenERP) <rgo@tinyerp.com>2014-05-06 11:58:00 +0530
commit1aaebff05fa0f90d27c15afdf58b7fb5ebda4f6d (patch)
treeaeb58c6f09fa1dd49cbbdd38a07f3b4e56b97a95
parent188930bb01e93d7d142d19c2ac171814257347dc (diff)
parent166b8efabb7497ab3ee7bd9bfbd294ad08833d49 (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.py6
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):