Wednesday, November 5, 2025
16 changes · master
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`
Resolved issues and error corrections
The Auto Transfers option in Accounting settings now points to the correct underlying module after a module rename. This means users can enable the feature from settings and have it install as expected instead of silently remaining unchecked.
Original PR description
### Steps to reproduce: - Install "account_accountant" - Go in the settings - Search for "Enable Auto Transfers", tick the option - Save - The option is not ticked ### Cause: This option is supposed to install the module for Account Transfers. The option field is called `module_account_auto_transfer`. It's supposed to install the module `account_auto_transfer`. But this module was [refactored in 19.0](https://github.com/odoo/enterprise/commit/77c248981c9e1ccbb5d4c88a0915a231f040df84) and renamed `account_transfer`. So the settings can't find the module to install, nothing happen, and the option stays the same. ### Solution: Give the variable the correct name: `module_account_transfer`. opw-5149342 Forward-Port-Of: odoo/enterprise#97513
VoIP ringtones now fully stop when a call ends, so they cannot be accidentally restarted with media controls on a keyboard or headset. This avoids confusing or disruptive sounds after calls are already finished.
Original PR description
Before this commit, users can resume "stopped" ringtones by pressing the Media Play/Pause key of their keyboard/headphones, even after the call has ended. After this commit, stopping the ringtone clears the audio source, effectively preventing it from being resumed. Task-5222704 opw-5186087 Forward-Port-Of: odoo/enterprise#98660
This fixes ESG carbon emission reporting so currency and unit values stay aligned when an emission factor changes. It helps users see accurate emission report details without stale or mismatched values.
Original PR description
The `currency` and `unit` fields on emitted emissions are supposed to be related fields on the emission factor. However, due to how the report combining accounting emissions and other emissions is implemented, they are not correctly updated when the factor is modified. This PR makes them computed fields and enable the "store" attribute en them. Despite there being no actual table to store data into, this allows us to do a round trip to the server to fetch the correct values. Forward-Port-Of: odoo/enterprise#98724
The signing confirmation dialog now has the right spacing and size after a document is signed. This fixes a visual issue introduced by a shared dialog behavior change, improving the post-signing experience for users.
Original PR description
Version: - master Steps to reproduce: - Upload a document. - Sign the document. - Notice that the “Thank You” dialog appears with incorrect margins. Issue: - After this [PR](https://github.com/odoo/odoo/pull/226581) was merged into the web module, the dialog component behavior changed medium-sized dialogs no longer include padding by default. Since the “Thank You” dialog is a medium dialog, it now appears with incorrect margins after signing a document. Solution: - Added a CSS class to fix the margin and adjust the dialog size. <img width="1570" height="789" alt="image" src="https://github.com/user-attachments/assets/4c6766df-6cc1-497a-9dcc-39a5f60054e1" />
Several screens now use the current standard button styling instead of an outdated style that no longer works. This keeps action buttons visually consistent and avoids confusing or broken-looking controls for users.
Original PR description
*: account_budget,industry_fsm,l10n_pe_edi,mrp_workorder,sign `btn-default` doesn't exist anymore, this is a dead utility class. This commit changes it for `btn-secondary` task-5236550 Com PR: https://github.com/odoo/odoo/pull/234401
Payroll processing now handles payslips that have no detected issues without causing an error. This prevents interruptions when checking multiple payslips, making payroll validation more reliable.
Original PR description
When there are multiple payslip on which we call get_error_message, some may have no issues. In this case, it raises a traceback as issues is False. Introduced in https://github.com/odoo/enterprise/pull/94748 Forward-Port-Of: odoo/enterprise#98803
This update resolves an internal warning in the Hong Kong payroll integration by using the correct access-checking method. It helps keep payroll processing stable and reduces noise from build or validation checks without changing business workflows.
Original PR description
Use `check_access` instead build-error-233453 Forward-Port-Of: odoo/enterprise#98654
### Before: - While printing payslip previously if an employee do not have any bank linked we were not printing anything,. ### After: - If no bank account present we will use: Amount to be paid to [employee_name]: [amount] task- 5101235 Forward-Port-Of: odoo/enterprise#95125
Original PR description
### Before: - While printing payslip previously if an employee do not have any bank linked we were not printing anything,. ### After: - If no bank account present we will use: Amount to be paid to [employee_name]: [amount] task- 5101235 Forward-Port-Of: odoo/enterprise#95125
The settings page now makes it clearer that accounting can be configured for inventory loss and production locations, including a direct link and helper text. This helps users find the right configuration when managing periodic closing alongside perpetual inventory accounting.
Original PR description
Forward-Port-Of: odoo/enterprise#98289
Code cleanup and technical improvements
The code behind delete confirmation messages in Account Reports was streamlined to reuse common behavior and use clearer internal wording. This should make future maintenance easier without changing the visible user experience.
Original PR description
- Share code of message deletion with `msg.showDeleteConfirm()` - MessageConfirmDialog props are more neutral - patch `shouldHideFromMessageListOnDelete` once per module https://github.com/odoo/odoo/pull/234214
The batch payment functionality has been consolidated by removing a now-unnecessary bridge module. This reduces internal complexity while keeping the expected accounting batch payment features available through the main batch payment module.
Original PR description
There is no more reason to have 2 modules, as account_accountant is already auto-installed in enterprise. So we should not need this bridge module anymore.