summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openerp/tools/convert.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py
index 6827ad68fcf..e711e3828e3 100644
--- a/openerp/tools/convert.py
+++ b/openerp/tools/convert.py
@@ -195,6 +195,11 @@ def _eval_xml(self, node, env):
elif node.tag == "test":
return node.text
+
+def str2bool(value):
+ return value.lower() not in ('0', 'false', 'off')
+
+
class xml_import(object):
@staticmethod
@@ -204,7 +209,7 @@ class xml_import(object):
val = node.get(attr).strip()
if not val:
return default
- return val.lower() not in ('0', 'false', 'off')
+ return str2bool(val)
def isnoupdate(self, data_node=None):
return self.noupdate or (len(data_node) and self.nodeattr2bool(data_node, 'noupdate', False))
@@ -701,6 +706,8 @@ form: module.record_id""" % (xml_id,)
f_val = int(f_val)
elif model._fields[f_name].type in ['float', 'monetary']:
f_val = float(f_val)
+ elif model._fields[f_name].type == 'boolean' and isinstance(f_val, basestring):
+ f_val = str2bool(f_val)
res[f_name] = f_val
id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)