From 01f3f06da132e9ea609a44aab26223e3ec391c17 Mon Sep 17 00:00:00 2001 From: "Nimesh (Open ERP)" Date: Thu, 22 Dec 2011 15:27:06 +0530 Subject: [PATCH] [FIX] base_syncho problem. bzr revid: nco@tinyerp.com-20111222095706-i1kz7geovievt91q --- addons/base_synchro/wizard/base_synchro.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/addons/base_synchro/wizard/base_synchro.py b/addons/base_synchro/wizard/base_synchro.py index bc16b558ce5..1192c7768ff 100644 --- a/addons/base_synchro/wizard/base_synchro.py +++ b/addons/base_synchro/wizard/base_synchro.py @@ -191,20 +191,23 @@ class base_synchro(osv.osv_memory): if not object in self.meta[pool_src]: self.meta[pool_src][object] = pool_src.get(object).fields_get(cr, uid) fields = self.meta[pool_src][object] - for f in fields: if f not in data: continue ftype = fields[f]['type'] - if ftype in ('function', 'one2many', 'one2one'): del data[f] + elif ftype == 'many2one': - if data[f]: - df = self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], data[f][0], action, context=context) - data[f] = df - if not data[f]: - del data[f] + if (isinstance(data[f], list)) and data[f]: + fdata = data[f][0] + else: + fdata = data[f] + df = self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], fdata, action, context=context) + data[f] = df + if not data[f]: + del data[f] + elif ftype == 'many2many': res = map(lambda x: self.relation_transform(cr, uid, pool_src, pool_dest, fields[f]['relation'], x, action, context), data[f]) data[f] = [(6, 0, res)]