Fix error in convert.py when removing records of a model that no longer exists.

Fix error in convert.py when an upgrade needs to remove records of a model
which no longer exists.

issue2496
review283003
This commit is contained in:
Albert Cervera i Areny committed 2012-03-17 12:46:56 +01:00
1 parent d633e53526
commit fdad39babc
1 file changed
+13 -3
+13 -3
View File
@@ -354,8 +354,12 @@ class Fs2bdAccessor:
record_ids.setdefault(rec.model, [])
record_ids[rec.model].append(rec.db_id)
object_name_list = set(self.pool.object_name_list())
self.browserecord[module] = {}
for model_name in record_ids.keys():
if model_name not in object_name_list:
continue
model_obj = self.pool.get(model_name)
self.browserecord[module][model_name] = {}
for i in range(0, len(record_ids[model_name]), cursor.IN_MAX):
@@ -798,6 +802,7 @@ def post_import(pool, module, to_delete):
('module', '=', module),
], order=[('id', 'DESC')])
object_name_list = set(pool.object_name_list())
for mrec in modeldata_obj.browse(mdata_ids):
mdata_id, model, db_id = mrec.id, mrec.model, mrec.db_id
@@ -847,9 +852,14 @@ def post_import(pool, module, to_delete):
'Deleting %s@%s' % (db_id, model))
try:
# Deletion of the record
model_obj = pool.get(model)
model_obj.delete(db_id)
mdata_delete.append(mdata_id)
if model in object_name_list:
model_obj = pool.get(model)
model_obj.delete(db_id)
mdata_delete.append(mdata_id)
else:
logging.getLogger("convert").warning(
'Could not delete id %d of model %s because model no '
'longer exists.' % (db_id, model))
cursor.commit()
except Exception:
cursor.rollback()