Wednesday, October 8, 2025
16 changes · master
Enhancements to existing features
The follow-up process tests now use the newer journal items action, aligning validation with the current way overdue customer items are reviewed. This keeps the accounting follow-up workflow reliable while removing outdated supporting pieces that are no longer used.
Original PR description
Current behavior before PR: - The test_journal_items_action_domain_filters_partner_posted_entries test was calling action_open_overdue_entries on the partner. - It checked overdue invoices by…
Current behavior before PR: - The test_journal_items_action_domain_filters_partner_posted_entries test was calling action_open_overdue_entries on the partner. - It checked overdue invoices by searching moves with the returned domain. Desired behavior after PR is merged: - The test now calls the new action action_open_partner_followup_journal_items. - It searches for account.move.line records using the action domain. - It validates the related invoices via line_ids instead of directly searching moves. - Removes redundant code. Changes implemented: - Replaced action_open_overdue_entries with action_open_partner_followup_journal_items. - Replaced search on account.move with search on account.move.line. - Assertion updated to check the invoices line ids are equal to move_lines.ids. - Removed view_followup_invoice_list custom view and action_open_overdue_entries which no longer used - Renamed test_overdue_invoices_action_domain_includes_children_partners testcase - to test_journal_items_action_domain_includes_children_partners and updated its docstring. related commit-[75533f4](https://github.com/odoo/enterprise/commit/75533f4808f2aa52f70a12dba8829caef44bf1b7) related pr-https://github.com/odoo/upgrade/pull/8470
The currency rate update logic can now use a configurable system setting for the proxy URL when working with Banxico and Bank of Thailand services. This makes development and testing easier without changing normal business workflows.
Original PR description
Follow what was done for xe.com and update the logic for banxico and bot to allow setting the iap proxy url using a system parameter, to ease testing during development.
The VoIP softphone demo mode label is now more descriptive and clickable, helping users understand where to configure providers. Clicking it takes users directly to the provider list, with an added tooltip for extra guidance.
Original PR description
This commit enhance the UX of the "Demo Mode" title in softphone by making it clickable and descriptive. When clicked, it leads to the providers' list. A tooltip was added to the button as well. Task-5108061
The payroll dashboard now uses the term “Pay Runs” instead of “Batches” where relevant. This makes the interface clearer and better aligned with common payroll terminology, helping users understand payroll processing steps more easily.
Original PR description
To improve clarity and align with payroll terminology, all the instances of the word “Batches” has been replaced with “Pay Runs” on the dashboard Task ID: 5075517
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#95926Code cleanup and technical improvements
The self-order IoT flow now follows a simplified way of deciding which payment methods are available. This keeps payment options aligned with the main self-order experience and reduces configuration complexity.
Original PR description
See odoo/odoo#229921 for the main change to `pos_self_order`. In this commit, we modify `pos_self_order_iot` to use the new simplified payment method filtering. task-4882726
The 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