Friday, September 11, 2026
8 changes · 18.0
Enhancements to existing features
The Belgian CODA Clean module now records clearer information when importing CODA bank files. This helps support teams diagnose import issues faster, reducing investigation time when customers report problems.
Original PR description
This commit will improve the logs of _l10n_be_codaclean_import_coda_files to help the support team to debug possible problem. task-5436868
This update makes log entries show the actual system time instead of simulated test time when faketime is used. This helps teams read runbot logs more accurately and analyze how long long-running tests really took, while keeping the simulated timestamp available separately if needed.
Original PR description
When using faketime the logs are not showing the real time but the faketime one which can be confusing when listed in the runbot interface. Before the usage of the JSONFormatter, the logs were using the PostgreSQL time, which is the real time. This restores the previous behaviour. Having the faked time oustide JsonFromater is also painful: long running faketimed tests end up with most of their logs stamped to nearly the same real date, preventing any analysis of execution time based on the logs. One drawback of this change is the inability to identify at first sight whether a log was faketimed or not, but at this point it is just a tradeoff, and the faked_created field on the record still allows getting this info if needed. Forward-Port-Of: odoo/odoo#287159
Resolved issues and error corrections
Merging helpdesk tickets now keeps the sales order item on related timesheets aligned with the destination ticket. This prevents billing or service tracking inconsistencies when tickets with different sales items are combined.
Original PR description
Currently when you merge helpdesk tickets with differing sale order items, the sales order item listed on the timesheets of the source ticket is not updated to match the destination ticket's sales order item. This PR ensures uniformity bugfix-6473396 Forward-Port-Of: odoo/enterprise#129060
Documentation and clarification updates
Brendon Ignath has signed the Odoo Individual Contributor License Agreement. This is a legal documentation update that allows their contributions to be accepted under Odoo's contributor terms, with no effect on product functionality.
Original PR description
Signing the Odoo Individual Contributor License Agreement v1.0.
This change fixes an unreliable automated test in Odoo's messaging area that could fail even when the product behavior was correct. It helps keep validation runs stable, reducing false alarms during releases and maintenance.
Original PR description
Backport of 9a8f127a6c9a (odoo/odoo#280680), currently on saas-19.4 and on master (6da9738c26e2). Before this commit, the discuss test "Message shows up even if channel data is incomplete" failed on runbot with "Websocket subscription not received.". This happens because waitUntilSubscribe() only resolves on a subscription received after it is called, and the test calls it after running all timers. The forced channel update is debounced, so that timer run sends the subscription, and the wait then times out. This commit calls waitUntilSubscribe() before forcing the channel update, so the subscription that update sends resolves the wait. https://runbot.odoo.com/odoo/error/947146
This fix prevents the Chilean electronic invoicing status check from failing when the tax authority returns an empty response. Scheduled processing can now continue instead of being interrupted by an error.
Original PR description
When checking the status of a DTE, sometimes the response will have no `text`. This causes a traceback error that halts execution of the cron `cron_run_sii_workflow`. opw-6322106 Forward-Port-Of: odoo/enterprise#129582
This fixes an issue in the HTML editor where clicking at the end of text inside a button moved the cursor outside the button. Users can now place the cursor correctly within button content, making button text editing smoother and less frustrating.
Original PR description
Problem: When trying to place the caret at the end of a button's content with the mouse, the caret always moves outside of the button instead of staying inside it. Cause: This happens because of the previous commit https://github.com/odoo-dev/odoo/commit/c8e93dbc806b5ea511cce695afbc9e81e30a1ca9 (which aimed to fix placing the caret after a link when at the end of a paragraph in the editable), which was not fixing the issue properly. Solution: Check if the click happens at the end of a link and the caret will move inside the link then manually place the selection after the link. Steps to reproduce: - Add a button with one character. - Try to put selection after that character. - Selection always jumps after the button. opw-6499237 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where tiny timestamp differences could cause the same employee workday to be treated as separate days during overtime calculations. It helps prevent duplicate overtime records and keeps attendance processing reliable.
Original PR description
When an attendance check-out contains microseconds while its check-in does not, _get_day_start_and_day() preserves those microseconds while normalizing the time. This can produce two different grouping keys for the same employee day and make overtime recomputation attempt duplicate (employee_id, date) records. Normalize the day start completely before using it as a grouping key. A regression test covers an attendance whose check-in and check-out differ in microsecond precision. Fixes #280573