From 690f3757a3d606b4e44e09077d53b374c37a49a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 28 Apr 2025 10:49:34 +0200 Subject: [PATCH] Process on a copy of imported data The process_lines of ModelStorage.import_data pop rows when importing One2Many. But if the transaction has to be restarted for example if a lock is needed, the original data from the request has been altered for the second call losing some or all the data to be imported. Closes #13984 (grafted from 2cb96c1427d7c0edcb1c9b5b410e220db3f8958e) --HG-- branch : 7.0 --- trytond/trytond/model/modelstorage.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/trytond/trytond/model/modelstorage.py b/trytond/trytond/model/modelstorage.py index f0e6279315..51cb859291 100644 --- a/trytond/trytond/model/modelstorage.py +++ b/trytond/trytond/model/modelstorage.py @@ -1113,7 +1113,8 @@ class ModelStorage(Model): to_create, to_create_translations = [], [] to_write, to_write_translations = [], [] languages = set() - while len(data): + data = data.copy() + while data: (row, _, translate) = \ process_lines(data, [], fields_def) if dispatch(to_create, to_write, row):