Friday, September 11, 2026
5 changes · 18.0
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
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