Daily updates from Odoo
Tuesday, October 28, 2025
16 changes · master
Enhancements to existing features
The Documents search view has been simplified by removing extra filters that were not needed. This makes it easier for users to find the relevant filtering options when working with documents.
Original PR description
This commit removes the extra 'Documents' and 'Hide shortcut' filters from the documents search view to make the filter list simpler and keep only the relevant options. task-5170118
Property selection values now return their internal name rather than their display label by default. This improves consistency for payroll-related property data and reduces ambiguity when values are used across business processes or integrations.
Original PR description
Purpose ======= Followup of odoo/odoo/pull/232800 , when getting a property selection, we want to return the name by default instead of the label.
The customer ticket page now avoids repeating the same sales timesheet feature check several times. This reduces unnecessary processing and should make the page slightly more efficient without changing what users see.
Original PR description
helpdesk, helpdesk_sale_timesheet: reduce multiple calls ---------------------- In the `/my/tickets` route, the `_check_sale_timesheet_feature_enabled` method was called three times (for search input, search groupby, and value preparation). This commit passes the result of `_check_sale_timesheet_feature_enabled` in an argument, reducing the number of calls. the argument is now used in both search input and search groupby, improving performance. helpdesk: removed redundant method -------------- Removed the `_prepare_portal_layout_values` method as it only called the super method without any changes, making it unnecessary. task-4513671
Demo data for WhatsApp accounts has been added back. This helps teams and evaluators see example WhatsApp account setup when trying or demonstrating the app.
Original PR description
Purpose of this commit, Adding back the demo data for whatsapp accounts. revert: https://github.com/odoo/enterprise/pull/97138 task-5172791 Forward-Port-Of: odoo/enterprise#98135
Resolved issues and error corrections
The checkout address test now waits until the relevant page interaction is ready before moving to the billing step. This prevents false failures in automated checks and helps keep the online sales workflow validation stable.
Original PR description
This commit add wait for intreaction to be ready before moving to billing step which render billing container conditionally depending on toggle from interaction. runbot-231718 Forward-Port-Of: odoo/enterprise#98142
Bank reconciliation models now correctly match statement lines when a label rule is set to “Not Contains,” even if some transaction text fields are empty. This helps accounting teams rely on exclusion-based matching rules and reduces manual reconciliation work.
Original PR description
Currently bank reconciliation model match only the label type “Contains” The “not contain” type is not working Steps to reproduce: - Open Accounting Dashboard - Access Bank journal reconciliation models (3dots > Models) - Open a [Model] and set: - Label "Not Contains" "Test" - Add a Bank Statement with any label Issue: [Model] won't match Analysis: This occurs because in case the payment_ref or transaction_details contains a NULL value the ILIKE operations will evaluate to NULL, not TRUE or FALSE. Any other comparison involving NULL value will result in NULL and the whole condition will fail opw-5065006 [Task link](https://www.odoo.com/odoo/project/49/tasks/5065006) Forward-Port-Of: odoo/enterprise#97745
This fixes an error that could occur when setting up quality checks for manufacturing operations in systems without the work order feature installed. The change keeps quality management usable in those configurations by only applying operation-specific checks when the related feature is available.
Original PR description
**Issue:** The attribute operation_id for quality.point is defined in the mrp_workorder module. However, quality_mrp module does not list mrp_workorder in its dependencies. As a result in a system where quality_mrp is installed but mrp_workorder is not, the following error is raised when evaluating the constrain for quality points mesured on Operations. `"'quality.point' object has no attribute 'operation_id'"` **Proposed solution:** Override the constraint in quality_mrp_workorder to include conditions related to operation_id, ensuring that it is only evaluated when the field is available. Forward-Port-Of: odoo/enterprise#97801 Forward-Port-Of: odoo/enterprise#97338
Belgian point of sale configurations no longer show the tip product setting. This prevents businesses in Belgium from seeing or configuring an option that is not applicable to their local compliance flow.
Original PR description
- Hide `tip_product` field in `pos_config` form view when country is Belgium. task-id: 5011427 community PR: https://github.com/odoo/odoo/pull/233162
The AI document sorting wizard now uses option formatting that is consistent with the rest of the system. This helps prevent invalid option handling and reduces the chance of errors when users configure AI document sorting.
Original PR description
Purpose ======= PyJs can parse dictionaries, even if each element does not end with `,`. We didn't use them in ai documents, but for consistency, we now added them. Forward-Port-Of: odoo/enterprise#98166
Fixes an error that occurred when HR signed an offer for an employee who requested extra time off while automatic allocation was enabled. This helps HR teams complete salary package offers reliably without manual workarounds.
Original PR description
- When the employee requested extra time off, and the automatic allocation setting was turned on, signing the offer as the responsible HR caused an error. Task-5022631 Forward-Port-Of: odoo/enterprise#98209 Forward-Port-Of: odoo/enterprise#92663
This update prevents users from directly modifying the database users list in a way that should not be allowed. It helps keep database project records consistent and avoids unintended changes through the user interface.
Original PR description
This commit is the counter part of odoo/odoo#231902 which allows to disable the write action on x2many fields. See [1] for details. [1] https://github.com/odoo/enterprise/pull/94207#discussion_r2378129896 Task~5160367 Forward-Port-Of: odoo/enterprise#97371
This fixes a settings issue where users could be blocked from saving inventory shipping settings after turning off text confirmation. The WhatsApp template is now only required when WhatsApp text confirmation is actually enabled, preventing unnecessary validation errors.
Original PR description
Due to this [commit](https://github.com/odoo/enterprise/commit/fd1799dd8e3e190e894914d0c28d77d709e29eb6), The field ```stock_confirmation_wa_template_id``` is visible only when…
Due to this [commit](https://github.com/odoo/enterprise/commit/fd1799dd8e3e190e894914d0c28d77d709e29eb6), The field ```stock_confirmation_wa_template_id``` is visible only when ```stock_confirmation_type``` is set to whatsapp and ```tock_text_confirmation``` is set to True. However, the field ```stock_confirmation_wa_template_id``` is marked as required whenever ```stock_confirmation_type``` is set to whatsapp, regardless of whether ```stock_text_confirmation``` is enabled. As a result, when saving the record with ```stock_text_confirmation``` unchecked, the required field ```stock_confirmation_wa_template_id``` remains invisible and unset — which causes a missing required field error during record save. Steps to reproduce: [Video](https://drive.google.com/file/d/1XVV4mJjSX_8acDDbv83VtWrbZtYz6Kqg/view) 1. go to settings - inventory - shipping 2. check Text Confirmation , set stock_confirmation_type = whatsapp 3. uncheck Text confirmation 4. save the changes To fix this issue, need to just add condition of ```stock_text_confirmation``` Forward-Port-Of: odoo/enterprise#97200
The Field Service map task list now keeps appointment times such as 10:00 on a single line. This makes the sidebar easier to read and avoids confusing broken time displays for users planning field work.
Original PR description
### Steps to Reproduce 1. Open Field Service app 2. Navigate to My Tasks -> Map 3. Observe task pins in the left sidebar list 4. Notice time displays like "10:00" break across multiple lines ### Issue The formatted time display in FSM task map pin list items wraps to multiple lines. ### Current Behaviour Time displays like "10:00" break into separate lines. ### Expected Behaviour Time should display on a single line as one readable unit ### Fix Add text-nowrap class to the time display span in FsmTaskMapRenderer template. This prevents line breaks while preserving the existing layout structure. Task - 5079360 Forward-Port-Of: odoo/enterprise#94778
The Approvals test setup was adjusted so it no longer creates duplicate approvers when demo data is installed. This keeps automated quality checks stable across environments and helps prevent avoidable test failures during releases.
Original PR description
When running with demo data, the tests `test_compute_request_status` and `test_compute_request_status_with_required` fail with the error: `UniqueViolation: duplicate key value violates unique constraint "approval_approver_unique_request_user"` This happens because the category "Business Trip" (`approvals.approval_category_data_business_trip`) already injects approvers into the approval request. The two failing tests were creating additional approvers for the same users, leading to a UNIQUE constraint violation on (request_id, user_id). This commit resets the request approvers (`record.approver_ids = []`) before adding the test-specific approvers, ensuring the test passes both with and without demo data. [RB-230935](https://runbot.odoo.com/odoo/error/230935) Forward-Port-Of: odoo/enterprise#95897
Features or functions removed from Odoo
This change removes remaining unused code from the Product Barcode Lookup module that should have been removed in an earlier update. It helps keep the system cleaner and reduces the chance of obsolete background logic affecting future maintenance.
Original PR description
Forgot to remove the code in master for https://github.com/odoo/enterprise/pull/97780 .
Code cleanup and technical improvements
This update streamlines how accounting-related automated tests create common business records such as invoices, sales orders, reversals, and down payments. It helps teams write and maintain tests more consistently across accounting and localization modules, reducing future maintenance effort without changing customer-facing behavior.
Original PR description
This commit adds bunch of helper methods on AccountTestInvoicingCommon to make it easier to do generic accounting test actions, such as: - creating invoice - creating sale order - reversing invoice - skipping test if module isn't installed - creating down payment invoice ... and many more. We're aware that there are thousands of different helpers for creating invoice out there in different localizations. This commit serves as the first necessary step to create one standard that can be extended across all other test helpers. Some tests have been rewritten to use these new helpers, but due to the sheer amount of tests out there, we're still far from converting every old tests to use this new helpers. However, this should get our feet in the door, allowing us to start writing test the correct way on new tests after this PR, and improve the DX of (accounting) test writing. :) task-4891206