Daily updates from Odoo
Wednesday, July 22, 2026
8 changes · master
Enhancements to existing features
Embedded views in Knowledge now show the move handle in a more natural position during drag-and-drop interactions. This makes arranging embedded content easier and reduces visual misalignment while editing pages.
Original PR description
This commit adjusts the drag handle position for embedded views to keep the move widget visually aligned with the embedded content during drag interactions. Task-5951196
Printed payslips now include an employee’s departure date when applicable. This gives payroll teams and employees clearer documentation, especially for final payslips and Belgian termination fee reports.
Original PR description
task-6227661
Resolved issues and error corrections
A broken automated checkout test for Mexican point-of-sale invoicing was corrected by adding the missing tax selection step. This helps keep invoice and refund flows reliable during future updates, with no expected change for everyday users.
Original PR description
In this commit: =============== - Fix the failing tour `test_mx_pos_invoice_order_and_refund` due to a missing step for Tax Selection. Error-941398
The WhatsApp identifiers translation file is now properly registered in the translation management configuration. This helps ensure related text can be picked up for translation workflows, reducing the risk of missing translations for users.
Original PR description
pot files must be registered there. See 9966b160972a053e051f2213846acc64d133f2a3 Forward-Port-Of: odoo/enterprise#124076 Forward-Port-Of: odoo/enterprise#124026
This fix ensures the subscription commission test correctly clears currency rate records across companies when demo data is present. It prevents false test failures and helps keep commission calculations reliable in multi-company setups.
Original PR description
Steps to reproduce: 1- Initialize a new database with demo data 2- Run the test `test_sub_commission_no_currency_rate` Issue: `AssertionError: 0 != 10 : Regular invoice, 10 percent of 100` Why this happens: The test used to delete all rows in the res_currency_rate table for the current company only. When we load the database with demo data, the query in `_get_subscription_currency_rates` would find entries for the other companies and wouldn't resort to the default. Later when joining, it would find no rates for the current company and the test fails. runbot-243440 Forward-Port-Of: odoo/enterprise#123971 Forward-Port-Of: odoo/enterprise#116197
Code cleanup and technical improvements
Spreadsheet autofill behavior was adapted to align with recent internal spreadsheet engine changes. This keeps list and pivot autofill working consistently while reducing unnecessary formula processing, with no expected user-facing workflow changes.
Original PR description
The o-spreadsheet commit transformed the autofill plugin into a store. This made the necessary adaptations in odoo. Moslty, the list/pivot autofill plugin were changed into helpers that can be called from the autofill process (they had no state nor command handling). Also changed a bit the autofill helpers so we don't re-compile the cell formula when we already have a compiled formula. Task: 6395361
This update streamlines how several Odoo Enterprise features access shared internal services. It should make the codebase easier to maintain and reduce future development risk, with little to no visible change for end users.
Original PR description
This commit reduces number of `env.services` occurence by replacing them by `useService` or `plugin`. Some handlers/providers are now scoped to be able to call these hooks and `useService` is now also scope dependent instead of component dependent.
The VoIP softphone search bar was updated to use newer internal interface tools, keeping the user experience the same while improving maintainability. Existing checks confirm the search field still focuses correctly when reopening the softphone or switching tabs.
Original PR description
Replaces two `useLayoutEffect` calls in `SearchBar` with OWL3 native APIs (`useEffect`, `computed`, `signal`) The useLayoutEffect refactored in this PR had test coverage — below are some tests that failed when the effect was commented out, and are now passing: - @voip/softphone/softphone/Search bar is focused after reopen the softphone. - @voip/softphone/softphone/Search bar is focused after switching to a tab with search bar. see commented-out runbot build: https://runbot.odoo.com/runbot/batch/2622059/build/116410158