Monday, November 17, 2025
22 changes · master
Enhancements to existing features
A shared phone component was added for use in phone fields and scheduling popovers. This makes phone number presentation more consistent across the interface and helps users interact with contact details more reliably.
Original PR description
The phone component is used in the PhoneField and the Gantt popover. Technical: useInputField is used in the phone field, so we have not used the phone field in the Gantt popover because there will be no input. task-3617833 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change improves navigation in HR by sending users to the appropriate record when they open version-related fields. Contract template versions now open in the contract template view, while other versions open the employee form with the relevant version context, reducing confusion and extra clicks.
Original PR description
If the version record is a contract template, redirect to the version contract template view. Otherwise, redirect to the employee form view with the version_id in the context. This is a backport of https://github.com/odoo/enterprise/pull/97463 task-5082709 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235691
The HTML editor now has a more flexible way to decide when a link preview should display the web address. This prepares the editor to support richer previews for article links while keeping the current experience consistent.
Original PR description
This commit adds a getter method in the link popover to determine if url should be shown in the popover. The need to introduce this getter is to patch it for the article link. From related enterprise commit, we will show the preview popover also for the article links. Task-4624296
The signature upload flow now limits file selection to image files. This helps users choose the right file type more easily and reduces failed or incorrect uploads when adding a signature.
Original PR description
task-5245930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website editors can now add an outline around gallery miniature indicators. This makes rounded thumbnails easier to see when images have transparent backgrounds or colors that blend into the page.
Original PR description
This commit adds an option to show a border around image indicators of type "miniatures". It helps when the image has a transparent background (e.g., PNG) or a background color similar to the snippet background, as the rounded contour of the thumbnail becomes invisible in those cases. The border makes the shape clearly visible. Steps to reproduce: - Add an image gallery to a page. - Choose the "Rounded Miniatures" indicator type. - Replace one image with a PNG that has a transparent background. - Problem: the rounded contour of this PNG miniature is no longer visible because its transparent background blends with the snippet background. The same issue occurs if the image background matches the snippet background color. task-5219701
The Fleet mobility card field is now shown only where it is relevant for Belgian companies and employees. This reduces clutter for users in other countries while preserving the Belgian localisation workflow.
Original PR description
- Removed the field from the employee general view , and put it in the employee view of the be localisation to make it exclusive. - made the field only available to employees of belgian companies in the fleet_vehicle view. task - 5176316 Enterprise PR - 97986
Users can now include the journal field when bulk editing invoices from the invoice list. This makes it faster to move draft invoices, such as Peppol imports that arrive in one journal, to the correct journal in one action.
Original PR description
Since 19.1 [1], it's possible to mass edit invoices in list view. Let's add the journal in optional=hide to allow user to easily mass edit journal. Note that this only works when invoices are in draft. This is particularly usefull for Peppol since all invoices will arrive in the same journal. [1]: https://github.com/odoo/odoo/commit/af368c872fcbdd952dffde47abcdc7d1fd02f298 task-id: 4815773
The Work Entry Type form view needed to be refactored. The form view is now split into new groups (computation, display, exports code, benegit eligibility and description). Tooltips and placeholders have been added to avoid further confusion of the fields, and some naming repetition has been removed (e.g.: "Partena Code" under the "Exports Code" group). Some hidden columns and some filters have been added to the list view. Here is a visualization of all the visual changes that needed
Original PR description
The Work Entry Type form view needed to be refactored. The form view is now split into new groups (computation, display, exports code, benegit eligibility and description). Tooltips and placeholders…
The Work Entry Type form view needed to be refactored. The form view is now split into new groups (computation, display, exports code, benegit eligibility and description). Tooltips and placeholders have been added to avoid further confusion of the fields, and some naming repetition has been removed (e.g.: "Partena Code" under the "Exports Code" group). Some hidden columns and some filters have been added to the list view. Here is a visualization of all the visual changes that needed to be done: https://app.excalidraw.com/l/65VNwvy7c4X/4LJSOZo8W3D `_is_unforeseen` (and anything related to it) has been deleted, since it was not used anywhere. After the UI cleanup, some views became unused. I had to remove them in migrations. `is_leave` (and its mirrror, `is_work`) are redundant, especially now that we want to use a selection field instead. So I had to remove them both and replace every single one of their occurences in the code by a new selection field named `category`. A migration making sure `category` reflects the old `is_leave` needed to be put in place. Due to having to do some back and forth in how to handle `is_work`, I found some issues (unused file, bad `querySelector`, etc.) with the `boolean_radio` widget. Fixes of this widget are thus included in this PR. task-5162567
Message deletion checks in Odoo Discuss have been refined to use the channel member information only when it is available. This reduces the chance of incorrect behavior in chat-related updates and helps keep message handling stable for users.
Original PR description
This commit improves the check on the `mail.message/delete` event. * The code is only relevant when `message.channel_id.self_member_id` exists. * The destructuring is removed because it can conflict with reactive.
This update makes automated tests involving error popups wait more reliably before checking results. It reduces random test failures in Odoo's build process, helping teams validate changes with fewer false alarms.
Original PR description
*base_automation 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…
*base_automation 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 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes settings that had no effect from several accounting and inventory screen templates. It simplifies the underlying setup 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.
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