Daily updates from Odoo
Monday, November 17, 2025
18 changes · master
Enhancements to existing features
Payroll labels and descriptions were updated to improve clarity and consistency across the core payroll app and several country-specific payroll localizations. This helps payroll users see more accurate translated wording in day-to-day payroll setup and processing.
Original PR description
task-4571722
The point of sale payment screen now hides the remaining or change status when the amount is zero. This reduces unnecessary information at checkout and makes the payment flow clearer for cashiers.
Original PR description
Before this commit : ------------ - Payment screen always showed Remaining or Change even when the amount was 0. After this commit : --------------- - Payment screen no longer shows the status section when the amount is 0. ------------------------------------------------- Task-5266175 Related PR-https://github.com/odoo/odoo/pull/235929
Adds realistic sample data for field service tasks covered by warranty. This helps teams demonstrate and test how warranty-related service work should be handled in the system.
Original PR description
This commit introduces demo data specifically designed for tasks that are covered under warranty within the industry_fsm_sale module. The purpose of this addition is to enhance the testing and demonstration capabilities by providing realistic examples of how warranty-related tasks should be managed within the system. task: 3853356
This update modernizes internal VoIP calling code by replacing an outdated programming utility. It helps keep call handling and AI-related VoIP features compatible with the latest platform standards without changing the user experience.
Original PR description
Commit [1] deprecated the `Deferred` util. This commit replaces its usage in voip apps. [1]: https://github.com/odoo/odoo/commit/2067b860d2168ff581434f21b49355af92d09780
The Attendance Gantt view has been adjusted so the right fields are shown or hidden based on the newly introduced access group. This helps ensure users see the attendance information appropriate to their permissions without changing core workflows.
Original PR description
Update the Gantt form view's visibility attributes to accommodate the newly added field based on the new access group. Task: 4815633
The Indian payroll dashboard now warns when employees are missing required LWF numbers, helping payroll teams catch compliance data gaps earlier. Demo data was also adjusted and a dashboard pay run label was clarified for a cleaner user experience.
Original PR description
Add a dashboard warning for missing employees with LWF numbers. Remove the ESIC number from the demo data of employee Alisha Sharma. Change the string of the dashboard payrun. task-5222433
The fleet mobility card field is now limited to Belgian payroll and fleet localization screens. This keeps country-specific employee and fleet information visible only where it applies, reducing confusion for users in other countries.
Original PR description
Added a the mobility card field to the belgian localisation to make it exclusive to belgium after removing it from the hr_employee common vue. task - 5176316 Community PR : 232873
The Documents module tests now wait more reliably for error messages before checking them. This reduces random test failures in automated checks, helping teams trust build results and avoid unnecessary investigation time.
Original PR description
The `unhandledrejection` event is triggered asynchronously in JS. Once this event is triggered, the error is handled and an error dialog might be displayed, depending on the type or error being thrown. In several tests, after throwing an error, we only waited for an animation frame before asserting the presence of the error dialog. This only works if the `unhandledrejection` event is fired before the next animation frame, which isn't guaranteed. When it is not the case, the test fails because the error dialog is not there yet. We already had to fix that kind of issues multiple times, after impacted tests were caught failing non deterministically on runbot (e.g. [1][2][3]). This commit fixes several other occurrences of the faulty pattern, which haven't been spotted yet but could have non deterministically failed as well. [1] https://github.com/odoo/odoo/pull/178491 [2] https://github.com/odoo/odoo/pull/235446 [3] https://github.com/odoo/odoo/pull/235464
Removed unused access group markers from accounting-related client-side templates because they were not being applied there. This simplifies the code without changing what users see or how permissions work.
Original PR description
The `groups` attribute in used in the QWeb template to display nodes based on access groups. This attribute is only available on server-side templates. This commit removes the useless `groups` attributes from client-side (aka. `static`) templates as they are not applied anyway.
The payroll wording has been updated from "Salary Structure" to "Pay Structure" across payroll-related screens and documents. This makes the terminology clearer and more consistent for HR and payroll users without changing payroll calculations or business processes.
Original PR description
*: hr_contract_salary_payroll, l10n_in_hr_payroll - Renamed the "Salary Structure" label to "Pay Structure". task-5262042
The Indian Payroll Reports menu has been reorganized so report entries appear in alphabetical order. This makes the list cleaner, easier to scan, and more consistent for payroll users.
Original PR description
Before: - The menu item of Indian Payroll Reports was not in order. After: - Arranged all Indian Payroll Reports in alphabetical order. Impact: - Keeps the reports list clean and consistent. task-5222845
Resolved issues and error corrections
The journal audit report now matches the selected filter for draft entries. This ensures users who enable draft entries can review the expected journal items instead of seeing an empty result.
Original PR description
* In a new journal, create a draft entry * Open the journal audit: Accounting > Review > Journal Audit * Activate the "With draft Entries" option. * The journal should display 1 entry to review * Click on the review button, there is nothing to display We should be consistent in the filters selected is the search view and what is displayed on the report. Forward-Port-Of: odoo/enterprise#99381
Creating an offer from an existing employee's Offers button no longer incorrectly fails because an applicant is missing. The field visibility rules were adjusted so HR teams can generate offers in this scenario without interruption.
Original PR description
-When creating a new offer for an existing employee through the smart button "Offers", an error appears showing that the applicant is missing. -The issue has been fixed by changing the visibility conditions for the fields.
Belgian payroll employee version fields now correctly record change history. This restores expected audit visibility and prevents related automated checks from failing.
Original PR description
The test_hr_version_fields_tracking was failing because the Belgian Dimona fields in hr.version model were missing tracking=True. task-5122440 Forward-Port-Of: odoo/enterprise#99144 Forward-Port-Of: odoo/enterprise#95735
The sample data ribbon setting was removed from shared action helper screens. This prevents an outdated visual marker from appearing in affected views and keeps the interface consistent for users.
Original PR description
This commit fully removes the prop `showRibbon` from the `ActionHelper` component.
This change prevents installation errors when Saudi Payroll and Salary Package modules are loaded in different orders. Employee cost fields are now added from the module that has the correct dependencies, making setup more reliable without changing day-to-day payroll behavior.
Original PR description
Reproduce Issue : loading hr_contract_salary after l10n_sa_hr_payroll causes this error Element '<xpath expr="//separator[@name='employer_costs']">' cannot be located in parent view Issue : in the hr_employee_view of the l10n_sa_hr_payroll , we inject three fields in the seperator "employer_costs" which is defined in hr_contract_salary , because there is no dependecy between the two modules , this causes the error to happen if the l10n_sa_hr_payroll is loaded first. Fix : Create another view to add these fields in the l10n_sa_hr_contract_salary module which depends on both l10n_sa_hr_payroll and hr_contract_salary task - 5258832 related PR : enterprise#98239
This update prevents salary configurator tests from failing when the Belgian localization is not installed. It removes assumptions about Belgium-specific employee fields from the general salary module and keeps those settings handled only in the Belgian flow.
Original PR description
This fix targets an issue introduced by PR [odoo/enterprise#96415]. Steps to reproduce: Install the hr_contract_salary module on its own or with a localization other than BE, then run the test TestEmployeeSalaryConfigurator.test_employee_salary_configurator_flow. You will get the following error: ValueError. Cause: The fields mobile and internet are only defined on hr.employee under the Belgian localization. However, when creating test employees in hr_contract_salary, these fields were being referenced directly. Therefore, when testing without the BE localization, the fields were missing. Solution: Remove the fields from the hr_contract_salary test. Since mobile_invoice and internet_invoice are hidden when the fields are not available, we now set their values manually in the extention of the tour of the BE localization to avoid dependency on BE-specific fields. Related PR: enterprise#96415 Task: 5249282
This update fixes a visual issue in Odoo Studio where sidebar elements could overlap or scroll above other page headers. By aligning the sidebar layering with the header, the Studio interface behaves more consistently and is easier to use.
Original PR description
With Commit[^1], the `.o_web_studio_component` `z-index` was set to `$zindex-modal (1055)`. While a high value is probably needed, this introduced an issue related to the `z-index` value of `.o_notebook_headers`, which is arbitrary and lower than that of `.o_web_studio_component`, causing the elements to scroll above it. With this commit, we decrease the `z-index` value and align it with the header one, ensuring a clearer relationship between these two elements. task-5241146 <img width="571" height="507" alt="image" src="https://github.com/user-attachments/assets/483b6ce6-8edd-47ff-aa45-39829758d44b" /> [^1]: https://github.com/odoo/enterprise/commit/8489b760dd601d2a5196c8323eb0e1929c0f2132