Thursday, July 3, 2025
12 changes · 18.0
Enhancements to existing features
Accounting users can now group the Chart of Accounts by account root using the Root grouping option. This makes it easier to review and navigate accounts at a higher level without changing account data.
Original PR description
Before this commit:
- go to Accounting > Configuration > Chart of Accounts
- in the search bar, you cannot group accounts by account root.
After this commit:
- You can group accounts by account root ('Root').
We do this by implementing `_field_to_sql` for `account.account.root_id` which makes the field groupable.
task-noneResolved issues and error corrections
This fix prevents an error when opening the decrease quantity popup in Point of Sale when a related Belgian blackbox module is not installed. It also stops the popup from appearing incorrectly when staff increase an item quantity, making checkout adjustments smoother and less confusing.
Original PR description
Before this commit, an error occurred when `pos_blackbox_be` was not installed and the system attempted to open the decrease quantity popup, due to a missing argument. Also, the decrease quantity popup was incorrectly shown when increasing the quantity, as `cid` was mistakenly used for comparison. opw-4914775 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
This commit reverts the changes made in https://github.com/odoo/odoo/pull/190342/commits/d47b256a10713618a853d9eeacb2c1665330ed4f as they are not wanted. The user that wants to have access to cash in/out should have the invoicing rights at least. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212994
Original PR description
This commit reverts the changes made in https://github.com/odoo/odoo/pull/190342/commits/d47b256a10713618a853d9eeacb2c1665330ed4f as they are not wanted. The user that wants to have access to cash in/out should have the invoicing rights at least. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212994
This fix ensures that when multiple manufacturing orders are created at once, each order uses its own expected work duration to calculate the planned finish date. This prevents incorrect completion dates in batch creation or custom workflows, improving scheduling reliability.
Original PR description
If you create mrp.production in batch, date_finished is wrong. Note: it probably works as is in standard flow because always used on a single record (ex: form view) but it might break custom code. opw-4629270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216550
This fixes how Odoo's web testing tools handle drag-and-drop data during simulated interactions. It ensures tests better reflect real browser behavior when items are added dynamically, reducing false failures or missed issues in web interface testing.
Original PR description
Before this commit, the 'types' property of datatransfers used in Hoot interactions was mocked to insert the initial types of the given 'items' and 'files'. However, this didn't account for the items added dynamically on the datatransfer object. The good thing is that it doesn't actually need to be mocked, since it already works with the given 'files' and 'items' types without having to override the 'types' descriptor. So the mock has been removed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update reduces intermittent test failures in the HTML and web editor areas by waiting more reliably for editor selection and link preview behavior. It helps keep automated validation stable, lowering the chance of false failures delaying development or releases.
Payment reconciliation now ignores cancelled invoices and only considers invoices that are officially posted. This prevents errors when pending payments are completed after an invoice has been cancelled, keeping automated payment processing reliable.
Original PR description
Steps to reproduce: 1. Create an invoice. 2. Register a payment in the 'pending' state. 3. Cancel the invoice. 4. Confirm the payment (set payment state to 'done'). 5. Run the 'post-process transactions' cron job and check the logs. → Error occurs during reconciliation due to the cancelled invoice. Issue: cancelled invoices were being considered during the reconciliation process, leading to errors. Solution: This fix ensures that only posted invoices are considered during the reconciliation process. Forward-Port-Of: odoo/odoo#213365
Follower notification emails no longer show an extra divider between the header and message body. This makes invite and notification emails look cleaner and avoids confusing duplicated formatting for recipients.
Original PR description
When adding an Odoo user as a follower to a lead/task/..., there are two separators between the message header and its body. This commit removes the extraneous separator. Steps to reproduce: - Open a lead/task/... - Add Marc Demo as a Follower - Toggle the option to have them notified task-4889715
This fixes a display issue on eCommerce product pages where product attribute options shown as pills had unwanted spacing on iPhone and iPad. The change improves the visual alignment of product choices, making the shopping experience cleaner for mobile customers.
Original PR description
Before this commit, the pills attributes on a eCommerce product page on iOS has misaligned text That was caused by an iOS inconstancy with 'appearance: none;' A 'position: aboslute !important;' was added to force hiding the input like in saas-18.4 Expected:  Issue:  ## Steps to reproduce: - Add a product with attributes in eCommerce - Set the Attribute's Display Type to Pills - Go to the eCommerce product's page - Open the page on iPhone or iPad (using BrowserStack) - The selection for the attributes have a space before option's name opw-4854158 Forward-Port-Of: odoo/odoo#215520
Confirmed purchase orders now allow users to adjust product descriptions by hiding the product column when needed. This restores flexibility for correcting or clarifying order lines after confirmation without changing the selected product.
Original PR description
<b>Steps to Reproduce:</b> - Navigate to Purchase → Create a new Purchase Order. - Add a Vendor → Add a Product with description or enter one using the ☰ widget. - Save and Confirm the order, Try to…
<b>Steps to Reproduce:</b>
- Navigate to Purchase → Create a new Purchase Order.
- Add a Vendor → Add a Product with description or enter one using the ☰ widget.
- Save and Confirm the order, Try to edit the description.
<b>Issue:</b>
- The product description becomes non-editable after confirming the PO.
- Previously, the description was separated in view.
<b>Cause:</b>
- Since `product_id` is readonly, the `name` (description) field also does not allow to edit.
- e.g. In SO, the description is editable if the product_id is hidden and only name (description) field is visible.
<b>Since the product_id field is read-only in the states ('purchase', 'to approve', 'done', 'cancel'), the description field
also becomes read-only, as they are combined. By hiding the product_id, we can edit the description, as it is not.</b>
<b>Solution:</b>
- Added `optional="show"` to `product_id` in the XML view to allow toggling discription editability.
- When `product_id` is hidden, the `name` field becomes editable.
<b>Steps to Verify:</b>
- Open same confirmed PO and hide the `product_id` column.
- Make sure `name` (description) field is visible and now it is editable.
<b>opw-4892063</b>Partner Ledger XLSX exports now correctly include entries without an assigned partner when users search for "Unknown Partner". This ensures downloaded reports match the on-screen results and prevents missing accounting lines in exported files.
Original PR description
### Issue: When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX. ### Steps to reproduce: - Have a partner Ledger with -…
### Issue:
When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX.
### Steps to reproduce:
- Have a partner Ledger with
- Search for "unknown Partner" in the search bar, only the lines grouped under "Unknown Partner" are shown.
- Click on the button "XLSX"
- The downloaded document does not include "Unknown Partner"
### Cause:
When `filter_search_bar` has a value, the domain used to query the partners/lines will check if the names of the partner match the search text. The resulting SQL query excludes the lines where `partner_id` is `NULL`.
### Solution:
Add a new condition in the domain: `('partner_id', '=', False)` This way the lines with no partner are returned by the query
When searching another existing partner these lines are excluded by an [already existing filter](https://github.com/odoo/enterprise/blob/8eff9194618a1d181c57820829e53aa23c7759d5/account_reports/models/account_partner_ledger.py#L55-L58). It excludes the lines if the search test does not match "Unknown Partner".
opw-4772529
Forward-Port-Of: odoo/enterprise#88139Before this commit, there was a traceback error when importing Winbooks having a different sign on the balance in company currency and foreign currency. There was a frozendict error in the `import_wizard/_import_move()`. ### Steps to reproduce: - Choose a Belgium company - Import a Winbooks file having a different sign on the balance in company currency and foreign currency - Adapt account in Chart of Account if needed - The traceback should be triggered What happens is that the record
Original PR description
Before this commit, there was a traceback error when importing Winbooks having a different sign on the balance in company currency and foreign currency. There was a frozendict error in the `import_wizard/_import_move()`. ### Steps to reproduce: - Choose a Belgium company - Import a Winbooks file having a different sign on the balance in company currency and foreign currency - Adapt account in Chart of Account if needed - The traceback should be triggered What happens is that the record where added to a list, then the app tries to change `'CURRAMOUNT'` value to 0. But it was a frozendict item, so it create an error. I replace the record added to the list with a copy version that can be mutated. opw-4794471 Forward-Port-Of: odoo/enterprise#87484