Thursday, May 28, 2026
13 changes · saas-18.3
Resolved issues and error corrections
This update resolves an issue where Philippine withholding tax (WHT) repartition entries were incorrectly contributing to the periodic VAT closing process. By disabling this contribution, we ensure accurate and compliant VAT reporting for our Philippine users. This fix improves the reliability of financial data.
Original PR description
Set `use_in_tax_closing` to False on withholding tax (WHT) repartition lines, as they should not contribute to the periodic VAT closing entry. task-6146238 Forward-Port-Of: odoo/odoo#266623
This update resolves an issue where error handling for JSON responses within Odoo was failing due to inconsistencies in how the requests library parses JSON based on the simplejson library's presence. By patching the library, this ensures consistent error handling and prevents unexpected failures when processing external data.
Original PR description
The requests library uses different libraries to parse json objects depending on whether or not the simplejson library is installed (https://github.com/psf/requests/blob/dc9dbdfb3434c6e58d48fd102f93e5342308817e/src/requests/compat.py#L74). This in turn causes our try/excepts to fail if the simplejson library is installed in the env we simply re-raise the json error in case the simplejson library is installed so our try/excepts flows are not broken by the existence of a random package opw-6150349 Forward-Port-Of: odoo/odoo#265031 Forward-Port-Of: odoo/odoo#264303
This update fixes a minor issue within the HTML editor where color selections weren't consistently updating in the toolbar. The team created a utility to wait for the browser's selection changes, ensuring the toolbar reflects the correct color before tests are run. This improves the reliability of the HTML editor's color selection functionality.
Original PR description
Before this commit: the test `cell's selected color should be shown in toolbar (3)` could fail when the bd color indicator isn't updated before the checking After this commit: we create an util to wait for the selectionchange event is fired by the browser to make sure the toolbar is updated before verifying. runbot-937780 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#266445
This update fixes a problem where vendor bills generated by external systems were missing item references in the PDF output. The change ensures that all product lines now correctly display the internal item reference, improving the accuracy and clarity of invoices. This ensures consistent and complete product information for our customers.
Original PR description
Some XML vendor bills generated by external ERPs were missing the Description tag, which typically contains both the [ITEM_REF] and ITEM_NAME. As a result, product lines in the generated PDF could appear without the internal item reference. This commit ensures that the item reference is always included in the displayed product line. task-6080328 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259086
This update resolves a potential crash in Odoo's test cases related to how mail messages are handled. Specifically, the system now safely checks for `None` values before accessing a key attribute, preventing an error when a mail message isn't present. This enhances the reliability of our automated testing.
Original PR description
This changes https://github.com/odoo/odoo/pull/230766/changes cause the issue. I fix `AttributeError` when `mail_message` is None in `assertNoMail` method. The method was accessing `mail_message.message_id `without checking if `mail_message` is `None` first, causing a potential crash in test cases. Added a conditional check to safely handle None values before accessing the message_id attribute. @qrtl Forward-Port-Of: odoo/odoo#255720
This update resolves an issue where attachments added to emails sent via the 'Send by Email' action were disappearing after refreshing the chatter window. The fix restricts attachment saving to the full composer view, ensuring consistent functionality across different email composer types. This improves the reliability of sending emails with attachments.
Original PR description
**Steps to reproduce:** - Install Sales app - Create a Sales Order - Click on the 'Send by Email' action - Add an attachment and send it - Open the chatter to create a log note - Attachment is…
**Steps to reproduce:** - Install Sales app - Create a Sales Order - Click on the 'Send by Email' action - Add an attachment and send it - Open the chatter to create a log note - Attachment is attached to the new message - It disappears on refresh **Issue:** Attachment upload widget was moved to the toolbar of the composer with [1], which split it into `mail_composer_attachment_selector` and `mail_composer_attachment_list`. Then with [2] the selector logic was changed to use `FileUploader` instead of `FileInput` to get the attachment synced when switching back and forth between full and normal chatter composers. But this should not impact action composers created with `'mail.email_compose_message_wizard_form'`. **Fix:** Restrict the attachment save to the full composer using context. [1] https://github.com/odoo/odoo/commit/cee3c8146863300242f9f2d109743a50c2b91027 [2] https://github.com/odoo/odoo/commit/9f7249a141b618fc8640a65d1f7fc20023156ce3 opw-5164504 Forward-Port-Of: odoo/odoo#266091 Forward-Port-Of: odoo/odoo#265736
This update resolves an issue where setting Intrastat fields on product templates without associated products would trigger an error. The fix ensures that the system correctly handles scenarios where product variants are not defined, preventing unexpected errors and improving data consistency.
Original PR description
Problem: The Intrastat fields on product.template are computed without being stored. They are stored in product.product and the same values are used when computing the values on product.template. When trying to set the Intrastat fields on a product template without any product, an RPC error is raised without specifying the reason. Steps to reproduce: 1. Create a new product (product.template) 2. Add an attribute to the product with Variant Creation set to Dynamic, this will set no product variants (product.product) for the product template. 3. Try to set the Intrastat Commodity Code on the product template 4. Save the product template 5. Notice the RPC error raised without any explanation opw-6179705 Forward-Port-Of: odoo/enterprise#117856
This update fixes a bug where broken link trackers were appearing in the list and prevents users from creating trackers with invalid codes. The system now ensures tracker codes are valid and disables editing the target link after tracker creation, streamlining the process and improving data accuracy.
Original PR description
1. Remove the possibility to create link tracker with an empty code. Empty code tracker do not work, but still appear in the tracker list. Only accept alphanumerical chars in the tracker code. 2. Set the target link input as disabled after generating the tracker, since editing the target link at this point would have no impact. task-4531974
This update fixes an issue where new link previews in the technical view displayed a technical ID instead of a user-friendly 'New' label. The change ensures a cleaner and more intuitive experience for users creating link previews, showing 'New' until saved and the actual URL upon saving.
Original PR description
**Problem:** Opening a new `mail.link.preview` record from the technical view shows the internal record reference (e.g. `mail.link.preview,NewId_0x...`) in the breadcrumb instead of the standard…
**Problem:**
Opening a new `mail.link.preview` record from the technical view shows the internal record reference (e.g. `mail.link.preview,NewId_0x...`) in the breadcrumb instead of the standard "New" label.
**Steps to reproduce:**
1. Settings / Technical / Discuss / Link Previews
2. New
3. Observe the breadcrumb
**Current behavior:**
The breadcrumb displays `mail.link.preview,<id>`.
**Expected behavior:**
The breadcrumb should display "New" until the record is saved, and the source URL once saved.
**Cause of the issue:**
The model defines no `name` field and does not set `_rec_name`, so the default `_compute_display_name` falls into its fallback branch and returns `f"{record._name},{record.id}"` — exposing the technical reference in the breadcrumb both for unsaved records (`NewId_...`) and saved ones.
**Fix:**
Setting `_rec_name = 'source_url'` lets the standard display name machinery compute a meaningful label from the existing required field. Unsaved records then surface the standard "New" placeholder via the web client and saved records surface their URL, without introducing a redundant `name` field or overriding the compute.
opw-6095012
Forward-Port-Of: odoo/odoo#263577This update upgrades the Windows installer to use PostgreSQL 16, addressing the outdated and unsupported PostgreSQL 12 version. Additionally, the installer now uses a dedicated Odoo user for database connections, enhancing security and stability. This change ensures compatibility with current PostgreSQL standards and best practices.
Original PR description
The Windows installer installs PostgreSQL 12. That version was chosen for its small size, but now in 2026 the size doesn't matter as much anymore. Also, version 12 is no longer supported, so it's time to bump to version 16. While at it, this commit adds an Odoo user for the PostgreSQL connection instead of using the superuser. Forward-Port-Of: odoo/odoo#266059 Forward-Port-Of: odoo/odoo#265134
This update resolves a compatibility issue with a key library used to handle XML data within Odoo. The change ensures Odoo continues to function correctly with the latest version of the lxml library, which is a foundational component. This update is a routine maintenance task.
Original PR description
Note: support for version 6+ of lxml has been merged in odoo/odoo@4b1797fccdf1447a8adb817148cc39bc322428a6 runbot-938365 Forward-Port-Of: odoo/odoo#266627
This update fixes a potential issue where users could inadvertently select inactive Intrastat codes when setting them on products. The system now displays a warning message, preventing users from selecting invalid codes and ensuring data accuracy for reporting. This improves data integrity and reduces the risk of errors.
Original PR description
Problem: When choosing an intrastat code on a product, all the codes are shown, even the ones that are expired or not yet active. Users can select an intrastat code that is not active. Steps to reproduce: 1. Check the intrastat code list and find a code with a start date in the future or an expiry date in the past 2. Note the code description 3. Open a product form view and try to set/change the intrastat code 4. Search for the code description noted in step 2 5. Note that the code is proposed while it should not be proposed Solution: When an intrastat code is selected, if the code is not active, a warning message is shown to the user. opw-6217915 Forward-Port-Of: odoo/enterprise#118417 Forward-Port-Of: odoo/enterprise#117884
This update fixes a bug in the calculation of discounts and subtotals on invoices with both product and global discounts. The change ensures accurate financial reporting by correcting a discrepancy in the test case results. This improves the reliability of invoice totals.
Original PR description
Purpose: A bug was found in the calculation of the `raw_discount_amount` and `raw_gross_total_excluded` when `_add_and_round_raw_gross_total_excluded_and_discount` is called on an invoice that contains both product line discounts and global discounts. Therefore, the discount and subtotal amounts for the test case testing both line and global discounts need to be corrected to ensure accurate test coverage. opw-5412446 Forward-Port-Of: odoo/enterprise#115855