From eb0cb933efba12802791f753fe34fb15b0186814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 7 Apr 2026 13:39:54 +0200 Subject: [PATCH] Delete related resources when deleting records Closes #14748 --- trytond/trytond/model/modelstorage.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trytond/trytond/model/modelstorage.py b/trytond/trytond/model/modelstorage.py index cd7187b0aa..3bc6be796f 100644 --- a/trytond/trytond/model/modelstorage.py +++ b/trytond/trytond/model/modelstorage.py @@ -518,11 +518,17 @@ class ModelStorage(Model): @classmethod @without_check_access def _after_delete(cls, ids, on_delete): + from trytond.ir.resource import ResourceMixin pool = Pool() Translation = pool.get('ir.translation') if any(getattr(f, 'translate', False) and not hasattr(f, 'set') for f in cls._fields.values()): Translation.delete_ids(cls.__name__, 'model', ids) + resource_models = ( + m for _, m in pool.iterobject() if issubclass(m, ResourceMixin)) + resources = [f'{cls.__name__},{id}' for id in ids] + for model in resource_models: + model.delete(model.search([('resource', 'in', resources)])) for meth in on_delete: meth()