Daily updates from Odoo
Sunday, July 26, 2026
4 changes · master
Resolved issues and error corrections
This fixes an error that could appear when editing analytic distribution information on an employee after analytic accounting was enabled. The change prevents unsupported change tracking on that field, helping HR/payroll users update employee accounting details reliably.
Original PR description
This commit partially reverts [1] To reproduce the issue: 1. Enable analytic accounting 2. Try to edit the analytic distribution field on an Employee Error: a traceback appears Commit [1] makes a JSON field tracked, which is forbidden: https://github.com/odoo/odoo/blob/2aa35eb9c7a709126dca65e81ca6e823706fbb19/addons/mail/models/mail_tracking_value.py#L172 We cancel the tracking part of [1] so the production versions will follow the code on master: the field `analytic_distribution` will be both whitelisted and untracked (as done by [2]): https://github.com/odoo/enterprise/blob/84112a92c3e06f4975e2fa68b6c8876430ecb3e5/hr_payroll_account/models/hr_version.py#L9-L15 [1] https://github.com/odoo/enterprise/commit/88a3e70bba20c2d508f8970d31ce6ee7afd11ee4 [2] https://github.com/odoo/enterprise/commit/55bec464e3861d5023f7e78588142ddc22d500d8 opw-6405122 opw-6416523 opw-6412398 opw-6411399 opw-... Forward-Port-Of: odoo/enterprise#125135
SMS messages in marketing automation are now marked as sent when delivery reports confirm they were sent. This improves campaign status tracking and helps teams rely on more accurate SMS delivery information.
Uruguayan electronic credit notes for original e-Tickets with a 0.00 total now keep the required reference amount in the submission. This prevents DGI rejection of valid zero-value credit notes and helps businesses issue compliant corrections without manual workarounds.
Original PR description
Problem: When generating an e-Ticket Credit Note for an original e-Ticket with a total amount of 0.00, the XML cleanup mechanism removes reference fields whose value is 0.00. As a result, the credit note is rejected by DGI with: "CODE 31: En línea de Referencia 1 si NO IndGlobal = 1 deben existir TpoDocRef, Serie, NroCFERef, MntCFERef, TpoMonedaRef." Solution: Ensure that MntCFERef is sent even if the value is 0.00. opw-6378783 Forward-Port-Of: odoo/enterprise#124595 Forward-Port-Of: odoo/enterprise#124354
Accounting reports now correctly recognize when no report section has been opened yet. This prevents the interface from relying on an incorrect empty-state check, helping report navigation behave as expected.
Original PR description
**Root Cause:**
At [1], the condition `this.lastOpenedSectionByReport === {}` always
return `false` because JavaScript compares objects by reference
rather than by value. As a result, the code never detects when
`lastOpenedSectionByReport` is empty.
**Fix:**
This commit ensures the code correctly detects an empty
`lastOpenedSectionByReport` object.
[1]:
https://github.com/odoo/enterprise/blob/ae4b461edb1d6b49c25d4e264380e7ae4b67f10c/account_reports/static/src/components/account_report/controller.js#L50
**No task ID**
Forward-Port-Of: odoo/enterprise#125325
Forward-Port-Of: odoo/enterprise#124223