Daily updates from Odoo
Wednesday, November 5, 2025
12 changes
1 change
Enhancements to existing features
This update fixes a test that could fail in databases without sample data. The test no longer depends on accounting and stock settings that may be unavailable, which helps keep automated checks reliable in clean 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#98155 Forward-Port-Of: odoo/enterprise#92292
1 change
Enhancements to existing features
This update creates a shared way to settle customer accounts in point of sale test tours and reuses it across existing scenarios. It helps keep customer selection and payment flow consistent when dialogs are closed and reopened, reducing the chance of test failures or missed customer data.
Original PR description
In this commit: --------------- - We have introduced a common function for settlement of customer accounts and replaced it in existing tours. task: 5028009 related PR: [95156](https://github.com/odoo/enterprise/pull/95156)
5 changes
Enhancements to existing features
Payroll and HR users can now see wage-at-signature information directly in contract version lists and company car information directly in employee lists. This makes key compensation and benefits details easier to review without opening each individual record.
Original PR description
*: hr_contract_salary,l10n_be_hr_payroll_fleet Added the "Wage on signature" field to versions list view, and "Company Car" to employee list view. task-5231169 Forward-Port-Of: odoo/enterprise#98663
This update adds automated checks for IoT-related functionality by testing it through the main IoT module. This helps catch issues earlier and improves confidence in connected device features without changing day-to-day user workflows.
Original PR description
As `iot_drivers` isn't installable, we need to test it from another module. We are then writing tests in the `iot` module. odoo/odoo#233728
Payroll salary structures must now always have an accounting journal selected. This helps prevent incomplete payroll accounting setup and improves data consistency between the payroll screens and the database.
Original PR description
journal_id field on hr_payroll_account module modified to be required field and no need for required attribute on the UI attribute, and that's ensures the database consistency task-5183966
Odoo will now warn developers when template placeholder tags include attributes that are ignored during rendering. This helps clean up views and catch common template mistakes earlier, reducing the risk of hidden display or logic issues in customer-facing pages and emails.
Original PR description
Adds a warning for attributes on `<t>` tags that are not consumed during QWeb template rendering. This change helps to: - Clean up existing code by identifying unused attributes (e.g., unnecessary class attributes). - Fix common errors where developers mistakenly used standard HTML attributes instead of QWeb directives (e.g., `if` instead of `t-if`). The `name` attribute is explicitly added to the list of allowed attributes that will not trigger the warning, as it is heavily used across Odoo views for inheritance. The inheritance branding attributes (e.g., `data-oe-model`) are also exempted.
This update adds automated checks for the IoT long-polling service, which helps ensure connection-related actions and listener handling keep working as expected. It reduces the risk of future changes disrupting IoT device communication behavior.
Original PR description
This commit adds unit tests for the following functions in the longpolling service: - `action` - `addListener` - `removeListener`
3 changes
Enhancements to existing features
This change updates variable names in the expense posting wizard so it is clearer when operations are running with elevated access rights. It does not change visible user behavior, but it helps reduce the risk of future mistakes that could affect data handling or permissions.
Original PR description
Rename variables that are not sudo-explicit to reduce future potential security oversights
The Windows IoT Box installer has been updated so new installations follow Odoo 19.0 by default. This helps keep newly installed devices aligned with the current release without extra manual setup.
Original PR description
Windows IoT Boxes are now following 19.0 by default after install.
When POS categories are synced to Atlas, their parent category is now included as part of the transfer. This helps preserve the category structure more accurately across systems, so menu organization stays consistent.
Original PR description
In this commit: --- - The parent category of a POS category is now included during synchronization with the Atlas platform. - Added `parent_ref_id` in the category payload to maintain hierarchy. Note: The UrbanPiper platform only supports a single level of sub-categories. Extra: Added exception for `requests.exceptions.JSONDecodeError`. task-5169337 Forward-Port-Of: odoo/enterprise#97213
2 changes
Enhancements to existing features
This change makes the quote builder test suite more resilient when other installed modules rename sales order status labels. It helps prevent unrelated test failures and keeps automated checks reliable across different setups.
Original PR description
### Description of the issue/feature this PR addresses: This ensures that `sale_pdf_quote_builder` tests pass even if a third party module that renames `sale.order` `state` selections has been installed. ### Current behavior before PR: Tests fail. ### Desired behavior after PR is merged: Tests pass. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes an error message more explicit when Odoo blocks certain files because they come from an uninstalled module. The goal is to help support teams and users understand the cause faster, reducing time spent investigating the issue.
Original PR description
While working on a support ticket, I was faced with this exception handling: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/odoo/addons/base/models/ir_asset.py#L344-L346 It might be nitpicky, but given the if condition, the exception error text could be more explicit about the fact that it's raised because the files in question being from an uninstalled addon/module. This might fast track troubleshooting without having to dive into the source code to understand why the error is being raised. There is always the possibility that I might be missing some context or other scenarios where this error could be raised. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179889