From d1779f0430095ca48c4f8e96d017fb52e7b08da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 10 Aug 2023 15:07:37 +0200 Subject: [PATCH] Reuse get_related_records to search restricted foreign keys --- trytond/trytond/model/modelsql.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/trytond/trytond/model/modelsql.py b/trytond/trytond/model/modelsql.py index aef7fdc795..0641cd74b7 100644 --- a/trytond/trytond/model/modelsql.py +++ b/trytond/trytond/model/modelsql.py @@ -1466,9 +1466,10 @@ class ModelSQL(ModelStorage): where=foreign_red_sql)) related_records = Model.browse([x[0] for x in cursor]) else: - with inactive_records(): + with without_check_access(), inactive_records(): related_records = Model.search( - [(field_name, 'in', sub_ids)]) + [(field_name, 'in', sub_ids)], + order=[]) if Model == cls: related_records = list(set(related_records) - set(records)) return related_records @@ -1493,14 +1494,11 @@ class ModelSQL(ModelStorage): Model.delete(related_records) for Model, field_name in foreign_keys_tocheck: - with without_check_access(), inactive_records(): - if Model.search([ - (field_name, 'in', sub_ids), - ], order=[]): - error_args = Model.__names__(field_name) - raise ForeignKeyError( - gettext('ir.msg_foreign_model_exist', - **error_args)) + if get_related_records(Model, field_name, sub_ids): + error_args = Model.__names__(field_name) + raise ForeignKeyError( + gettext('ir.msg_foreign_model_exist', + **error_args)) super(ModelSQL, cls).delete(list(sub_records))