Daily updates from Odoo
Friday, September 5, 2025
7 changes · 18.0
New functionality added to Odoo
A new payment button on the Point of Sale ticket screen lets staff go directly to payment without first reopening the order. This reduces extra steps during checkout and can make in-store service faster.
Original PR description
In this Commit: - Added a payment button on the ticket screen to go directly to the payment screen, instead of loading the order first and then navigating to the payment screen. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
HDFC batch payment files now use the bank’s required transaction codes, date format, and file layout. This reduces the risk of rejected payment uploads while preserving existing header behavior and configuration flexibility for other banks.
Original PR description
- Updated the HDFC bank template to match the required file structure. The transaction type is now based on the payment method code instead of its display name, with explicit mappings to HDFC codes
(RTGS → R, NEFT → N, Fund Transfer → I, Demand Draft → D).
- Relabel the `date` field and export it using the format `%d/%m/%Y` for HDFC Bank Template.
- During CSV export, the header row is skipped when generating files for HDFC, while other banks continue to include it.
- Improve CSV export behavior:
- For HDFC, the header row is skipped.
- For other banks, headers remain included.
- Apply field-level mappings and date formatting defined in the bank configuration.
These changes ensure that batch payment exports comply with bank’s file specifications while keeping the solution flexible for other templates.Resolved issues and error corrections
This update brings the spreadsheet component to its latest version and fixes several issues affecting spreadsheet imports, pivot data, formulas, borders, and calculations. Users should see fewer errors when opening Excel files, working with pivot-based data, or using formulas in spreadsheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0f02dde52 [REL] 18.0.43 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0f02dde52 [REL] 18.0.43 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/e093ffbd5 [FIX] menu_items: fix sequence calculation for pivot data sources [Task: 5025230](https://www.odoo.com/odoo/2328/tasks/5025230) https://github.com/odoo/o-spreadsheet/commit/e726d26b0 [FIX] xlsx: make import verbose [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/f3f585058 [FIX] evaluation: fix operation with empty matrices [Task: 5001658](https://www.odoo.com/odoo/2328/tasks/5001658) https://github.com/odoo/o-spreadsheet/commit/14a6da6d6 [FIX] xlsx: cannot import CF with formulas [Task: 4945945](https://www.odoo.com/odoo/2328/tasks/4945945) https://github.com/odoo/o-spreadsheet/commit/97ccf4cb0 [FIX] pivot: handle vectorized formula [Task: 5043187](https://www.odoo.com/odoo/2328/tasks/5043187) https://github.com/odoo/o-spreadsheet/commit/ea7ea0abe [FIX] borders: Recompute borders on `SET_BORDERS_ON_TARGET` [Task: 5024825](https://www.odoo.com/odoo/2328/tasks/5024825) 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: Ronak Mukeshbhai Bharadiya <rmbh@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>
When invoices are created for a child contact, Odoo now checks the parent company’s preferred invoice sending method. This prevents invoices from being sent by email when the company is configured to use Peppol, improving consistency for customers with multiple contacts.
Original PR description
**Steps to reproduce** - Have a partner with Invoice Sending configured 'by Peppol' - Create a child contact for that partner - Make 2 invoices for the child contact - Select both and click 'Send' **Issue** The system will try to send invoice by mail, even if Peppol is correctly setup This occurs because when retrieving the default sending method we only look at the partner of the move, that, being a child contact, does not have invoicing info opw-4925876
This fixes an issue where adding a prepaid service line to an already confirmed sales order showed a zero cost instead of the product's configured cost. The correction helps keep sales margins accurate when orders are updated after confirmation.
Original PR description
…O confirmation **Problem:** When a service is added on a SO after the confirmation the cost column (purchase_price) is 0 **Steps to reproduce:** - make sure that sale_timesheet_margin is installed - create a service with a positive cost - create a SO for 1 unit of this service - confirm - add a new line on the SO for the same service **Current behavior:** the cost is 0 **Expected behavior:** the cost should be the cost you set on the product form **Cause of the issue:** since this PR https://github.com/odoo/odoo/pull/207228 services that are "ordered_prepaid" on confirmed sale order are filtered out the purchase price computation https://github.com/odoo/odoo/blob/5f6d2afa8c09fe72c01d056ebef01214567a4a99/addons/sale_timesheet_margin/models/sale_order_line.py#L9-L15 opw-5016622
Fixes a website editor crash that could happen when saving links in mega menus using the Cards template. The editor now correctly distinguishes color styling from other text formatting and avoids unsafe format removal on styled buttons, improving editing reliability.
Original PR description
Description of the issue this PR addresses: Issue 1: Steps to Reproduce: - Open the website. - Create a mega menu. - Enter edit mode. - Change the mega menu template to “Cards”. - Click on any option…
Description of the issue this PR addresses: Issue 1: Steps to Reproduce: - Open the website. - Create a mega menu. - Enter edit mode. - Change the mega menu template to “Cards”. - Click on any option available in the mega menu. - A link popover will open. - Click the Edit link button in the popover. - Click the Apply button to save the link. - A traceback occurs. The error occurs because the text-wrap class is applied to the link. When the hasColor method is triggered, it checks whether a.nav-link has a text color class. However, TEXT_CLASSES_REGEX incorrectly matches text-wrap as a color class. As a result, the removeColor method attempts to remove it and triggers _applyColor to remove the color, but in _applyColor method it does not find any color to remove on selected text. As a result, the removeColor process enters an infinite loop, which eventually leads to a traceback. Solution: Update TEXT_CLASSES_REGEX so that it only matches valid text color classes and excludes formatting classes such as text-wrap, text-center, etc. Issue 2: This commit ensures that the remove format action is disabled when a button (.btn element) has custom color or background color applied. Because buttons include padding, there is no proper way to remove a background color from a partially selected button, so the action must be ignored in this case. task-5062715 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Customer follow-up reminders now avoid resending the same final reminder every day for invoices that have already been included in that follow-up step. This prevents customers from receiving duplicate overdue invoice emails when there are no new invoices to chase.
Original PR description
**Steps to reproduce:** - Install Accounting - Go to "Accounting / Configuration / Invoicing / Follow-up Levels" - Create a unique follow-up level: * Remind 1 day after due date * Send Email:…
**Steps to reproduce:** - Install Accounting - Go to "Accounting / Configuration / Invoicing / Follow-up Levels" - Create a unique follow-up level: * Remind 1 day after due date * Send Email: [checked] * Automatic: [checked] - Create an invoice: * Customer: [any] * Invoice Date: [1 month ago] * Due Date: [1 month ago] * Invoice Lines: [any] - Confirm the invoice - Go to "Settings / Technical / Automation / Scheduled Actions" - Open "Account Report Followup; Execute followup" - Run it manually => A reminder is correctly sent to customer (i.e. message on partner record) - Wait for the following day - Run the scheduled action again **Issue:** The same reminder in sent again. The last reminder will be sent every day even if there is no new invoice. **Cause:** When computing the follow-up status for a contact, all the entries that are due are taken into account. The entries that have already been included in a follow-up should be ignored when computing the same follow-up again. **Solution:** A field on a journal item (i.e. followup_line_id) tracks in which follow-up level the item has been included. We can exclude the journal items that has this field set to the next follow-up level. opw-4964103 Forward-Port-Of: odoo/enterprise#94000 Forward-Port-Of: odoo/enterprise#92191