Wednesday, October 8, 2025
11 changes · master
Resolved issues and error corrections
This fixes an intermittent failure in automated tests for signed document cleanup. The change adds a small time buffer so expired trashed documents are consistently recognized for deletion, improving release confidence without changing user-facing behavior.
Original PR description
Steps to reproduce
==================
Launch the test `test_gc_clear_bin` a few times
It will eventually fail:
documents.document(544,) is not false :
trash document should be deleted after gc_clear_bin
Cause of the issue
==================
The domain for wether a record should be deleted contains `('write_date', '<=', fields.Datetime.now() - relativedelta(days=deletion_delay)`
The tests fails when the write_date is in the same second as the test run.
This is because fields.Datetime.now() replaces microseconds by 0.
https://github.com/odoo/odoo/blob/14073faf1fa272b8d3411b4fe6f42c279058459d/odoo/fields.py#L2378
Solution
========
Since records needs to be at least "deletion_delay" old, we add a margin of 30 seconds to make sure they match
runbot-224207
Forward-Port-Of: odoo/enterprise#95926The cohort reporting tests were updated to match recent changes in how Odoo reloads actions and breadcrumbs after a language change. This helps ensure users see correctly refreshed navigation and labels when switching languages.
Original PR description
This commit adapts a cohort test w.r.t. the changes done in odoo/odoo#230046. Forward-Port-Of: odoo/enterprise#96372
The ChatGPT plugin chat window now stays visible when opened over other pop-up windows. This fixes a usability issue that could prevent users from interacting with the chat feature.
Original PR description
This PR fixes an issue with the chatgpt plugin where the chat window was rendered beneath the modal, making it unusable. The fix modifies the z-index of modal windows when the `openDialog` function of the chatgpt plugin is called. Forward-Port-Of: odoo/enterprise#94909
The spreadsheet navigation bar now displays better on mobile screens. Long spreadsheet names are shortened cleanly with an ellipsis, and the saved status stays on one line for a tidier, easier-to-read experience.
Original PR description
When opening the spreadsheet on mobile, the navbar was not well styled: - the spreadsheet name was not truncated with ellipsis - the "saved" status would take two lines (one line for the icon, one line for the text) Task: [4996784](https://www.odoo.com/odoo/2328/tasks/4996784) Forward-Port-Of: odoo/enterprise#94928
This fixes an internal accounting report test that started failing after a new Credit Card line was added to the generic chart of accounts. The change helps keep automated checks reliable and reduces the risk of delays when validating future accounting report changes.
Original PR description
- The test cases for the balance sheet failed because we added a new line, 'Credit Card' in generic CoA. runbot error: 233206
This fix prevents the Shop Floor from showing the same manufacturing component movement twice after a bill of materials is changed. It avoids an error that could block users from opening the affected work center view and adds test coverage to prevent the issue from returning.
Original PR description
### Steps to reproduce: 1. Create a BoM with two components to be consumed in an operation 2. Create a Manufacturing Order with this BoM and confirm it 3. On the BoM, remove one of the products and save 4. Go to the Shop Floor 5. Select the workcenter used in step 1 6. Got duplicate key in t-foreach ### Before this commit: Stock moves without quality checks, that are linked to a workorder but not linked to a BoM line, are included twice in the view, resulting into a traceback. ### After this commit: Include only once the stock moves, removing duplicates from the view. opw-5029970 Forward-Port-Of: odoo/enterprise#96345 Forward-Port-Of: odoo/enterprise#93482
This update removes an unnecessary validation that could interfere with Indian GSTR tax return processing. Since the system already assigns the correct tax unit when creating these returns, this helps avoid avoidable blocking errors without changing the reporting workflow.
Original PR description
This commit removes a check of tax unit constraint. It is not useful for now because system creates the tax returns, and it sets the `tax_unit_id` according so we can remove the constraint. reference task task-4750259 Forward-Port-Of: odoo/enterprise#96476
This update makes an automated website sales rental comparison check more reliable by adjusting how the test interacts with the page. It helps reduce false test failures, supporting smoother maintenance and more dependable releases.
Original PR description
In this commit, we ensure tour succeed each time by clicking on hidden element. Forward-Port-Of: odoo/enterprise#96498
Employee records now show the correct number of documents by including files stored in subfolders of the employee folder. Folder entries are excluded from the count, giving users a clearer and more reliable view of employee-related documents.
Original PR description
Before this commit, the documents count on the employee form view showed only the count of documents (folders included) inside the employee folder but not the ones in subfolders. This commit fix that by showing the count of every documents (folders excluded) included in the employee folder or its subfolders. Task-4944895 Forward-Port-Of: odoo/enterprise#91009
The German Datev export no longer fails when sale or purchase receipts are created without a customer or vendor. This keeps accounting exports reliable for receipt workflows introduced in recent versions.
Original PR description
Since 18.4, there are purchase receipts as a function for vendor bills, where you can choose to put no vendor in the vendor field, the same is true for invoices with sale receipts. Making sure that partners are not Null task-5114562 Forward-Port-Of: odoo/enterprise#95649
Opening Quality Points from a product in Point of Sale could fail when the wrong product list view was reused. The fix ensures the correct Quality Control view opens, so users can access quality points without an error.
Original PR description
**Step to Reproduce** 1- Install point_of_sale and quality_control. 2- Open POS -> Product -> Product 3- Open any product and click the Quality Points smart button → traceback occurs **Issue**…
**Step to Reproduce** 1- Install point_of_sale and quality_control. 2- Open POS -> Product -> Product 3- Open any product and click the Quality Points smart button → traceback occurs **Issue** `UncaughtPromiseError > OwlError Uncaught Promise > The following error occurred in onWillStart: ""quality.point"."product_variant_count" field is undefined."` **Root Cause** https://github.com/odoo/odoo/blob/a729578afb7fed79aac2d622aae4da4c0917f8e5/addons/point_of_sale/views/product_view.xml#L23-L25 - View reference is passed in the context. - When this context is propagated to `action_see_quality_control_point`, https://github.com/odoo/enterprise/blob/7b777bffbebfb6503bb348005e9ce076825926e4/quality_control/models/quality.py#L579-L584 https://github.com/odoo/enterprise/blob/2e08282ca275bf1e66c58e28391f11f8bd7884d2/quality_control/views/quality_views.xml#L859-L868 - Than traceback occurs because the action does not pass a `view_id`. - When the context contains `list_view_ref`, it attempts to load the product template list view with the `quality.point` model. - This leads to a traceback since the fields defined in that view do not exist on the `quality.point` model. **Solution** - Pass a proper `view_id` from the Python side to ensure the correct view is loaded, preventing `list_view_ref` from forcing to load an invalid template. **opw-** **5090505** Forward-Port-Of: odoo/enterprise#95040