details:   https://code.tryton.org/tryton/commit/a6bf77d9ab27
branch:    7.6
user:      Cédric Krier <[email protected]>
date:      Tue Dec 23 09:55:34 2025 +0100
description:
        Log event using the transaction of the records

        Closes #14446
        (grafted from 26a0e633cca7b48c7a585f9687af279edd2900b5)
diffstat:

 trytond/trytond/model/modelstorage.py |  18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diffs (28 lines):

diff -r bbd94e258ead -r a6bf77d9ab27 trytond/trytond/model/modelstorage.py
--- a/trytond/trytond/model/modelstorage.py     Wed Dec 17 16:13:44 2025 +0100
+++ b/trytond/trytond/model/modelstorage.py     Tue Dec 23 09:55:34 2025 +0100
@@ -236,14 +236,16 @@
             return
         pool = Pool()
         Log = pool.get('ir.model.log')
-        transaction = Transaction()
-        if user is None:
-            user = transaction.user
-        for record in records:
-            assert record.id >= 0
-            transaction.log_records.append(Log(
-                    resource=record, event=event, target=target, user=user,
-                    **extra))
+        for transaction, sub_records in groupby(
+                records, lambda r: r._transaction):
+            with Transaction().set_current_transaction(transaction):
+                if user is None:
+                    user = transaction.user
+                for record in records:
+                    assert record.id >= 0
+                    transaction.log_records.append(Log(
+                            resource=record, event=event, target=target,
+                            user=user, **extra))
 
     @classmethod
     def preprocess_values(cls, mode, values):

Reply via email to