Tuesday, October 28, 2025
10 changes · master
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