From 46b6e03c3d69b9dc3d2c1b298be6312f07467266 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 12 Oct 2017 11:50:10 +0200 Subject: [PATCH] Revert "[IMP] disable recomputation during import" This reverts commit efce253d54e08519039198aea7fcc93fad263055. --- base_import_odoo/README.rst | 1 + .../models/import_odoo_database.py | 22 +++++-------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/base_import_odoo/README.rst b/base_import_odoo/README.rst index 96ebe8538..3ff3d68b6 100644 --- a/base_import_odoo/README.rst +++ b/base_import_odoo/README.rst @@ -56,6 +56,7 @@ Known issues / Roadmap * Yes of course this duplicates a lot of connector functionality. Rewrite this with the connector framework, probably collaborate with https://github.com/OCA/connector-odoo2odoo * Do something with workflows * Support reference fields, while being at it refactor _run_import_map_values to call a function per field type +* Probably it's safer and faster to disable recomputation during import, and recompute all fields afterwards Bug Tracker =========== diff --git a/base_import_odoo/models/import_odoo_database.py b/base_import_odoo/models/import_odoo_database.py index 0ffda50b1..684bf0fbc 100644 --- a/base_import_odoo/models/import_odoo_database.py +++ b/base_import_odoo/models/import_odoo_database.py @@ -160,7 +160,6 @@ class ImportOdooDatabase(models.Model): """Import records of a configured model""" model = self.env[context.model_line.model_id.model] fields = self._run_import_model_get_fields(context) - recompute_ids = [] for data in context.remote.execute( model._name, 'read', context.ids, fields.keys() ): @@ -171,16 +170,9 @@ class ImportOdooDatabase(models.Model): data = self._run_import_map_values(context, data) _id = data['id'] record = self._create_record(context, model, data) - recompute_ids.append(record.id) self._run_import_model_cleanup_dummies( context, model, _id, record.id, ) - to_recompute = model.browse(recompute_ids) - for field in model._fields.values(): - if not field.compute: - continue - to_recompute._recompute_todo(field) - to_recompute.recompute() @api.multi def _create_record(self, context, model, record): @@ -191,15 +183,13 @@ class ImportOdooDatabase(models.Model): ) if self.env.ref('base_import_odoo.%s' % xmlid, False): new = self.env.ref('base_import_odoo.%s' % xmlid) - with self.env.norecompute(): - new.with_context( - **self._create_record_context(model, record) - ).write(record) + new.with_context( + **self._create_record_context(model, record) + ).write(record) else: - with self.env.norecompute(): - new = model.with_context( - **self._create_record_context(model, record) - ).create(record) + new = model.with_context( + **self._create_record_context(model, record) + ).create(record) self.env['ir.model.data'].create({ 'name': xmlid, 'model': model._name,