summaryrefslogtreecommitdiff
path: root/addons/import_base/import_framework.py
diff options
context:
space:
mode:
authortfr@openerp.com <>2011-05-25 17:57:44 +0200
committertfr@openerp.com <>2011-05-25 17:57:44 +0200
commitddf020103e5f7403d0b3f468fbfd414f0a746c92 (patch)
treedbce4b48ce63b07757145a3e381f65f604be0c9d /addons/import_base/import_framework.py
parent5d251c741faf139301d3c626ca1753d225fbd15f (diff)
[FIX] self dependencies
bzr revid: tfr@openerp.com-20110525155744-zw7odokw76ngvz38
Diffstat (limited to 'addons/import_base/import_framework.py')
-rw-r--r--addons/import_base/import_framework.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/addons/import_base/import_framework.py b/addons/import_base/import_framework.py
index 385e86ee847..6380af7736a 100644
--- a/addons/import_base/import_framework.py
+++ b/addons/import_base/import_framework.py
@@ -126,7 +126,7 @@ class import_framework(Thread):
res = hook(val)
if res:
final_data.append(res)
- return self._save_data(model, map, final_data, table)
+ return self._save_data(model, dict(map), final_data, table)
def _save_data(self, model, mapping, datas, table):
"""
@@ -143,14 +143,16 @@ class import_framework(Thread):
return
mapping['id'] = 'id_new'
res = []
+
+
+ self_dependencies = []
+ for k in mapping.keys():
+ if '_parent' in k:
+ self_dependencies.append((k[:-7], mapping.pop(k)))
+
for data in datas:
-
- self_dependencies = []
- for k in mapping.keys():
- if '_parent' in k:
- self_dependencies.append(k[:-7])
- field_name = mapping.pop(k)
- data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table)
+ for k, field_name in self_dependencies:
+ data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table)
data['id_new'] = self._generate_xml_id(data['id'], table)
fields, values = self._fields_mapp(data, mapping, table)
@@ -161,7 +163,7 @@ class import_framework(Thread):
raise ValueError("%s is not a valid model name" % model)
(p, r, warning, s) = model_obj.import_data(self.cr, self.uid, fields, res, mode='update', current_module=self.module_name, noupdate=True, context=self.context)
- for field in self_dependencies:
+ for (field, field_name) in self_dependencies:
self._import_self_dependencies(model_obj, field, datas)
return (len(res), warning)
@@ -176,8 +178,8 @@ class import_framework(Thread):
"""
fields = ['id', parent_field]
for data in datas:
- if data.get(parent_field + '_parent'):
- values = [data['id_new'], data[parent_field + '_parent']]
+ if data.get(parent_field):
+ values = [data['id_new'], data[parent_field]]
obj.import_data(self.cr, self.uid, fields, [values], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
def _preprocess_mapping(self, mapping):