details: https://code.tryton.org/tryton/commit/c54d776d9f27
branch: default
user: Nicolas Évrard <[email protected]>
date: Mon Mar 16 18:42:56 2026 +0100
description:
Call on_modification on each Model with a replaced party
Closes #14684
diffstat:
modules/party/party.py | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diffs (32 lines):
diff -r 85d1f87af225 -r c54d776d9f27 modules/party/party.py
--- a/modules/party/party.py Tue Mar 31 13:51:29 2026 +0200
+++ b/modules/party/party.py Mon Mar 16 18:42:56 2026 +0100
@@ -3,6 +3,7 @@
import logging
import re
+from collections import defaultdict
import stdnum.exceptions
from sql import Column, Literal
@@ -1136,6 +1137,7 @@
source.active = False
source.save()
+ models_changed = defaultdict(list)
cursor = transaction.connection.cursor()
for model_name, field_name in self.fields_to_replace():
Model = pool.get(model_name)
@@ -1167,6 +1169,12 @@
ids = [x[0] for x in cursor]
Model._insert_history(ids)
+ models_changed[Model].append((field_name, ids))
+
+ for Model, modified_fields in models_changed.items():
+ for field_name, ids in modified_fields:
+ Model.on_modification('write', Model.browse(ids), {field_name})
+
return 'end'
@classmethod