Monday, October 27, 2025
16 changes · saas-18.2
Resolved issues and error corrections
Fixed an issue that could make the system crash when users expanded a Spanish VeriFactu document view. The update removes an unsupported messaging panel from that screen, improving reliability without changing business workflows.
Original PR description
The system will crash with error when user clicks on expand button. **Error:** `AttributeError: 'l10n_es_edi_verifactu.document' object has no attribute '_get_thread_with_access'` **Cause:** - `l10n_es_edi_verifactu.document` does not inherits ['mail.thread', 'mail.activity.mixin'] and used chatter in it's form view. - In this PR, removed `<chatter/>` from view. Already fixed for master here: https://github.com/odoo/odoo/pull/231477 **sentry-6792833694** I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231739 Forward-Port-Of: odoo/odoo#231601
This fix prevents German e-invoice XML files from showing a generic label like “Invoice Address” as the customer name when an invoice address has no contact name. The generated e-invoice now uses the main commercial partner name instead, keeping electronic invoice data consistent with the PDF invoice.
Original PR description
**Steps to reproduce:** - Install Contacts, Accounting and l10n_de - Switch to a German company (e.g. DE Company) - Go to Contacts - Create a German contact with "XRechnung CIUS" as electronic format…
**Steps to reproduce:** - Install Contacts, Accounting and l10n_de - Switch to a German company (e.g. DE Company) - Go to Contacts - Create a German contact with "XRechnung CIUS" as electronic format - For this contact, create an "Invoice Address" without "Contact Name" - Create an invoice with the invoice address as customer - Confirm the invoice - Generate "XRechnung" via "Send & Print" button **Issue:** In the generated ULB XML and in factur-x.xml file embedded in the PDF, the customer name contains the mention "Invoice Address", which doesn't appear on the PDF of the invoice. **Cause:** The used invoice address has no name, so its "display_name" is build from the name of the parent contact and the type of the child contact (i.e. Invoice Address). **Solution:** Only use "display_name" of a contact if "name" is set. Otherwise fall back on "display_name" of the commercial partner. opw-5159291 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232819
Email links for products now send internal users to the product record they are allowed to access, instead of incorrectly sending them to the shop page. Public and portal visitors still see the storefront product page, preserving the expected customer-facing behavior.
Original PR description
### Issue: Mail action redirects only to shop page, even though the user has internal access to the product page. #### To reproduce: 1- Create a db with website_sale installed. 2- Create a product and publish it. 3- In the product page chatter, send a message to an internal user 4- In received email, click on `View Product` button 5- As you see the shop page opens This is reproduced after #202555 Inside `_get_access_action`, if the product is published, we are returning `website_url`. We can add a check to do that only if user is portal or public. opw-5155281 Forward-Port-Of: odoo/odoo#231961
Fixed a Point of Sale issue where clicking details inside an order line could make the numpad open and immediately close. Cashiers can now select order line details, such as eWallet balance information, without the numpad disappearing unexpectedly.
Original PR description
Steps to reproduce: =================== - Click on an orderline - Then click on a detail inside it (e.g., eWallet Balance line) - The numpad first opens and then closes right away Issue: ====== - Clicking on a detail inside the orderline makes the numpad open and close at the same time - This makes it impossible to use the numpad properly Cause: ====== - The click from the child element also reaches the main orderline click - Because of this, the numpad gets two clicks (open and close) Fix: ==== - Added `stopPropagation` in the click handler to block event bubbling - Now the numpad only reacts once and stays open as expected Task: 5000327 Forward-Port-Of: odoo/odoo#227675
This update corrects a small issue in the Mail Discuss test setup related to chat bubble behavior. It helps keep automated checks stable, reducing false failures during release validation without changing day-to-day user workflows.
Original PR description
Backport of fix https://github.com/odoo/odoo/pull/227445 Fixes runbot-error-233607
The blog archive dropdown now stays open when users click it, allowing them to choose a date before the page changes. This fixes a frustrating sidebar issue that blocked visitors and editors from using archive navigation properly.
Original PR description
Before this fix, the "Archive" dropdown in the blog sidebar caused the entire page to reload immediately after clicking the selector — even before actually selecting a date option. This prevented users from interacting with the dropdown properly. Steps to reproduce: 1. Install `website_blog` with demo data or create a new blog. 2. Edit a page and enable the "Sidebar" in the snippet options. 3. In the "Archive" section, click the dropdown to select a date. - The page reloads immediately before the selection can be made. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue where separators in the showcase email template could appear incorrectly after saving in Email Marketing. This helps ensure marketing emails keep their intended layout when received by customers.
Original PR description
Problem: When adding the `s_showcase` template in Email Marketing and saving, the separator is not properly rendered in the received email. Solution: Backport fix from `web_editor/convert_inline`: https://github.com/odoo/odoo/commit/7e3e6c1f42d97c2bb6830ed59dbec3a3b745d0c0 opw-5077992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230773
This fix prevents an accounting process from failing when an empty value is encountered where a number was expected. It helps users continue working without seeing a disruptive error message in affected accounting records.
Original PR description
Description of the issue/feature this PR addresses: ValueError: invalid literal for int() with base 10: '' Current behavior before PR: ValueError: invalid literal for int() with base 10: '' Desired behavior after PR is merged: not giving valueerror --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232965
This fixes a failing automated check related to chat bubble display in Discuss. It helps keep the messaging area reliable by preventing a known test failure from blocking validation of updates.
Original PR description
Backport of fix https://github.com/odoo/odoo/pull/227445 Fixes runbot-error-233607
The French FEC import now uses a valid debit account for rounding entries after a chart of accounts change made the previous account code a group rather than a usable account. This prevents import issues and helps accounting data load correctly for French companies.
Original PR description
This commit:https://github.com/odoo/odoo/commit/0ebf80b613d229ef5fb07ea97d406496f9df6254 change the COA of french localisation and the account 6850 was change to be an account group instead. This commit will change the debit account code used to put an existing one instead. no task-id Forward-Port-Of: odoo/enterprise#97283 Forward-Port-Of: odoo/enterprise#96972
This update makes rental-related automated tests more reliable when demo data is not installed. It ensures the tests no longer depend on missing accounting or stock setup, reducing false failures in validation environments.
Original PR description
The test was failing in no-demo environments because it relied on accounting and stock configurations that were not present. When the test attempted to set property_valuation = 'real_time' on the product category, it triggered a ValidationError because the related stock accounts had not been properly set up for the test's transaction context. runbot-error-230417 Forward-Port-Of: odoo/enterprise#94182 Forward-Port-Of: odoo/enterprise#92292
This update adjusts internal performance tests to reflect an extra calendar lookup needed when employees have different work calendar types. It helps ensure payroll and appointment-related checks remain accurate without changing day-to-day user workflows.
Original PR description
- adjusted some query counters to account for the extra search in `_attendance_intervals_batch` done by the method `_get_calendar_at` task-id: 5065160 Forward-Port-Of: odoo/enterprise#96848
Belgian companies connecting to CodaBox can now use their company registry number when their VAT number is marked as not applicable. This prevents connection issues for non-taxable companies and keeps the setup flow consistent with companies that leave the VAT field empty.
Original PR description
If a company is not subject to taxes, they may not have a VAT number. In that case, the field can be left empty, such that the Company Registry is used instead for the CodaBox connection. However, the case where "/" (Non Applicable) was used as the VAT number was handled. This commit now handles VAT="/" in the same way it handles no VAT at all by using the company registry as a fallback. The commit also cleans up how the company ID is used to avoid duplicated code by creating a computed field. opw-5164155 Forward-Port-Of: odoo/enterprise#98025
The complete contact address now includes the second street address line when it is filled in. This ensures emails, templates, and other outputs using the complete address show the full customer or partner address correctly.
Original PR description
Issue: If a user with `street2` wants to utilize the `contact_address_complete` field, the `street2` field is not included. Purpose of this PR: To include the `street2` field in the `contact_address_complete` Steps to reproduce on Runbot: install contact fill in a contact's `street2` create email template that uses the `contact_address_complete` `street2` is omitted from the complete address opw-5186218 Forward-Port-Of: odoo/enterprise#98103
Code cleanup and technical improvements
This update simplifies internal test files by removing unnecessary grouping labels that duplicated file names or caused confusion. It does not change product features, but helps developers review and maintain tests more easily.
Original PR description
This commit removes test files using a single 'describe' call to wrap its tests, with a name being either redundant with the test file itself or is too misleading.
Regular expression used to find isolated suites:
```js
/^\s*import.*(?:\n(?!describe\()(?!test\().*)+\ndescribe\("[\w\s.]+",.*(?:\n(?!describe\().*)+\n\}\);\n(?!\n)/
```
Tip for reviewers: tick **"Hide whitespace"** when reviewing diff
<img width="237" height="205" alt="image" src="https://github.com/user-attachments/assets/373f7cc6-5e0e-4599-968a-39aad8fac2f0" />
Enterprise: https://github.com/odoo/enterprise/pull/98046
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#233006This update simplifies internal test files by removing unnecessary wrapper labels that duplicated file names or caused confusion. It does not change product behavior, but it makes tests easier for developers to read and maintain, supporting future reliability.
Original PR description
This commit removes test files using a single 'describe' call to wrap its tests, with a name being either redundant with the test file itself or is too misleading.
Regular expression used to find isolated suites:
```js
/^\s*import.*(?:\n(?!describe\()(?!test\().*)+\ndescribe\("[\w\s.]+",.*(?:\n(?!describe\().*)+\n\}\);\n(?!\n)/
```
Tip for reviewers: tick **"Hide whitespace"** when reviewing diff
<img width="237" height="205" alt="image" src="https://github.com/user-attachments/assets/373f7cc6-5e0e-4599-968a-39aad8fac2f0" />
Community: https://github.com/odoo/odoo/pull/233006
Forward-Port-Of: odoo/enterprise#98046