From 1c98320ccc03e240d52ef077706a80f9d4983cfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Mon, 16 Mar 2026 18:42:56 +0100 Subject: [PATCH] Call on_modification on each Model with a replaced party Closes #14684 --- modules/party/party.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/party/party.py b/modules/party/party.py index e42df6a880..ac7beff344 100644 --- a/modules/party/party.py +++ b/modules/party/party.py @@ -3,6 +3,7 @@ import logging import re +from collections import defaultdict import stdnum.exceptions from sql import Column, Literal @@ -1136,6 +1137,7 @@ class Replace(Wizard): 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 @@ class Replace(Wizard): 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