diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index c36376ba1b7..82e281642c9 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -366,14 +366,17 @@ class YamlInterpreter(object): fields = fields or {} def process_val(key, val): - if fg[key]['type']=='many2one': + if fg[key]['type'] == 'many2one': if type(val) in (tuple,list): val = val[0] - elif (fg[key]['type']=='one2many'): - if val is False: - val = [] - if len(val) and type(val[0]) == dict: + elif fg[key]['type'] == 'one2many': + if val and isinstance(val,(list,tuple)) and \ + isinstance(val[0], dict): val = map(lambda x: (0,0,x), val) + elif fg[key]['type'] == 'many2many': + if val and isinstance(val,(list,tuple)) and \ + isinstance(val[0], (int,long)): + val = [(6,0,val)] return val # Process all on_change calls