Tuesday, April 28, 2026
9 changes · saas-18.4
Resolved issues and error corrections
This fix prevents the website/html builder from crashing when users adjust number-based options that use em units. It improves reliability for page editing while preserving support for scientific number formats.
Original PR description
Steps to reproduce: i. Create an option with "BuilderNumberInput" and set the unit to "em". ii. Open the builder and try changing the option value. Reason for traceback: The regex used to separate the value and unit incorrectly allows "e" in the numeric part. As a result, a value like "12em" is parsed as "value = 12e" and "unit = m". The "e" in regex was meant to allow scientific notation (e.g. "1e3"), but it also matches the "e" in unit. After this fix, it is ensured that the regex correctly separates the numeric value and unit, along with preserving the ability to use scientific notation. task-6048918
This fixes an automated test timing issue in the restaurant point-of-sale flow where customer information could appear lost during rapid screen changes. It improves confidence in test results without changing normal user-facing behavior.
Original PR description
In the tour test_customer_alone_saved, the test was creating an order, then go on the ticket screen and then come back on the product screen to change the customer to go again on the ticket screen and come back on product screen to check that the customer did not changed. The problem was that when going to the ticket screen the first time, the order was synced with the server but the answer might come after the test changed the customer. When going the second time on the ticket screen, the order was changed with the information of the backend and the user was lost. This is all due to the test that are too fast. runbot-error: 238467 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253587
Portal users will no longer see the 'View Timesheets' button on invoices unless they actually have permission to access related timesheets. This prevents confusion and avoids exposing links to information users cannot open.
Original PR description
sale: add sale order specific hook to extend page values ------ Allows adding custom data (e.g., timesheets) without overriding generic _get_page_view_values sale_timesheet: hide 'View Timesheets'…
sale: add sale order specific hook to extend page values
------
Allows adding custom data (e.g., timesheets) without overriding generic _get_page_view_values
sale_timesheet: hide 'View Timesheets' button for users without access
-------
Steps to Reproduce:
-----------------
- Create a product with the invoice policy set to Based on Timesheets
- Enable Project and Tasks on the order.
- Create and confirm a sale order using a portal user.
- Log timesheets on the related task.
- Create an invoice from the sale order.
- Log in as the portal user and open the invoice.
- Click the 'View Timesheets' button.
Issue:
-------------
The 'View Timesheets' button is shown to the portal user even though they don’t have access to view timesheets.
Root Cause:
------------
The timesheets are linked to the sale order, so the button appears based on the timesheet_count, but the portal user does not actually have permission to access those timesheets.
Fix:
-----------
We replaced the timesheet_count check with a check that verifies whether the user actually has access to any of the related timesheets.
task-4745519
Forward-Port-Of: odoo/odoo#261406
Forward-Port-Of: odoo/odoo#209552The Bills of Materials form no longer offers quick creation for product variants, preventing users from accidentally creating a separate unrelated product. Users must now create variants from the product record first, helping keep manufacturing data accurate.
Original PR description
Steps to produce: --- - Install `mrp`. - Go to Manufacturing > Products > Bills of Materials. - Click Create, select a product. - In the Product Variant field, type any value and click "Create".…
Steps to produce: --- - Install `mrp`. - Go to Manufacturing > Products > Bills of Materials. - Click Create, select a product. - In the Product Variant field, type any value and click "Create". Issue: --- Using quick create on the Product Variant field does not create a variant of the selected product template. Instead, it creates a completely new, unrelated `product.template`. This is because the `create()` method on `product.product` is overridden to call super() with context `create_product_product=False`, which suppresses direct variant creation and forces creation through `product.template` instead, see [1]. **Why passing `default_product_tmpl_id` does not help:** One might expect that passing `default_product_tmpl_id` in the field context would cause the newly quick-created `product.product` to be linked to the already-selected `product.template`. However, because of the `create()` override above (introduced in [commit]), the variant creation is always redirected to `product.template`, ignoring any `default_product_tmpl_id` passed in context. It is therefore not possible in any case to quick-create a `product.product` that is correctly and directly linked to the currently selected `product.template`. Fix: --- Disable the "Create" and "Create and Edit" options. Since there is no way to quick-create a `product.product` that is correctly linked to the currently selected `product.template`, the user must create the variant directly on the product template first. [1]https://github.com/odoo/odoo/blob/f04d79d44873d0f1c35303a1a892f3a3a394ea17/addons/product/models/product_product.py#L364-L368 [commit]: https://github.com/odoo/odoo/commit/7389345696720255a9d3c72ca1d9c2f4e4ecd7b8 opw-6127738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261316 Forward-Port-Of: odoo/odoo#259776
Fixed an issue in the HTML editor where power buttons in Knowledge could appear before the block hint instead of beside the correct content block. This makes editing pages more predictable and avoids visual confusion for users working with indented content.
Original PR description
Current behavior before PR: - In knowledge, the power buttons were displayed at the wrong position. They were displayed before the block hint instead of after it. Desired behavior after PR is merged: - In knowledge, the editable has a margin applied to it. As a result, the block does not start at the editable's left position but slightly inside it, causing the power buttons to be displayed at the wrong position. Now, the power buttons' position is set using the block's left position so that they are displayed correctly. task-6102944 Forward-Port-Of: odoo/odoo#259297
This change updates the email address used for sending automated notifications from Odoo to noreply@odoo.com. Previously, clients responded to iap@odoo.com, which was causing confusion and misdirected replies. This update ensures all support emails go to the correct, designated address.
Original PR description
The current mail address is iap@odoo.com so some client respond to the automatic mail. This fix change it to noreply@odoo.com Task-6086556 Forward-Port-Of: odoo/enterprise#114712 Forward-Port-Of: odoo/enterprise#114097
This update corrects a mismatch in transaction IDs when exporting financial data (FAIA) for Luxembourg. Previously, the system used different ID formats, leading to potential errors in reporting. This change ensures all transaction IDs align, improving data accuracy and reliability for financial reporting.
Original PR description
The Invoice/TransactionID element in SourceDocuments/SalesInvoices and SourceDocuments/PurchaseInvoices must match the corresponding Transaction/TransactionID in the GeneralLedgerEntries section. As the latter uses the entry name since PR odoo#58728, the former should too. opw-6111343, opw-542729 Forward-Port-Of: odoo/enterprise#113846
This update resolves a problem where portal users were incorrectly seeing the 'View Timesheets' button, even without the necessary permissions. The fix utilizes a new helper method to accurately control button visibility, ensuring users only see options they are authorized to access. This improves the user experience and prevents potential confusion.
Original PR description
**Issue:** The 'View Timesheets' button is shown to the portal user even though they don’t have access to view timesheets. Currently, we have added _sale_order_get_page_view_values in the sale module, which is overridden in sale_timesheet. We are using it here. task-4745519 Forward-Port-Of: odoo/enterprise#115193 Forward-Port-Of: odoo/enterprise#113481
This update corrects a potential error in the account reports module where duplicate 'state' field names (from custom modules) could cause database conflicts. The fix ensures that column references are explicitly aliased, preventing ambiguous column errors and ensuring accurate report generation. This improves stability and reliability for our clients.
Original PR description
Issue: ------- There are cases where clients might have the same named 'state' field/column for custom modules in the models 'res.partner' or 'account.fiscal.position' and therefore they might get conflicted with the standard one's when the below query executes, https://github.com/odoo/enterprise/pull/84391/changes#diff-2f90e40d6e7b35681a4af03037e8e5ee0fddab2ba0876d9f148bf79786a91c29R1359 and can cause ``` File "/home/odoo/src/enterprise/account_reports/models/account_return.py", line 2204, in _check_suite_common_vat_report self.env.cr.execute(SQL( File "/home/odoo/src/odoo/odoo/sql_db.py", line 433, in execute self._obj.execute(query, params) psycopg2.errors.AmbiguousColumn: column reference "state" is ambiguous LINE 9: state = 'posted' ``` Solution: ------------ Use the corresponding alias while mentioning the column i.e; `move.state = 'posted'` OPW - 6044665 Forward-Port-Of: odoo/enterprise#114341