Monday, March 16, 2026
9 changes · saas-18.3
New functionality added to Odoo
This update adds comprehensive tests to ensure the smooth synchronization of Gelato products between our systems and Odoo, as well as the accurate processing of Gelato product purchases. These tests improve the reliability and stability of the Gelato integration, contributing to a better customer experience.
Original PR description
Tests for synchronizing Gelato products with Odoo and buying Gelato products are added. task-4527206 Forward-Port-Of: odoo/odoo#244752
Resolved issues and error corrections
This update resolves a limitation in the Odoo Enterprise system by enabling users to select 'Other Expenses' as a valid expense account option when creating loans. Previously, this option was restricted, which could have prevented accurate tracking of certain loan expenses. This change improves the flexibility and accuracy of loan expense reporting.
Original PR description
Allow accounts with the "Other Expenses" type to be selected in the Expense Account field of Loans. task-5946452
This update prevents users from copying data directly from the public Odoo spreadsheet. Previously, users could easily copy and paste information, which posed a risk to data integrity and consistency. This change ensures that data within the spreadsheet remains controlled and accurate.
Original PR description
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
This update addresses a persistent issue where temporary report files were accumulating on systems due to a misconfigured test. The root cause was a test that didn't properly clean up these files, leading to unnecessary storage usage. This fix ensures reports are cleaned up correctly during testing and operation.
Original PR description
Followup to #253053 which assumed it was some sort of race in the report code which would sometimes fail to cleanup the temp files, but after hitting a test failure in #253816 the true culprit was revealed: it was the test #186547 added all along and I didn't even think to run it! Because `test_report_error_cleanup` mocks the `os.unlink` call the `os.unlink` call never happens during that test, so none of the temporary files get deleted, and this is what added a full set of report files to my /tmp every day as I'd run the entire test suite in the morning. To be clear the race was still there and resolving it was reasonable it, but that was not the cause of the leftover temporary files, or if so extremely rarely. Forward-Port-Of: odoo/odoo#253853
This update fixes a persistent problem where Chrome was creating unnecessary temporary files, leading to potential performance issues. By directing Chrome to use its temporary directory as its data directory and then cleaning up this directory during testing, we've eliminated this file clutter.
Original PR description
It's unclear since when or under what configuration exactly, but Chrome(ium?) seems prone to creating directories called `org.chromium.Chromium.*` (or some variant thereof) in the temp dir (some people report them to be prefixed by a `.`) and never clean them. By telling chromium that its tempdir is its data dir, it creates its litter in there, and we remove the entire thing during cleanup, solving the littering. Forward-Port-Of: odoo/odoo#253350
This update resolves an issue where adding attributes to archived product templates caused errors. The fix ensures all variants (active and archived) are considered, preventing template deletion and maintaining archived product options when a template is archived.
Original PR description
When adding attributes to an archived product template, an error was raised because the template was incorrectly deleted. This happened because variant counting only considered active variants. Now counts all variants (active and archived) to prevent template deletion, and filters variants before activation to keep them archived when their template is archived. @qrtl QT6449 Forward-Port-Of: odoo/odoo#252927
This update fixes an issue where follow-up emails were incorrectly sending a generic attachment instead of the actual invoice PDF. Now, the system automatically sends the correct invoice PDF, ensuring users receive the accurate documentation for their invoices. This improves the clarity and accuracy of invoice follow-up communications.
Original PR description
Before, the followup emails used the Invoice's main attachment. This is not correct because a user might have uploaded an arb PDF. Only the actual PDF should be sent. Use `invoice_pdf_report_id` instead of `message_main_attachment_id`. opw-5126420 Forward-Port-Of: odoo/enterprise#98820
This update fixes a usability issue on mobile devices when creating new loans. Previously, a button was hidden and difficult to access, requiring scrolling. The fix ensures a smoother, more intuitive experience for users creating loans on their smartphones or tablets.
Original PR description
Forward-Port-Of: odoo/enterprise#110120
Previously, when users uploaded multiple files to a WhatsApp Discuss channel, only the first file was delivered. This update corrects this issue by ensuring that all uploaded files are sent to the recipient. The fix prevents data loss and improves the reliability of file sharing within WhatsApp.
Original PR description
Multiple attachments uploaded simultaneously to a WhatsApp Discuss channel result in only the first being delivered to the recipient. ### Steps to reproduce 1. Drag and drop multiple files into a…
Multiple attachments uploaded simultaneously to a WhatsApp Discuss channel result in only the first being delivered to the recipient. ### Steps to reproduce 1. Drag and drop multiple files into a WhatsApp Discuss channel. 2. Send the message. -> Odoo shows all files, but only the first reaches the destination. ### Cause WhatsApp's API permits only one media object per message. Odoo's "Composer" enforces this by blocking uploads if an attachment is already present. However, it only evaluates the *current* state; dropping multiple files into an empty composer passes the check because the count is zero. On the server, the WhatsApp backend (constrained by the API) is hardcoded to send only the first attachment, silently discarding the rest. ### Fix Updated frontend validation to inspect the incoming file list during drop and paste actions. The process is now blocked if the total of existing plus incoming files exceeds one, ensuring the user is notified and preventing silent data loss. opw-5889035 Forward-Port-Of: odoo/enterprise#107424