Daily updates from Odoo
Thursday, July 9, 2026
34 changes
6 changes
Enhancements to existing features
Belgian payroll rules now include updated employment bonus parameters effective 1 July 2026 and 1 September 2026. This helps ensure payslip calculations stay aligned with the latest Belgian payroll requirements.
Original PR description
Update the employment bonus parameters for 1st July 2026 and 1st September 2026. task-6369633 Forward-Port-Of: odoo/enterprise#123311 Forward-Port-Of: odoo/enterprise#123262
The bank reconciliation widget now sends less unnecessary data to the browser and precomputes some information on the server. This should make opening and using bank reconciliation faster on very large databases, improving accountant productivity.
Original PR description
When opening the bank rec widget on huge DB's, it takes
a lot of time to load everything.
This commit aims to improve the loading performances by
removing some JS fields:
1 - reconciled_lines_ids: We only use the first element of
this recordset in JS, so we add a new computed field
to only send 1 record to the JS
2 - hasAttachment: replace the long JS computation of
`get hasAttachment` with a python computed field.
3 - Replace matched_credit_ids and matched_debit_ids
with exchange_diff_partial_ids.
Linked:https://github.com/odoo/odoo/pull/269119
task-6275945
Forward-Port-Of: odoo/enterprise#119557Searching for customers in Point of Sale is now more responsive when many partners exist. The system now shows only a practical number of results and waits a bit longer before re-running the search while typing, which reduces delays and improves the user experience.
Original PR description
Before this commit, when high number of partners were loaded in the POS, searching for a partner was slow. The main issue was that all of the filtered partners based on the search query were being rendered, while in reality, if a query returns lots of results, the search query is not refined enough and the user is likely to type more characters to narrow down the search. So in this commit, we limit the number of rendered partners to 200, which is a reasonable number of results to display and does not cause performance issues. Moreover, the debounce time of the search input has been increased from 100ms to 500ms to further reduce the number of times the search function is called while the user is typing. opw-6215958 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268658 Forward-Port-Of: odoo/odoo#264300
This commit expands Xendit support to include the Singaporean market and additional card brands. The following changes were made: - Added support for the PayNow (SGQR) payment method. - Added SGD and USD to the list of supported currencies. - Added JCB and AMEX to the supported card brands (available for some markets). - Updated the base payment provider data for Xendit to include PayNow. Task-5964309 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/s
Original PR description
This commit expands Xendit support to include the Singaporean market and additional card brands. The following changes were made: - Added support for the PayNow (SGQR) payment method. - Added SGD and USD to the list of supported currencies. - Added JCB and AMEX to the supported card brands (available for some markets). - Updated the base payment provider data for Xendit to include PayNow. Task-5964309 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#275045 Forward-Port-Of: odoo/odoo#253542
Previously, the product list was rendered in "small display" mode for all screen sizes below the medium breakpoint (< 992px). However, some small tablets are able to fully display the product list at the medium breakpoint (≥ 768px and ≤ 991px). After this fix, "small display" mode is only applied when the screen width is below 768px. This commit also includes a fix for iOS devices where the screen breakpoint was not correctly recomputed on orientation change. Task.6251934 Enterprise:
Original PR description
Previously, the product list was rendered in "small display" mode for all screen sizes below the medium breakpoint (< 992px). However, some small tablets are able to fully display the product list at the medium breakpoint (≥ 768px and ≤ 991px). After this fix, "small display" mode is only applied when the screen width is below 768px. This commit also includes a fix for iOS devices where the screen breakpoint was not correctly recomputed on orientation change. Task.6251934 Enterprise: https://github.com/odoo/enterprise/pull/119534 Forward-Port-Of: odoo/odoo#273639 Forward-Port-Of: odoo/odoo#266704
Enterprise PR: https://github.com/odoo/enterprise/pull/122652 This commit changes the printer form view to follow the same layout as the POS printer form view, where the printer type is first and is a radio button. task-6333695 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/122652 This commit changes the printer form view to follow the same layout as the POS printer form view, where the printer type is first and is a radio button. task-6333695 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
6 changes
Enhancements to existing features
Self-order kiosk orders are now only sent to the Belgian fiscal blackbox once they are fully paid. This supports flows where customers choose to pay at the counter or use other payment methods, avoiding premature fiscal registration.
Original PR description
This commits adapts the code in confirmation_page.js to not send the order to the blackbox from the kiosk if the order is not in paid state. task-id: 5960666 Forward-Port-Of: odoo/enterprise#119724 Forward-Port-Of: odoo/enterprise#117585
The bank reconciliation screen now sends less unnecessary data to the browser and moves some heavy calculations to the server. This should make opening the widget faster on very large databases, helping accounting teams work with bank statements more smoothly.
Original PR description
When opening the bank rec widget on huge DB's, it takes
a lot of time to load everything.
This commit aims to improve the loading performances by
removing some JS fields:
1 - reconciled_lines_ids: We only use the first element of
this recordset in JS, so we add a new computed field
to only send 1 record to the JS
2 - hasAttachment: replace the long JS computation of
`get hasAttachment` with a python computed field.
3 - Replace matched_credit_ids and matched_debit_ids
with exchange_diff_partial_ids.
Linked:https://github.com/odoo/odoo/pull/269119
task-6275945
Forward-Port-Of: odoo/enterprise#119557Xendit payments now cover the Singapore market with PayNow (SGQR) support, and merchants can also accept SGD and USD. The update also adds support for additional card brands, including JCB and AMEX in supported markets, helping expand payment options for customers.
Original PR description
This commit expands Xendit support to include the Singaporean market and additional card brands. The following changes were made: - Added support for the PayNow (SGQR) payment method. - Added SGD and USD to the list of supported currencies. - Added JCB and AMEX to the supported card brands (available for some markets). - Updated the base payment provider data for Xendit to include PayNow. Task-5964309 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274769 Forward-Port-Of: odoo/odoo#253542
Customers can now choose to pay at the counter even when a payment method has already been set up in self-order. This gives businesses more flexibility at checkout and avoids blocking mixed payment flows.
Original PR description
pos*: point_of_sale, pos_self_order This commit allows the user to allow his customer to pay at the counter even if they already have payment method set in the self order. task-id: 5960666 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268893 Forward-Port-Of: odoo/odoo#250364
The out-of-office banner now keeps the “Back on” status on a single line instead of wrapping onto multiple lines. This makes the header look cleaner and more aligned for a more consistent user experience.
Original PR description
Previously, the 'Back on' status in the out-of-office banner could wrap onto multiple lines, making the header appear misaligned. This PR keeps the status on a single line for a cleaner and more consistent layout. <table> <tr> <th>Before</th> <th>After</th> </tr> <tr> <td> <img width="378" height="630" alt="image" src="https://github.com/user-attachments/assets/e4c9f278-9a65-48ad-8841-6ed059bd766d" /> </td> <td> <img width="372" height="631" alt="image" src="https://github.com/user-attachments/assets/f3dd860b-eba5-4233-a4c0-f286eec95c63" /> </td> </tr> </table> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274811 Forward-Port-Of: odoo/odoo#274050
The current message is pretty useless as of now when a lot of leaves are being written to, notably when creating a public holiday, which sets the state of all the leaves overlapping the public holiday's day to be reevaluated, and if an error occurs, you have to go through every employee's leave allocation and leaves taken to hopefully find one who might have to many days taken/not enough allocated. This extra information will be a huge QOL improvement, for the customer who will be able to tro
Original PR description
The current message is pretty useless as of now when a lot of leaves are being written to, notably when creating a public holiday, which sets the state of all the leaves overlapping the public holiday's day to be reevaluated, and if an error occurs, you have to go through every employee's leave allocation and leaves taken to hopefully find one who might have to many days taken/not enough allocated. This extra information will be a huge QOL improvement, for the customer who will be able to troubleshoot his issue himself more easily, but also for our support team as the only way to debug those kind of issues now is to put a breakpoint there and see what employee has an issue. opw-4411999 Forward-Port-Of: odoo/odoo#272412 Forward-Port-Of: odoo/odoo#200376
4 changes
Enhancements to existing features
Event teams can now print attendee badges in A4 PDF format directly from the registration desk. This also extends badge printing support to Point of Sale, helping on-site teams manage event check-ins and badge distribution more flexibly.
Original PR description
This PR adds the support for A4 pdf badge printing through the registration desk. Requested for OXP in Kenya See https://github.com/odoo/odoo/pull/275021
The bank reconciliation widget now loads less unnecessary data when opened, especially on very large databases. This should make reconciliation screens appear faster and feel more responsive for accounting users.
Original PR description
When opening the bank rec widget on huge DB's, it takes
a lot of time to load everything.
This commit aims to improve the loading performances by
removing some JS fields:
1 - reconciled_lines_ids: We only use the first element of
this recordset in JS, so we add a new computed field
to only send 1 record to the JS
2 - hasAttachment: replace the long JS computation of
`get hasAttachment` with a python computed field.
3 - Replace matched_credit_ids and matched_debit_ids
with exchange_diff_partial_ids.
Linked:https://github.com/odoo/odoo/pull/269119
task-6275945
Forward-Port-Of: odoo/enterprise#119557The out-of-office banner now keeps the “Back on” status on a single line instead of allowing it to wrap. This makes the header look cleaner and more aligned, improving the overall appearance of the banner.
Original PR description
Previously, the 'Back on' status in the out-of-office banner could wrap onto multiple lines, making the header appear misaligned. This PR keeps the status on a single line for a cleaner and more consistent layout. <table> <tr> <th>Before</th> <th>After</th> </tr> <tr> <td> <img width="378" height="630" alt="image" src="https://github.com/user-attachments/assets/e4c9f278-9a65-48ad-8841-6ed059bd766d" /> </td> <td> <img width="372" height="631" alt="image" src="https://github.com/user-attachments/assets/f3dd860b-eba5-4233-a4c0-f286eec95c63" /> </td> </tr> </table> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274811 Forward-Port-Of: odoo/odoo#274050
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
Original PR description
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
4 changes
Enhancements to existing features
The Finland localization now includes the new 13.5% tax rate for affected goods and services, replacing situations where 14% previously applied. This helps Finnish businesses keep tax reporting and exports aligned with the latest VAT requirements.
Original PR description
backport of 5324615 As in Finland the tax rate will change from 14 to 13.5 on certain goods and services those taxes and the corresponding tax group were added to the l10n task-6332565 Forward-Port-Of: odoo/enterprise#123098
The bank reconciliation screen now loads less unnecessary data, making it faster to open on very large databases. This improves day-to-day accounting workflows by reducing waiting time without changing the reconciliation process.
Original PR description
When opening the bank rec widget on huge DB's, it takes
a lot of time to load everything.
This commit aims to improve the loading performances by
removing some JS fields:
1 - reconciled_lines_ids: We only use the first element of
this recordset in JS, so we add a new computed field
to only send 1 record to the JS
2 - hasAttachment: replace the long JS computation of
`get hasAttachment` with a python computed field.
3 - Replace matched_credit_ids and matched_debit_ids
with exchange_diff_partial_ids.
Linked:https://github.com/odoo/odoo/pull/269119
task-6275945
Forward-Port-Of: odoo/enterprise#119557The out-of-office banner now keeps the “Back on” status on a single line instead of wrapping. This improves the visual alignment of the header and makes the banner look cleaner and more consistent for users.
Original PR description
Previously, the 'Back on' status in the out-of-office banner could wrap onto multiple lines, making the header appear misaligned. This PR keeps the status on a single line for a cleaner and more consistent layout. <table> <tr> <th>Before</th> <th>After</th> </tr> <tr> <td> <img width="378" height="630" alt="image" src="https://github.com/user-attachments/assets/e4c9f278-9a65-48ad-8841-6ed059bd766d" /> </td> <td> <img width="372" height="631" alt="image" src="https://github.com/user-attachments/assets/f3dd860b-eba5-4233-a4c0-f286eec95c63" /> </td> </tr> </table> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274811 Forward-Port-Of: odoo/odoo#274050
backport of 5324615 As in Finland the tax rate will change from 14 to 13.5 on certain goods and services those taxes and the corresponding tax group were added to the l10n task-6332565 Forward-Port-Of: odoo/odoo#274460
Original PR description
backport of 5324615 As in Finland the tax rate will change from 14 to 13.5 on certain goods and services those taxes and the corresponding tax group were added to the l10n task-6332565 Forward-Port-Of: odoo/odoo#274460
12 changes
Enhancements to existing features
Expenses created from company card usage now generate an activity categorized as a document. This makes the follow-up clearer for employees and managers handling expense receipts and supporting paperwork.
Original PR description
Improvement of some UX about expense: - When an expense is created via a card use, the type of the created activity is now 'Document' task-6237021
The VoIP call screen now shows "Calling..." while an outgoing call is still connecting instead of displaying a timer at 00:00. This gives users a clearer indication of the call state and avoids confusion before the call is answered.
Original PR description
task-6361911
The timesheet leaderboard header has been redesigned to show the billable time target and the current month period. This gives users clearer context for their performance metrics and helps them compare progress against monthly expectations.
Original PR description
In this commit, we redesign the timesheet-leaderboard KPI header. Specifically, we add the billable time target and the current month period. task-6103977
Businesses can now assign specific deferred revenue or expense accounts to individual income and expense accounts, while still keeping company-wide defaults as a fallback. Deferred revenue and expense reports also show upcoming recognition split between amounts due within 12 months and after 12 months, improving financial visibility.
Original PR description
*accountant, reports Purpose: Supporting multiple deferred accounts allow businesses to use different deferred revenue/expense accounts based on the related income or expense account, while maintaining the existing company-wide deferred account settings as default. Changes: A "Deferred Account" field is added to the income or expense type accounts form to allow the user to override the defaults. On deferred revenues/expenses reports, the column "Later", representing amount to be recognized, is split into two columns, "Within 12 months" to represent amounts to be recognized within the year and "After 12 months" to represent amounts to be recognized after a year. task-6293902
Invoice extraction now uses the account name and tax to label grouped tax lines instead of relying on partner names and dates read by OCR. This reduces confusing or incorrect labels caused by OCR misreads and makes invoice review more reliable.
Original PR description
Previously, when a user enabled 'Single Invoice Line Per Tax', the tax group contained the partner name and date. However, the OCR would sometimes misclassify the partner name, resulting in random text appearing in the label. To fix this, we decided to use the account name and tax as the label instead. task-6159843
UK VAT return filing now warns users when their company belongs to a tax unit and guides them to file through that tax unit. When a tax unit return is filed, the HMRC connection and submission use the tax unit VAT number, reducing filing errors and compliance risk.
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#123166 Forward-Port-Of: odoo/enterprise#107253
Hong Kong payroll can now use the scheduled payroll data update process. This helps keep standard, non-customized salary rules current automatically, reducing manual maintenance for users.
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#123204 Forward-Port-Of: odoo/enterprise#122777
The self-ordering point of sale module now relies on the existing point of sale box module for printer box details instead of defining them again. This reduces duplication and helps keep configuration behavior consistent across related point of sale features.
Original PR description
Remove `proxy_obox_id` from `pos.printer` model, in `obox_pos_self_order` and change `obox_pos_self_order` dependency to `obox_point_of_sale` instead of `obox`. The field `proxy_obox_id` is defined in `obox_point_of_sale` module.
Point of Sale appointment dialogs now have better sizing and spacing, making them easier to read and use. Dialogs also get a consistent backdrop so users can close them more easily, improving the overall experience.
Original PR description
This PR adapts the size and spacing of POS dialogs to improve the design and usability of the interface. It also adds backdrop to POS dialogs to allow the user to easily close a dialog when needed. This allows for greater consistency, as previously only a few dialogs had this backdrop. task-5187182 commu-PR: https://github.com/odoo/odoo/pull/258131
Project document folder access is now updated when people are added to or removed from a project. This helps ensure collaborators get editing access when invited and lose access when no longer following restricted projects.
Original PR description
Before this change: - Subscribing or unsubscribing a partner from a project did not impact access rights on the related documents folder; users always retained access to the folder. After this change: - Subscribing a partner grants `edit` access to the project folder. - Unsubscribing removes access when `privacy_visibility` is `invited_users` or `followers` task-5993203
Sales teams can now manually choose which website is linked to an order when it was not created through eCommerce. This helps customer email links and preview actions open the correct website, also covering related subscription and rental flows.
Original PR description
The goal of this change is to allow manually selecting the website linked to an order (if the order does not come from eCommerce). This ensures that email links and the Preview button open the correct website. This change also applies to the Rental module. PR: https://github.com/odoo/odoo/pull/255763 Upgrade: https://github.com/odoo/upgrade/pull/9804 task-6059112
This update changes many accounting-related automated tests to run in a more realistic test environment instead of relying on elevated administrator access. This helps ensure future changes are validated under conditions closer to everyday use, reducing the risk of hidden permission-related issues.
1 change
Enhancements to existing features
Odoo can now use official daily exchange rates from the Central Bank of Azerbaijan for automatic currency updates. This helps businesses using AZN translate multi-currency accounting and tax transactions more accurately, including rates quoted for larger nominal amounts.
Original PR description
This commit adds the Central Bank of Azerbaijan (CBA) as a supported service provider for automatic currency rate updates. Purpose: To ensure multi-currency accounting entries and taxable transactions are accurately translated into the national currency (AZN) using the official exchange rate defined by the CBA for the transaction day. Functionality: -Enables fetching official daily exchange rates directly from CBA via XML. -Automatically handles rates defined for different nominal quantities (e.g., rates quoted per 100 units instead of 1 unit). Backport of: https://github.com/odoo/enterprise/pull/122626 task-6112867
1 change
Enhancements to existing features
This change adds validation for the contact email in the registration wizard before the process continues. It helps users catch invalid email addresses right away, avoiding errors later in the flow and making registration smoother.
Original PR description
No verification was done on the contact email in the wizard but if the email is invalid the user would have an error later task-6344324