Daily updates from Odoo
Tuesday, July 14, 2026
28 changes · master
Enhancements to existing features
Payroll users can now search rule parameters using the parameter value, not just the name or code. This makes it easier to find the right payroll setting when users know the amount or value, including older stored values.
Original PR description
Users often know the exact value of a payroll parameter but not its name or code. This adds a search field on the rule parameter search view targeting the related values, enabling lookups across both current and old values. Task: 6365318
Several apps were updated to use the newer Material Symbols icon style instead of the older FontAwesome setup. This keeps icons displaying correctly across screens such as appointments, documents, knowledge, rooms, sign, studio, website appointments, rentals, and live chat after the platform-wide icon change.
Original PR description
This is the minimal migration required for odoo/odoo#273606 to work. task-5901783
Full-week payroll calendars for several localizations are now provided as demo examples instead of standard setup data to align with new calendar rules. Hong Kong company defaults are adjusted so new companies still get an equivalent working calendar where needed.
Original PR description
In odoo/odoo#267961, we are disallowing the use of time types linked to a country on a resource calendar without a company. This commit aims at moving some calendars that had such time types from the data to demo. task-6298866
The Mexican electronic invoicing report template was adjusted to stay compatible with the updated main invoice template. This helps ensure localized invoice documents continue to render correctly after the template change.
Original PR description
Adjusting Enterprise l10n templates to work with updated main template. task-6152210
The Peppol settings section now appears at the top of the relevant settings page. This makes it easier for users to find and configure Peppol-related options without scrolling through other settings first.
Original PR description
Peppol block was moved to the top of the page task-5977363
Dark mode color choices in the color list have been adjusted to make them clearer and more consistent. This helps users better distinguish colors while keeping the interface aligned with recent visual updates.
Original PR description
this commit applies some small changes to the colorlist dark mode colors for clarity purpose and fit with the new color added in https://github.com/odoo/odoo/pull/189689 task-4384898
The Planning mobile resource view now shows an employee photo for people and a tool icon for material resources. This makes it easier for users to quickly identify the right resource while planning on a mobile device.
Original PR description
planning mobile view improvement - displayed picture of the employee if resource type is human on the resource kanban view. - displayed tool icon if resource type is material on the resource kanban view task-3770245
Spreadsheet screen display and scrolling behavior were reorganized to use a shared store, making the experience more consistent across comments, lists, pivots, history, and sales field sync features. This is mostly an internal improvement that should help maintain reliability while preserving expected user behavior.
Original PR description
The `SheetViewPlugin` and the viewport handling was moved into a store rather than a plugin. This commit make the necessary changes to odoo. Task: [6314784](https://www.odoo.com/web#id=6314784&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Payment token records for SEPA Direct Debit now show the linked mandate directly on the form. This makes it easier for staff to verify the authorization behind a saved payment method without navigating elsewhere.
Original PR description
Add sdd_mandate_id on the payment token form. See https://github.com/odoo/odoo/pull/268220 task-6251341
An unused repair-related view and action were removed from the planning field service repair module. This cleans up the application internals and reduces maintenance overhead without changing the visible user experience.
Original PR description
Currently, action_open_reference_no_repair is not called anywhere, so the view remains unused. Therefore, this commit removes the unused view.
Uzbekistan financial reports now include Russian translations alongside Uzbek. This helps companies operating in Uzbekistan serve Russian-speaking users and improves adoption in the local market.
Original PR description
Uzbekistan's business environment requires Russian in addition to the official Uzbek language to ensure adoption. While localizations typically activate only statutory languages, Central Asian market realities justify this exception. task-6229114 -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#122901 Forward-Port-Of: odoo/enterprise#120250
Product availability checks for rentals and subscriptions are now handled through one shared purchase rule instead of several separate checks. This makes product filtering and add-to-cart behavior more consistent and easier to maintain, reducing the risk of mismatched storefront behavior.
Original PR description
Replace the ad-hoc _website_show_quick_add / _is_add_to_cart_allowed / _can_be_added_to_current_cart / _website_can_be_added overrides with a single override of _is_purchasable() in both modules, removing website_sale_subscription/models/product_product.py entirely. Community PR: - https://github.com/odoo/odoo/pull/252296 task-5491803
Resolved issues and error corrections
Corrects where initialization is applied in the Spanish reports module after a previous change placed it on the wrong field. This helps ensure the related reporting data is prepared correctly without changing user workflows.
Original PR description
https://github.com/odoo/enterprise/pull/118398/ moved the initialization code on the wrong field. Moving it where needed.
Dimona status updates now only apply to companies registered in Belgium. This prevents non-Belgian companies from seeing irrelevant payroll messages when contract start dates are set.
Original PR description
The Dimona status "To Do" appeared in the chatter for non-Belgian companies when setting a contract start date. This commit restricts the Dimona field updates and automated action hooks to companies with the 'BE' country code. task-6344781
The Belgian payroll warning for part-time employees now displays minimum wage amounts with the intended number of decimal places. This makes the warning easier to read and avoids confusion caused by overly long numbers.
Original PR description
For part-time employees, the minimum wage in the warning message shows too many numbers after the virgule. This fixes the message to display exactly two decimals. task-6375081
This update adds the Belgian CODA extension number entry to the translation configuration. It helps ensure this localization component can be handled properly by the translation system, with no expected direct impact on daily users.
Original PR description
This commit will add l10n_be_coda_extension_number in the weblate json file. no task id Forward-Port-Of: odoo/enterprise#124053
Unanswered outgoing VoIP calls, such as rejected or cancelled calls, now clean up the automatic follow-up activity they created. This keeps record chatter cleaner and prevents users from seeing stale call tasks that no longer need action.
Original PR description
…calls When placing an outgoing call from a phone field on a record, an automated activity is created in the chatter and expected to be mark as done and archived after call ends. If the call is not answered (rejected or aborted), the activity stays in the chatter, which is not what we want. Add a `_cleanup_automated_activity` helper that deletes automated activities linked to calls reaching a non-ongoing terminal state. Also remove the explicit `automated=False` override in `_create_call_activity` so these activities correctly default to `automated=True`.
This fix prevents an internal translation marker from being sent to the browser when views are loaded. It keeps the data delivered to users cleaner and avoids unnecessary or confusing technical details being exposed in the client interface.
Original PR description
Before this commit the directive "t-translation" was transmitted to the client. This made little sense as: - the `get_view` method already yields the translated version of a View - views of type other than qweb are not Qweb, so t-translation is not meaningful when fetching them - views are never used as is. They are parsed or compiled, so chances are OWL (which can deal with t-translation) never sees the colour of that attribute After this commit, t-translation directive are not sent to the client when asked via get_view
Users can no longer save an IoT report printer configuration without choosing an actual printer device. This prevents failed print jobs later by catching incomplete setup during configuration.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/273723 Before this commit, you could configure an IoT report printer but not select any IoT printer device, which would cause printing to fail later on. After this commit, the field is required so the user must select a printer device before saving. task-6333695 Forward-Port-Of: odoo/enterprise#122652
This fixes an internal Swiss payroll test so it still checks that employees without a private country trigger the expected warning. The change keeps automated payroll quality checks reliable after a related default-country behavior change.
Original PR description
The warnings test expects a warning to be generated on the payslip because the employee is missing a private country. However, the referenced change introduced a default value for the private country based on the active company. Because the field is no longer blank upon employee creation, the payroll engine no longer flags it as missing, causing the test to fail. See odoo/odoo#275579 task-6361855
Users who are not linked to an employee can now create expenses from documents, as long as they have permission to create expenses for another employee. This removes an unnecessary blocker while keeping existing access controls in place.
Original PR description
Removes the constraint saying a user has to be linked to an employee to create an expense from a document. In this case, the user still needs the rights to create an expense for another employee. task-6237021 Forward-Port-Of: odoo/enterprise#123635 Forward-Port-Of: odoo/enterprise#118955
This fix updates tax-related modules so calculated values refresh correctly when draft or in-memory records are created. It helps prevent stale or missing external tax information in workflows that rely on Avatax or external tax integrations.
Original PR description
Now field dependencies of abstract models are resolved on the abstract model itself in order to trigger the recomputation of computed fields on new() records of abstract models. These changes are safe to apply independently of the ORM change, since dependencies that do exist on the concrete models are unaffected. Community PR: https://github.com/odoo/odoo/pull/275788.
This fixes an inconsistency in how the Hong Kong payroll rental field is configured between employee records and version records. The change helps prevent related automated test failures and improves reliability without changing day-to-day payroll workflows.
Original PR description
The readonly value inconsistency between l10n_hk_rental_id field in the employee's model and the one in the version's model was provoking some tests to fail. Related runbot error: https://runbot.odoo.com/odoo/error/241956 task-6306032 Forward-Port-Of: odoo/enterprise#120673
Fixed an issue where opening a Measure step in Shop Floor could fail because required dialog information was not passed correctly. This ensures operators can record measurements without interruption after the underlying component behavior changed.
Original PR description
Steps to reproduce: - Open Shop Floor - Create a Measure step - Click on the Measure Button - Encounter the error Upon further observation, it was noticed that the properties were not passed correctly to the MrpMeasureDialog component. This happened due to incorrect property definition in OWL 3, while with OWL 2 it was correct. Property definition was changed to comply with OWL 3. task-6345156 Forward-Port-Of: odoo/enterprise#122269
Code cleanup and technical improvements
This change makes an accounting test run in a consistent order by sorting test items by name. It helps reduce inconsistent test results and supports smoother maintenance without changing business features or user workflows.
Original PR description
Sort by the name of the test which gives a deterministic sorting order.
This update prepares several accounting-related screens for the next version of Odoo's web interface technology. It is an internal cleanup intended to preserve existing behavior while reducing migration risk for bank reconciliation, online payments, synchronization, and reporting features.
The VoIP calling feature now responds more reliably to microphone permission status changes. This helps avoid confusing call setup issues when browser permissions change, improving day-to-day usability for users who rely on internet calling.
Original PR description
task-6373278
This update adjusts how the Gantt view scrolls to the right date so it remains reliable with the newer interface framework. Users should see the same behavior, with reduced risk of layout or scrolling issues during rendering, resizing, or range changes.
Original PR description
`useLayoutEffect` is deprecated in OWL3. The remaining call (initial-scroll / focus-date scrolling) becomes `onMounted`+`onPatched`: a timing constraint, not a shim, since `focusDate` reads live post-patch DOM (`cellContainerRef.el.clientWidth`) before writing `scrollLeft`. A reactive `useEffect` fires before the DOM patch and would measure stale layout. Test coverage — these failed with the effect commented out and now pass: - @web_gantt/gantt_view_basics/ungrouped gantt rendering - @web_gantt/gantt_view_behavioral/resize a pill - @web_gantt/gantt_view_concurrency/concurrent range switches see commented-out runbot build: https://runbot.odoo.com/runbot/batch/2624590/build/116553816