From 05b1ef36b85b8b7dea175d9637610af907e4219e Mon Sep 17 00:00:00 2001 From: "DHS (OpenERP)" Date: Tue, 19 Jun 2012 18:18:49 +0530 Subject: [PATCH 1/3] [yaml_import] : For many2many field default value not stored (case : 574360) bzr revid: dhs@tinyerp.com-20120619124849-ilnzi9r994hob5go --- openerp/tools/yaml_import.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index c36376ba1b7..1f713da1fa0 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -374,6 +374,11 @@ class YamlInterpreter(object): val = [] if len(val) and type(val[0]) == dict: val = map(lambda x: (0,0,x), val) + elif (fg[key]['type']=='many2many'): + if val is False: + val = [] + if len(val): + val = map (lambda x: [6,0,[x]], val) return val # Process all on_change calls From a320a72cf84fde4fb3ae56c18b3815346f57e020 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Thu, 21 Jun 2012 13:05:32 +0200 Subject: [PATCH 2/3] [FIX] yaml_import: fix incorrect m2m default handling from previous commit bzr revid: odo@openerp.com-20120621110532-fsi7hz8fllnlab07 --- openerp/tools/yaml_import.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 1f713da1fa0..767fa505b9f 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -366,19 +366,16 @@ 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 = [] + elif fg[key]['type'] == 'one2many': if len(val) and type(val[0]) == dict: val = map(lambda x: (0,0,x), val) - elif (fg[key]['type']=='many2many'): - if val is False: - val = [] - if len(val): - val = map (lambda x: [6,0,[x]], val) + elif fg[key]['type'] == 'many2many': + if val and isinstance(val,(list,tuple)): + if isinstance(val[0], (int,long)): + val = [(6,0,val)] return val # Process all on_change calls From e3f997c44de9161d6d3a6b908c7d03e64d302b6c Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 25 Jun 2012 16:40:13 +0200 Subject: [PATCH 3/3] [FIX] yaml_import: support False as a o2m default value bzr revid: odo@openerp.com-20120625144013-r6j6zabaap6739gf --- openerp/tools/yaml_import.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 767fa505b9f..82e281642c9 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -370,11 +370,12 @@ class YamlInterpreter(object): if type(val) in (tuple,list): val = val[0] elif fg[key]['type'] == 'one2many': - if len(val) and type(val[0]) == dict: + 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)): - if isinstance(val[0], (int,long)): + if val and isinstance(val,(list,tuple)) and \ + isinstance(val[0], (int,long)): val = [(6,0,val)] return val