Wednesday, July 1, 2026
9 changes · 19.0
Enhancements to existing features
The shipping setting previously called "Use Batch Shipping" has been renamed to "Use Multicollo". This makes the wording match Sendcloud’s terminology and reduces confusion for users when configuring delivery options.
Original PR description
In order to avoid confusion for the customer, "Use Batch Shipping" was renamed to "Use Multicollo".This way it is consistent with the terminology used by Sendcloud. task-6048477
Resolved issues and error corrections
This update relaxes an automated test so it accepts any valid document number format instead of expecting one exact value. It prevents false failures when the document number increases during repeated testing, making the validation more reliable.
Original PR description
**Why the fix:** This step failed from time to time as we did some batch testing on the runbot with the same database, and because of this, the Número de Documento increased, making it SETF990000002 or more. This error existed before 68da209 but by fixing the refund flow in said commit, this error has been appearing way more frequently. As this has already happened a few times in 18.2, it is still the targeted version for this fix. We now use a regex to make sure that we have **Número de Documento: SETF** followed by some numbers, but we do not specify that it should be SETF990000001 anymore. runbot-241997 Forward-Port-Of: odoo/enterprise#121211
This update corrects a test for Mexican electronic invoicing so it works whether the accounting app is installed or not. It matters because payment statuses can now be recognized consistently, preventing false test failures in automation.
Original PR description
If accountant is installed, payment state of unreconciled payment switch from 'paid' to 'in_payment'. Not having accountant break the test. runbot-939445 Forward-Port-Of: odoo/enterprise#121113
When a business card is scanned, the city information is now imported correctly along with the other contact details. This makes newly created or updated contacts more complete and saves users from entering the city manually.
Original PR description
Previously, when user scans any business card, every information was fetched except for the city name. After this commit the city field will be properly fetched. task-6332914 Forward-Port-Of: odoo/enterprise#121766
When users choose documents to attach or link, the extra action buttons now stay hidden in that selection dialog. This makes the interface less cluttered and helps prevent confusion while picking documents.
Original PR description
When selecting documents for attachment/link, control panel actions were displayed upon selection. The document selection dialog uses the secondary documents view introduced in: https://github.com/odoo/enterprise/pull/89030/changes/f93c159c106d1dde70910ec590f8739e549b19cf Several document management actions were already hidden through the `documents_view_secondary` context, but `DocumentsAction` was still displayed upon selection. Hide `DocumentsAction` in the secondary view. Task-6236888
The Depreciation Schedule report now leaves the account code blank when that information is not available, instead of showing the word “False”. This makes the report clearer and avoids confusing output when multiple companies are selected.
Original PR description
The issue is occur, when multiple companies are selected and the Depreciation Schedule report is opened, report correctly displays the account code for the company selected as the root company.…
The issue is occur, when multiple companies are selected and the Depreciation Schedule report is opened, report correctly displays the account code for the company selected as the root company. However for the other selected companies, the account code is displayed as False To avoid displaying False in the report changed the behavior to pass a null value whenever the account code is not available. For more details, please refer to the attached video. Root Cause The issue occurs because the code field is set to `False` [here](https://github.com/odoo/odoo/blob/ff64328283ee3bcc361fa0604bd4b9da8e62e803/addons/account/models/account_account.py#L337) for companies that are not considered the root company. As a result the report directly displays False instead of leaving the field null Steps to Reproduce 1.create a demo database in 19.0 2. Create two assets, each belonging to a different company. 3. Open the Depreciation Schedule report. 4. Select the first company, then select the second company as well. 5. Notice that the account code is displayed correctly for the root company, while `False` is shown for the other company. OPW-6239737 UPG-4196503 with out fix <img width="1852" height="579" alt="image" src="https://github.com/user-attachments/assets/b99f343d-b624-4d95-b826-6afdd2ebaa4c" /> with fix <img width="1912" height="731" alt="image" src="https://github.com/user-attachments/assets/19112a08-1958-496d-868f-a4091a745842" /> see video https://github.com/user-attachments/assets/ec51bb47-6c64-4cee-b484-7a359ed36ee0
The Journal Audit report now generates PDFs without an extra blank page at the end when certain summary content is missing. This makes the printed report cleaner and avoids confusion for users reviewing or sharing it.
Original PR description
Steps to reproduce: 1. Set the active company as My Company (san francisco) 2. Navigate to Accounting > Review > Journal Audit 3. Remove all journals from the report except Bank and Misc. 4. Use the PDF action button to print the report. 5. The last page of the report is completely empty. https://drive.google.com/file/d/1otpniJgt1UNCe2hrUBwqIK58dGuXpu8T/view?usp=sharing This commit ensures that the Journal Audit report does not have blank pages when the global tax summary section is not present. It uses some features of QWeb outlined in the following docs article: https://www.odoo.com/documentation/19.0/developer/reference/frontend/qweb.html#loops opw-6224670
## **Issue:** When validating a delivery, users with Sales: Own Documents Only and Inventory Administrator access rights can encounter an access error if the delivery belongs to a sale order owned by another salesperson. ## **Steps to reproduce:** - Install sale_subscription_stock. - Create a user with Sales: Own Documents Only and Inventory Administrator access rights. - Create a sale order as another user. - Validate the delivery with the restricted user. ## **Solution:** During _a
Original PR description
## **Issue:** When validating a delivery, users with Sales: Own Documents Only and Inventory Administrator access rights can encounter an access error if the delivery belongs to a sale order owned by…
## **Issue:** When validating a delivery, users with Sales: Own Documents Only and Inventory Administrator access rights can encounter an access error if the delivery belongs to a sale order owned by another salesperson. ## **Steps to reproduce:** - Install sale_subscription_stock. - Create a user with Sales: Own Documents Only and Inventory Administrator access rights. - Create a sale order as another user. - Validate the delivery with the restricted user. ## **Solution:** During _action_done(), [This line](https://github.com/odoo/enterprise/blob/19.0/sale_subscription_stock/models/stock_picking.py#L45) is checking subscription_state. Since the user does not have read access to the sale order, reading this field raises an access error and prevents the delivery from being validated. As the method only needs to read the subscription state, access the field with sudo() to avoid the unnecessary access error while preserving the existing business logic. Runbot Video : [Video](https://drive.google.com/file/d/1d7U2jTCxaaVk2YJcy3bi2SlYuT-yXMsu/view?usp=drive_link) OPW - 6295712
Steps to reproduce =================== - Install documents_hr. - Log in with admin. - Create a new company `Test`. - Go to Document and choose the new company (top right). - Go to `My Drive`: a folder named `Employees - Test` has been created. This new folder should be created in the `Company` root instead of the `My Drive,` which will hold all the employee folders. Technical =========== When the main employee folder is created via `_generate_employee_documents_main_folders` `ow
Original PR description
Steps to reproduce =================== - Install documents_hr. - Log in with admin. - Create a new company `Test`. - Go to Document and choose the new company (top right). - Go to `My Drive`: a folder named `Employees - Test` has been created. This new folder should be created in the `Company` root instead of the `My Drive,` which will hold all the employee folders. Technical =========== When the main employee folder is created via `_generate_employee_documents_main_folders` `owner_id` falls back to the current user, which leads to computing the `user_folder_id` as `My drive,` and so that's why the newly created folder starts appearing there instead of the `Company` root. This PR addresses the issue and sets the `owner_id` to False, which leads to show the main employee folder in the company root. Task-6267352