Wednesday, November 12, 2025
12 changes · master
Enhancements to existing features
The follow-up accounting tests now use the company’s actual currency symbol instead of assuming a dollar sign. This prevents false test failures in countries or configurations where USD is labeled differently, improving reliability without changing customer-facing behavior.
Original PR description
This PR makes the currency symbol in `test_followup_lines_branches` and `test_followup_report_with_entries` dynamic, avoiding a hardcoded $ string. Why this is needed: Some localizations, like Argentina, use the $ symbol for their own currency (ARS). To prevent confusion with USD, in some cases a complementary module can change the USD symbol to "USD". When this happens, the original test fails because it specifically expects $. This change prevents that failure by fetching the symbol directly from the company's currency, making the test more resilient to configuration changes. Forward-Port-Of: odoo/enterprise#98163
Payroll users can now see the Pay Structure linked to each salary rule directly in the Salary Rule list view. This makes it easier to distinguish between rules with similar names and reduces confusion during payroll configuration.
Original PR description
This will allow users to identify which Pay Structure each rule is linked with, especially in cases where similar rule names exist. Task-ID: 5240252
Employee payslips in India payroll no longer show internal salary rule descriptions meant for HR teams. This keeps payslips clearer for employees and avoids layout issues caused by long explanatory text.
Original PR description
Salary rule descriptions are intended for HR officers, not employees. Displaying them on the employee payslip is unnecessary and causes cropping issues when the text is too long. task-4984330
Adds an automated check that self-order kiosk orders can be sent correctly to an IoT preparation printer. This helps reduce the risk of printer-related issues in restaurant self-order flows before they reach customers.
Original PR description
This commit adds a tour to check that the self order can send an order on an IoT preparation printer. Forward-Port-Of: odoo/enterprise#98814
Resolved issues and error corrections
The Knowledge app’s automated history checks were updated after changes to the editor history window. This keeps quality checks reliable and helps prevent future issues in Knowledge history features.
Original PR description
Due to a revamp of the html_editor history dialog, some tests were failing. This commit fixes the knowledge history tour. requires: https://github.com/odoo/odoo/pull/231349 task-5135850
Code cleanup and technical improvements
This update fixes how the Appointment website snippet includes its supporting page assets, aligning it with the newer platform method. This helps ensure the appointment booking section continues to display and behave reliably after recent framework changes.
Original PR description
See https://github.com/odoo/odoo/pull/104836 task-2963840 Forward-Port-Of: odoo/enterprise#99195 Forward-Port-Of: odoo/enterprise#35153
The payslip CFDI PDF now places employee-related information in the correct employee section instead of showing it under employer details. This helps prevent confusion in payroll documents and improves the accuracy of generated reports.
Original PR description
Some info related to the employee is shown in the employer section. Task: 5224191 Forward-Port-Of: odoo/enterprise#98534
Odoo now ignores an unsupported transaction reference field when fetching missing bank transactions from OdooFin. This prevents users from hitting an error during online bank synchronization and helps the process complete reliably.
Original PR description
… missing transactions The field `end_to_end_uuid` was introduced in `account_iso20022` on the bank statement line model but is absent from the corresponding transient model used by `account_online_synchronization`. When a transaction payload from OdooFin includes this field, processing it raises a traceback because the field does not exist on the transient model. This commit drops the `end_to_end_uuid` key from incoming transactions to avoid the error. task-5223434 Forward-Port-Of: odoo/enterprise#98786
The Ask AI website live chat widget no longer automatically takes focus when a page loads in fullscreen mode. This prevents visitors from being unexpectedly pulled to the widget while still allowing the input to refocus after an AI response.
Original PR description
Scenario: - add "Ask AI" snippet on bottom of a page - reload the page Result: we get autofocused on the "Ask AI" snippet if the snippet is in "Fullscreen" configuration. Fix: avoid the initial focus but keep the code so we re-focus on the input after AI answer. opw-5153332 Forward-Port-Of: odoo/enterprise#97260
This update aligns barcode packing behavior with related community changes so package nesting continues to work as expected. It also adjusts delivery test coverage to reflect the updated order of package move lines, reducing the risk of repeated updates to the wrong line.
Original PR description
Some adaptations based on the community side: - Adapt the compute of `outermost_result_package_id` so nothing changes functionality-wise in barcode. - Adapt a test as the priority of move lines from 'Put in Pack' have changed. Task-5116567 Forward-Port-Of: odoo/enterprise#95648
This update reorganizes how main action buttons are defined and displayed across many Odoo views, making future customizations more consistent and easier to maintain. It should have little direct impact on day-to-day users, but helps reduce complexity for teams maintaining or extending these screens.
Original PR description
tl;dr : if you want to customize view's buttons, look for `buttonTemplate`. Following last years development (MILK redesign, ControlPanel buttons structure and cleanup, responsiveness...), the…
tl;dr : if you want to customize view's buttons, look for `buttonTemplate`. Following last years development (MILK redesign, ControlPanel buttons structure and cleanup, responsiveness...), the ControlPanel's slots related to the main buttons (i.e. left part of the ControlPanel) became redundant. Also, extending the views' buttons with custom JS ones (i.e. not in the arch) wasn't the clearer to understand. This commit's purpose is to both clean up and clarify how to manage those buttons. In a nutshell, the `control-panel-create-button`, `control-panel-always-buttons` and `layout-buttons` slots have been merged into a single `control-panel-buttons` slot. It makes it easier to know where main buttons (in general) will go in the ControlPanel. For the views, the goal was also to make it clearer how to extend/modify the view's main buttons. The main customization point is the `buttonTemplate` view's property as it allows to override the view's buttons. Beside very specific case, the `control-panel-buttons` shouldn't be touched for this purpose. The Form view has its own specificity: it explicitly handles the buttons used in dialog (also via the arch's `<footer>`) and in the ControlPanel. To take this difference into account, a dedicated `buttonDialogTemplate` property has been introduced for this view, allowing the same kind of extension as the `buttonTemplate`. Note: to match the global ControlPanel slots' naming scheme, `layout-actions` has been renamed to `control-panel-actions`. task-4277543
The WhatsApp integration was adjusted to stay aligned with recent discussion channel changes. This is an internal cleanup that helps keep member lists working consistently without changing the user experience.
Original PR description
This commit adapt channel_member_list_patch to use the channel props instead of thread. PR: https://github.com/odoo/odoo/pull/235287