Wednesday, October 22, 2025
14 changes · saas-18.3
Enhancements to existing features
The point of sale preparation display now prevents unwanted scrolling gestures on small and medium iOS devices. This helps staff keep the preparation screen stable and easier to use during service.
Original PR description
This commit introduces a small fix for IOS (small and medium) devices to prevent touch screen gesture in the pos preparation display. Task : 5113851
This update adds missing identifiers to all Finnish tax report lines. This helps tax report exports reliably match each line to the correct template field, reducing the risk of incomplete or inconsistent exported reports.
Original PR description
The aim of this commit is adding code for all the tax report lines. Before, some lines didn't have any code set on it, now all these lines have a code. The change is motivated by the tax report export where we use the code as key in the dict given to the export template. task-5135868 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232543 Forward-Port-Of: odoo/odoo#229876
Follow-up and customer statement reports now have a cleaner header with centered titles and less clutter. They also show the partner bank account below the Tax ID, making key payment details easier for customers to find.
Original PR description
This commit updates the layout for follow-up and customer statement reports. Changes made: --- **Follow-up & Customer Statement Reports:** - remove journal and filter details from header. - centered the title of the report. - Added the partner bank account display below the Tax ID. --- task-4823880 Forward-Port-Of: odoo/enterprise#90068
Resolved issues and error corrections
Shopee orders that are delivered but still awaiting buyer confirmation are now handled correctly. This prevents Odoo from incorrectly showing these delivery orders in an error state, reducing confusion for sales and operations teams.
Original PR description
When the delivery order is delivered but not yet confirmed by the buyer, an error state is set in the delivery order. 'TO_CONFIRM_RECEIVE' should be included in the delivery status. It refers that the package is delivered but not confirmed by the buyer. It should not be regarded as an error state in Odoo. task_id: 4965896 Forward-Port-Of: odoo/enterprise#97613
Point of Sale now correctly loads special products that are assigned to the same company as the PoS configuration. This prevents missing products during data reloads and helps ensure company-specific PoS setups work as expected.
Original PR description
### Problem When assigning a special product to a company, the product will not be loaded when accessed from a PoS config of the same company. The issue occurs because `product.sudo().company_id == self.company_id` fails as `self` is an empty recordset. ### Steps to Reproduce on Runbot * Add a company to the special PoS product. * Access a PoS config on the same company. * Reload data. * The product will not be loaded. original PR: https://github.com/odoo/odoo/pull/194451 opw-5157959 Forward-Port-Of: odoo/odoo#231273
Saudi e-invoices now keep negative amounts correctly for invoice lines that are not subject to VAT. This prevents unnecessary ZATCA validation warnings when sending invoices that include negative 0% tax lines, improving compliance feedback and reducing manual follow-up.
Original PR description
Adding a negative line with 0% tax on an invoice will make the validation succeed with a warning Steps to reproduce (with a SA company setup): - Create an invoice - Add a negative line with 0% tax - Confirm and send to Zatca Issue: The following warning can be observed in chatter [202] BR-O-08 : [BR-O-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is ' Not subject to VAT' the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are 'Not subject to VAT'. This occurs because in the e-invoice, the tax base is transmitted in absolute value opw-5072577 Forward-Port-Of: odoo/odoo#231737
Updating the UTM module could fail if users had created or edited tracking sources or media with duplicate names, such as LinkedIn. This change protects the default tracking records during module updates so upgrades complete without disrupting marketing link tracking data.
Original PR description
Steps to reproduce: 1) Install utm module. 2) In link tracker edit utm named LinkedIn or any and add another with same name. 3) update the module. We get an error that utm_medium or utm_source should be unique. create goes through `_get_unique_names` method so its only a problem when updating the record. 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 Forward-Port-Of: odoo/odoo#202567
Fiscal position tax mappings now ignore inactive taxes, preventing invoices from using taxes that should no longer be available. This helps keep invoice tax calculations aligned with current tax setup and avoids accidental use of obsolete tax rules.
Original PR description
With this commit we exclude inactive taxes from the tax mapping of fiscal positions. Steps: - Create a fiscal position FP that maps an active tax to an inactive one - Create an invoice, set FP and create add an invoice line with a product having the active tax -> The tax mapping is applied and the inactive tax is set, it shoudln't opw-5117775 Forward-Port-Of: odoo/odoo#230729
The event registration page now shows the date selection labels in the visitor's chosen language. This improves the experience for multilingual event attendees by avoiding untranslated English text during registration.
Original PR description
Scenario: - adds slots to an event - register to that event with another language Result: "Selected Date" or "Select a Date" is not translated or translatable. Fix: wrap those JS strings with _t function. opw-5167911
This update fixes and improves Odoo's internal unit testing tools, especially Hoot, so developers can diagnose failed tests and server errors more accurately. It also improves the test interface and documentation, reducing maintenance friction while keeping changes limited to the testing ecosystem.
Original PR description
## Pull Request HOOT 38 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/97851 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232474 Forward-Port-Of: odoo/odoo#231263
This pull request updates several automated tests so they work correctly with recent changes in Odoo's Hoot testing tools. The changes are limited to the test environment and help keep quality checks reliable without affecting customer-facing features.
Original PR description
## Pull Request HOOT 38 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/232536 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A typo in the Web Studio field list was corrected from “Multine” to “Multiline”. This makes the field name clearer and avoids confusion when users create or edit views in Studio.
Original PR description
This commit fixes a typo in one of the newFields name: 'Multine' -> 'Multiline' Forward-Port-Of: odoo/enterprise#97713
Invoice terms and conditions now refresh in the customer's selected language when that language is changed during invoice creation. This prevents invoices from showing terms in the wrong language and helps maintain clear communication with customers.
Original PR description
Issue: When changing the customer’s language during invoice creation, the terms & services were not retranslated, unlike when creating a new partner in a different language. Repro Steps: 1. Create an invoice with terms link or plain enabled. 2. Change the partner's language from the invoice creation view. 3. Terms is not translated. Cause: The translation compute was only triggered on partner change, not language change. Fix: Added dependency for partner_id.lang to the narration compute to ensure it updates when the language changes. opw-5031933 Forward-Port-Of: odoo/odoo#230800
Long mailing list names now remain inside their designated area instead of overlapping nearby fields. This keeps the Marketing mailing list view readable and easier to use when records have lengthy names.
Original PR description
Issue: When you create a long name for your maling list, the name overflows over the other fields in the view. Repro: Go to marketing -> mailing lists -> create a fairly long name -> notice name overflows in the view. Cause: Small bootstrap issue, name field not limited to it's container. Fix: Added a simple w-100 to limit the field to 100% of it's container. opw-5153270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232312