details: https://code.tryton.org/tryton/commit/76fd590bfdaa
branch: default
user: Cédric Krier <[email protected]>
date: Tue Apr 07 13:39:54 2026 +0200
description:
Delete related resources when deleting records
Closes #14748
diffstat:
trytond/trytond/model/modelstorage.py | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diffs (21 lines):
diff -r 31d0c0660002 -r 76fd590bfdaa trytond/trytond/model/modelstorage.py
--- a/trytond/trytond/model/modelstorage.py Thu Apr 09 19:20:38 2026 +0200
+++ b/trytond/trytond/model/modelstorage.py Tue Apr 07 13:39:54 2026 +0200
@@ -518,11 +518,17 @@
@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()