Daily updates from Odoo
Wednesday, July 8, 2026
12 changes · saas-19.4
Enhancements to existing features
This update adds missing translations for customer- and staff-facing messages across Point of Sale modules. It makes dialogs, errors, alerts, and warnings easier to understand for users working in supported languages.
Original PR description
pos* = All POS module In this commit: -------------------------------- Add missing translations for user-visible strings across POS modules. - Translated dialogs, errors, alerts, and other UI-visible messages - Updated Python-side UserError, ValidationError, and warning messages Task-5406947 Related PR-https://github.com/odoo/odoo/pull/239972 Forward-Port-Of: odoo/enterprise#122511 Forward-Port-Of: odoo/enterprise#102094
UK VAT returns now warn users when the selected company belongs to a tax unit and guide them to file using that tax unit. When a return covers a tax unit, Odoo uses the tax unit's VAT number for HMRC connection and submission, helping avoid filing under the wrong company VAT number.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122965 Forward-Port-Of: odoo/enterprise#107253
Hong Kong payroll now participates in the automatic payroll data update process. This helps keep standard, unedited salary rules up to date without manual intervention, improving ongoing payroll accuracy and supportability.
Original PR description
Currently, the "Payroll: Update data" cron doesn't work for HK payroll as we never set up the _get_data_files_to_update. We can set up the list of data files to keep up to date to better support our users by automatically keeping non-edited salary rules up to date. task-6360339 Forward-Port-Of: odoo/enterprise#122777
Manufacturing shop floor users can now update the most recent timer entry or create one when no entry exists. This helps keep work order time tracking accurate when someone forgets to start or stop the timer.
Original PR description
The "Update Time Log" dialog inside shopfloor is added to increase the timer's reliability by manually entering the desired time. If someone forgot to start or stop the timer, this option now enables them to edit their last entry on the timer's list, or create a new one if none was found. Task: 6164336
The printer settings now only show the oBox IP field when it is relevant for ePOS printers. The interface also hides technical service details from the oBox view, making setup cleaner and easier for users.
Original PR description
This PR adapts the view to only allow the user to set obox ip if the type of printer used is epos as it doesnt matter otherwise It also hides the services installed on the obox as it's not useful for the user task-6330864
Belgian blackbox POS sessions now warn cashiers when they need to be closed within the required 24-hour window, helping businesses stay compliant with fiscal reporting rules. Session and sale detail reports also better reflect negative quantities and refunds, and self-ordering with a blackbox now requires the appropriate Belgian self-ordering module.
Original PR description
Belgian fiscal regulations require a blackbox POS session to be closed at least once every 24h so the Z reports are sent to the FDM. The POS now warns the cashier once the session should be closed. Also: - include negative lines of regular orders in the negative quantities summary of session reports, and show them as positive amounts in the refund tables of the sale details report as required by the SPF - require `l10n_be_pos_blackbox_self_order` when self-ordering (mobile/kiosk) is enabled with a blackbox community PR: https://github.com/odoo/odoo/pull/273994 Forward-Port-Of: odoo/enterprise#122411
The Azerbaijani Manat currency symbol has been updated to its official Unicode character, ₼. This improves consistency and makes currency display more accurate for users working with AZN.
Original PR description
This commit updates the base currency symbol for the Azerbaijani Manat (AZN) to its official Unicode character '₼'. Related Upgrade PR: https://github.com/odoo/upgrade/pull/10107 task-6112867 Forward-Port-Of: odoo/odoo#262471
The forum editor toolbar has been simplified by removing options that are not needed in that context, and its styling has been adjusted to stay consistent with the forum design. This update also fixes an issue that could cause errors when opening table editing tools, improving the editor’s reliability for forum users.
Original PR description
Description of the feature this PR addresses: - Remove unwanted toolbar features (heading, font_family, powerbuttons, undo/redo buttons) - Update toolbar styles in website_forum to keep them consistent - Fix table menu traceback by passing missing `localOverlayContainers` in `website_forum_wysiwyg` config task-6123698 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274139 Forward-Port-Of: odoo/odoo#263326
This change speeds up the creation of backorders when validating receipts with many operations. It reduces processing time and avoids database memory errors, so large warehouse receipts are much less likely to time out.
Original PR description
## The Problem Validating receipts with a large number of operations by creating a backorder was timing out due to $O(N*M)$ filtering inside `_get_qty_received_without_self`, where N is the number of…
## The Problem Validating receipts with a large number of operations by creating a backorder was timing out due to $O(N*M)$ filtering inside `_get_qty_received_without_self`, where N is the number of moves in the picking, and M is the number of moves being processed for valuation. This happened while computing price units for moves one by one: each move filtered all picking moves to find the ones with the same `product_id`. Another issue was a PostgreSQL `"memory exhausted"` error caused by generating a large number of OR'ed conditions, equal to the number of processed moves. ## The Solution The massive filtering was fixed by filtering moves of the `purchase_line` instead of the `picking`, which is typically associated with only a few moves. This is still correct as the loop just after already ignores moves that don't have the same `purchase_line_id` of `self` anyways. The PostgreSQL error was fixed by grouping moves by `location_dest_id` and generating one condition per location using an `in` clause, which is typically much smaller than generating one condition per move. ## Benchmark Benchmark on a customer database, validating a receipt with 10k+ operations by creating a backorder: ```text Time: timeout -> 6 min ``` OPW-6272667 Forward-Port-Of: odoo/odoo#273555 Forward-Port-Of: odoo/odoo#269350
This change makes the tax supply date available for German accounting documents. It helps businesses record taxes more accurately according to the relevant supply date, improving compliance and consistency in tax reporting.
Original PR description
Forward-Port-Of: odoo/odoo#272461
This update refreshes the web editing engine to the latest Owl version used by Odoo. It helps keep the platform aligned with the newest underlying framework changes and avoids issues caused by internal API changes in the editor.
Original PR description
Release notes: https://github.com/odoo/owl/releases/tag/v3.0.0-alpha.42 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update brings back automated tests for the French POS payment and invoicing flow that were temporarily removed during a previous merge. It helps ensure the process keeps working correctly and reduces the risk of regressions in future changes.
Original PR description
During the merge of l10n_fr_pdp e-reporting and e-invoicing, some tests had to be removed. Task-6296356 Forward-Port-Of: odoo/odoo#273913 Forward-Port-Of: odoo/odoo#271294