From b38bb01a6f74648b270f54ede133a595e130d444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 22 Apr 2023 18:29:44 +0200 Subject: [PATCH] Do not update related records by foreign key if they are going to be deleted Closes #3689 (grafted from a99b53347ecf5f6ffaff45b62086209b61e7ab72) --HG-- branch : 6.0 --- trytond/trytond/model/modelsql.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/trytond/trytond/model/modelsql.py b/trytond/trytond/model/modelsql.py index da1721d143..f843dc0f59 100644 --- a/trytond/trytond/model/modelsql.py +++ b/trytond/trytond/model/modelsql.py @@ -1129,11 +1129,14 @@ class ModelSQL(ModelStorage): Column(foreign_table, field_name), sub_ids) cursor.execute(*foreign_table.select(foreign_table.id, where=foreign_red_sql)) - records = Model.browse([x[0] for x in cursor]) + related_records = Model.browse([x[0] for x in cursor]) else: with transaction.set_context(active_test=False): - records = Model.search([(field_name, 'in', sub_ids)]) - return records + related_records = Model.search( + [(field_name, 'in', sub_ids)]) + if Model == cls: + related_records = list(set(related_records) - set(records)) + return related_records for sub_ids, sub_records in zip( grouped_slice(ids), grouped_slice(records)):