Daily updates from Odoo
Wednesday, March 19, 2025
14 changes · 18.0
Resolved issues and error corrections
Manual invoice emails now send correctly when the invoice customer has no email address but another recipient is selected. This prevents valid invoice emails from being blocked and helps ensure customers or contacts receive invoices as intended.
Original PR description
On manual sending an invoice email via wizard, if the invoice partner has no email, and another recipient is set as recipient, no mail is sent. This was caused by a check only allowing emails to be sent for invoices with partners having an email. Task: opw-4604810
Deleting a quotation attachment before sending it by email no longer triggers an error. This helps sales users adjust email attachments smoothly without interruption during the quotation process.
Original PR description
**Issue**: A traceback error is raised when deleting the quotation attachment before sending it via email. **Steps to reproduce:** - go to Sales. - open a quotation. - click "Send by Email." - delete the attachment. A traceback error occurs. opw-4486182
This update fixes a documentation example for grouped data reading by removing an unsupported option. It helps developers follow accurate guidance and avoid confusion when using the feature.
Original PR description
The function does not take an `order` parameter. closes odoo/documentation#12557 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Dropdown menus now close as expected when used inside embedded page areas such as iframes or shadow-based components. This prevents menus from staying open unexpectedly, improving usability in more complex Odoo screens.
Original PR description
When opening a dropdown inside an `IFrame` or `Shadow DOM`, clicking inside the nested DOM does not trigger auto-close. This happens because the event handler checks whether the clicked element is inside the main document, which is not the case for elements inside an IFrame or Shadow DOM. This commit fixes the issue by ensuring that, in such scenarios, the correct document context (nested DOM) is used for the click detection instead of the clicked element itself. Task-4525603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update brings Odoo's spreadsheet component to the latest version and fixes several everyday issues. Users should see more reliable copy/paste between sheets, better pivot value search, improved cell resizing, and smoother editing behavior.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/34150250d [FIX] clipboard: cross-sheet cut/paste is broken for tables/cfs [Task: 3905618](https://www.odoo.com/odoo/2328/tasks/3905618) https://github.com/odoo/o-spreadsheet/commit/4977c01f5 [FIX] css: put `h-100` in o-spreadsheet [Task: 4652289](https://www.odoo.com/odoo/2328/tasks/4652289) https://github.com/odoo/o-spreadsheet/commit/258cd42f3 [FIX] auto_complete: search pivot value with quotes [Task: 4061068](https://www.odoo.com/odoo/2328/tasks/4061068) https://github.com/odoo/o-spreadsheet/commit/b694f2c27 [FIX] edition: escape closes the composer [Task: 4646699](https://www.odoo.com/odoo/2328/tasks/4646699) https://github.com/odoo/o-spreadsheet/commit/a539775a7 [FIX] sheet: autoresize doesn't work on evaluated multiline cell [Task: 4609545](https://www.odoo.com/odoo/2328/tasks/4609545) https://github.com/odoo/o-spreadsheet/commit/d45269f88 [FIX] Tests: Fix `simulateClick` helper [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) https://github.com/odoo/o-spreadsheet/commit/b9127d7d3 [FIX] RemoveDuplicate: fix component initialization [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
The point of sale combo selection screen now displays any extra price tied to combo product options. This helps cashiers and customers see accurate pricing before the order is confirmed, and improves readability for option price labels.
Original PR description
Before this commit, the price extra of a product in a combo was not shown in the POS interface. This commit fixes this issue by adding the price extra to the product card in the combo configurator popup. The commit also adds a space between the option name and the option extra price in the case of an "select" attribute selection. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adjusts two localization modules so their setup data is created reliably with the latest loading process. It helps prevent missing tax or invoicing configuration when installing or updating these localizations.
Original PR description
In Belgium, certain tax grids (e.g., 81, 82) in the VAT report force negative amounts to 0, as the amounts are carried over to the next period. However, this behavior confuses users, especially VAT experts, as they see 0 instead of the actual negative amount. To improve clarity: - Negative values are now displayed instead of being forced to 0. - The carryover mechanism remains unchanged, and the explanatory infobullet is still displayed. Task-4589150
This fix corrects how project task allocations are calculated, addressing an issue introduced by earlier changes. It helps ensure project planning and workload figures are more reliable for teams using project management features.
Original PR description
Partial fix of changes applied in: https://github.com/odoo/enterprise/pull/78465 rb-145524 rb-145525
Asset models are now kept properly separate between sibling branches of the same company. This prevents duplicate assets from being created and ensures each branch uses only the asset model intended for it.
Original PR description
…bling companies Steps to reproduce: 1. Create a company with two branches. 2. Create an asset model in each branch. 3. Go to the main company's chart of accounts. 4. Select the 'Fixed Asset' account and enable 'Automate Asset'. 5. Assign both branches' asset models to 'Asset Model'. 6. Create a vendor bill in one of the branches using the parent company's 'Fixed Asset' account. Observed behavior: - Two assets are created—one for each model assigned to the 'Fixed Asset' account. Expected behavior: - Only one asset should be created, using the asset model corresponding to the branch. - Sibling companies should only access their parent's resources (asset models) and not each other's. This fix ensures that asset models are correctly scoped within their respective branches. opw-4494439
Validated deliveries for subscription products are now counted immediately when invoicing is based on delivered quantities. This prevents subscriptions from getting blocked before their first invoice because the system still showed nothing delivered.
Original PR description
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if…
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if the invoicing is based on delivered qty. ### Steps to reproduce: - Create a recurring product which inventory is tacked by quantity and which invoicing policy is based on delivered quantity. - Put 10 units in stock. - Create a monthly subscription for 1 unit of that product. - Confirm the subscription - Validate the associated delivery #### > The qty_delivered of the sol is still at 0 and the subscription can't be invoiced. ### Cause of the issue: Starting from Commit b3ed4416f9b8e37604a9aa38a1f38c3504e22fdf (18.0) we will create the first delivery linked to a subscription rather than waiting for the cron to be triggered. These delivery moves are correctly linked to the related sale order lines of the subscription. However, since future deliveries will also be created and linked to that same sol we need to consider only the outgoing and incoming moves related to the current billing period to determine the qty_delivered. This step is achieved with an override of the `_get_out_going_incoming_moves`: https://github.com/odoo/odoo/blob/a6280b2a5173fad65e62af0ba72cb8721939d709/addons/sale_stock/models/sale_order_line.py#L193-L200 https://github.com/odoo/enterprise/blob/dde492541aa253771f905d0a77650aa35fea0e8c/sale_subscription_stock/models/sale_order_line.py#L27-L34 but this always leads to an empty record set since the order was never invoiced making the`next_invoice_date` and hence the `period_end` coincide with the `start_date` of the order. opw-4628212
The Helpdesk return action now avoids opening the return process when there is no completed delivery to return. This prevents users from hitting an error on tickets linked to customers with sales activity but no relevant stock transfer.
Original PR description
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears…
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears "ValueError: Expected singleton: stock. picking()" The return button loads the wizard `stock.return.picking`. In this model, we try to find a related done picking: https://github.com/odoo/enterprise/blob/7215e4abd904ebdff3bd85c2c2f3002b1f5593b1/helpdesk_stock/wizard/stock_picking_return.py#L24-L31 Which, in the above case, does not exist. Later, we call a method on that picking: https://github.com/odoo/odoo/blob/8f527e93de2d64111904f1fcc5813e8b8ea0e4ba/addons/stock/wizard/stock_picking_return.py#L100-L104 Where `_can_return` is a `ensure_one` method, hence the error. The return button is only displayed in some conditions: https://github.com/odoo/enterprise/blob/3d8bb40fcad00068e12f21b623390c959d3fd19c/helpdesk_stock/views/helpdesk_ticket_views.xml#L35 Here is the problem: `has_partner_picking` can be `True` if we find some related SOL, which is useless, the only thing that matters are the related pickings. OPW-4591280
This change fixes a randomly failing automated test in the appointment scheduling area. It makes the test suite more stable, helping developers detect real issues more reliably without affecting day-to-day users.
Original PR description
This commit is meant to fix a test in appointment failing randomly. The issue likely came from the fact that records were altered several times on the same model within the same test, with the gantt view being destroyed and re-created each time. To avoid this issue altogether, the test has been split for each case.
This update adjusts automated checks for spreadsheet pivot search behavior after a related fix. It helps ensure values containing quotation marks are handled correctly, reducing the risk of search issues in spreadsheet pivots.
Original PR description
Adapt tests after a bug fix in o-spreadsheet repo Task: 4061068
Spreadsheet pivot auto-complete tests were updated to reflect a related bug fix. This helps ensure users can search pivot values containing quotation marks reliably.
Original PR description
Adapt tests after a bug fix in o-spreadsheet repo Task: 4061068