Bugfixed Partial Import

bzr revid: fp@tinyerp.com-20080820124757-hq1zjhlskph54pva
This commit is contained in:
Fabien Pinckaers 2008-08-20 14:47:57 +02:00
parent 062a9522ce
commit 649c027c16
2 changed files with 17 additions and 10 deletions

View File

@ -594,6 +594,9 @@ class orm_template(object):
done = 0
initial_size = len(datas)
if config.get('import_partial', False) and filename:
data = pickle.load(file(config.get('import_partial')))
original_value = data['files'].get(filename, 0)
counter = 0
while len(datas):
counter += 1
@ -613,7 +616,7 @@ class orm_template(object):
self.write(cr, uid, [id], translate[lang], context2)
if config.get('import_partial', False) and filename and (not (counter%100)) :
data = pickle.load(file(config.get('import_partial')))
data[filename] = initial_size - len(datas) + data.get(filename, 0)
data['files'][filename] = initial_size - len(datas) + original_value
pickle.dump(data, file(config.get('import_partial'),'wb'))
cr.commit()

View File

@ -729,17 +729,20 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init',
reader = csv.reader(input, quotechar='"', delimiter=',')
fields = reader.next()
fname_partial = ""
if config.get('import_partial'):
fname_partial = module + '/'+ fname
if not os.path.isfile(config.get('import_partial')):
pickle.dump({}, file(config.get('import_partial'),'w+'))
data = pickle.load(file(config.get('import_partial')))
if fname_partial in data:
if not data[fname_partial]:
return
else:
for i in range(data[fname_partial]):
reader.next()
pickle.dump({'files':{},'ids':{module:idref}}, file(config.get('import_partial'),'w+'))
else:
data = pickle.load(file(config.get('import_partial')))
if fname_partial in data['files']:
#idref.update(data['ids'][module])
if not data['files'][fname_partial]:
return
else:
for i in range(data['files'][fname_partial]):
reader.next()
if not (mode == 'init' or 'id' in fields):
return
@ -754,7 +757,8 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init',
if config.get('import_partial'):
data = pickle.load(file(config.get('import_partial')))
data[fname_partial] = 0
data['files'][fname_partial] = 0
#data['ids'][module] = idref
pickle.dump(data, file(config.get('import_partial'),'wb'))
#