Daily updates from Odoo
Wednesday, July 29, 2026
52 changes
7 changes
Enhancements to existing features
TikTok Shop configuration is now found under the new Marketplaces menu. This makes marketplace-related setup easier to find and keeps sales channel settings better organized.
Original PR description
- Move tiktok shop configuration to the new 'Marketplaces' menu PR Ref: https://github.com/odoo/enterprise/pull/113307
Users reconciling a bank transaction with a different partner will now be notified and can choose whether to move the bank account to the selected partner. This helps keep partner bank details accurate and reduces manual cleanup after reconciliation.
Original PR description
Add a new notification in the bank reco widget when a user do a reconciliation with a partner different from the one on the st_line. The idea is to let the user chose if he wants to move the bank account from the st_line partner to the move he tries to reconcile. task-6303397 Forward-Port-Of: odoo/enterprise#125702 Forward-Port-Of: odoo/enterprise#120900
Users who try to create an expense card before Stripe is connected are now directed to the relevant settings page. This helps them complete the required setup faster and reduces confusion when card creation cannot proceed.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
Australian payroll now applies a superannuation contribution cap in the relevant salary rule. This helps businesses stay aligned with ATO requirements for maximum superannuation contributions, including the updated guarantee calculation from 1 July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
The ActivityWatch suggestions panel now shows total tracked time by project and a grand total for all suggestions. This gives users a clearer view of their logged hours before turning suggestions into timesheets.
Original PR description
This commit introduces new time tracking metrics to the ActivityWatch suggestions panel to improve user visibility into their tracked hours. **Enhancements:** - Added the total duration per project in the By Project grouped view. - Added a grand total footer for all suggestions at the bottom of the list. task-6088877 Forward-Port-Of: odoo/enterprise#125087 Forward-Port-Of: odoo/enterprise#114772
Bank statement reconciliation has been optimized to avoid timeouts in large multi-company databases. This should make scheduled reconciliation jobs run much faster and more reliably, reducing delays in accounting operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125686 Forward-Port-Of: odoo/enterprise#125250
It is mandatory in BE to add a legal note on the invoice when using a "Co-Contractant" tax task-5905176 Forward-Port-Of: odoo/odoo#277088 Forward-Port-Of: odoo/odoo#251797
Original PR description
It is mandatory in BE to add a legal note on the invoice when using a "Co-Contractant" tax task-5905176 Forward-Port-Of: odoo/odoo#277088 Forward-Port-Of: odoo/odoo#251797
8 changes
Enhancements to existing features
Australian payroll now applies a superannuation contribution cap in the relevant quarterly earnings rule. This helps businesses stay aligned with ATO requirements for maximum superannuation contributions, including updated super guarantee calculations from 1 July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
Users who try to create an expense card before Stripe is connected are now directed to the correct settings page to complete the connection. This makes setup clearer and helps reduce confusion or support requests when card creation cannot proceed.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
Bank reconciliation now alerts users when they match a bank statement line to a different partner than the one currently linked to that bank account. This helps users decide whether to move the bank account to the reconciled partner, reducing partner-account mismatches in accounting records.
Original PR description
Add a new notification in the bank reco widget when a user do a reconciliation with a partner different from the one on the st_line. The idea is to let the user chose if he wants to move the bank account from the st_line partner to the move he tries to reconcile. task-6303397 Forward-Port-Of: odoo/enterprise#125702 Forward-Port-Of: odoo/enterprise#120900
Belgian payroll now uses the bicycle reimbursement rates applicable from October 1, 2026. The allowance increases to €0.32 per kilometer and the daily tax-exempt cap rises to €12.80, helping payroll calculations stay aligned with Belgian regulations.
Original PR description
This PR updates the Belgian bicycle reimbursement rates to reflect the amounts applicable from October 1, 2026. ### Changes - Increase the bicycle reimbursement rate from the previous amount to €0.32/km. - Increase the maximum daily tax-exempt reimbursement to €12.80/day. These values are aligned with the latest Belgian regulations and are required for payroll calculations from October 1, 2026. Task-6385742 Forward-Port-Of: odoo/enterprise#124481
Automatic bank reconciliation has been optimized for companies with large accounting histories, reducing a query that could time out to a much faster execution. This helps scheduled reconciliation jobs complete reliably in multi-company databases and reduces delays in accounting operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125686 Forward-Port-Of: odoo/enterprise#125250
Odoo now limits Chilean company activity selections to the maximum supported by the official electronic document format. This helps prevent electronic invoices and related documents from being rejected because too many activities were selected.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
Timesheet Assistant suggestions can now be managed with keyboard shortcuts, including moving between rows, selecting items, and selecting ranges. This improves accessibility and helps users review and process timesheet suggestions more efficiently, while avoiding keyboard shortcut interference outside the suggestions list.
Original PR description
Implement full keyboard controls for managing timesheet suggestions to improve accessibility and user efficiency. This adds support for the following interactions: - ArrowUp / ArrowDown to navigate focus through rows - Space to select/deselect the focused item (and set the selection anchor) - Shift + Arrows to select continuous ranges of suggestions task: 6267620 Forward-Port-Of: odoo/enterprise#120437
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208
Original PR description
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208
7 changes
Enhancements to existing features
Users who try to create an expense card before Stripe is connected are now directed to the right settings page. This makes setup clearer and helps avoid confusion or stalled card creation.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
Australian payroll now applies the required superannuation contribution cap in payslip calculations. This helps businesses stay compliant with ATO rules, including updated super guarantee calculation requirements from 1 July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
Pakistan payroll rules have been updated to use the latest 2026 income tax brackets. The separate extra tax surcharge mechanism has been removed, helping payroll calculations stay aligned with current local tax requirements.
Original PR description
[IMP] l10n_pk_hr_payroll: update 2026 tax brackets . tax brackets are updated . extra tax surcharge mechanism is deleted task-6401729 Forward-Port-Of: odoo/enterprise#124988
Bank statement reconciliation has been optimized to avoid timeouts in large multi-company environments. This helps scheduled accounting processes complete much faster and more reliably, reducing delays in financial operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125686 Forward-Port-Of: odoo/enterprise#125250
The Chilean electronic invoicing flow now limits companies to the maximum four business activities accepted by the official XML schema. This helps prevent electronic documents from being rejected because too many activities were selected.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
This PR adapts the update dialog to fit the new update logic which is individual to every iot box related PR: https://github.com/odoo/odoo/pull/278661
Original PR description
This PR adapts the update dialog to fit the new update logic which is individual to every iot box related PR: https://github.com/odoo/odoo/pull/278661
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208
Original PR description
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278805 Forward-Port-Of: odoo/odoo#278208
6 changes
Enhancements to existing features
When an expense card cannot be created because Stripe is not connected, users are now directed to the relevant settings page to complete the connection. This reduces confusion and helps teams resolve setup issues faster without needing technical support.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
Bank statement reconciliation has been optimized to avoid timeouts in multi-company setups with large transaction histories. This should make automated reconciliation jobs run much faster and more reliably, reducing delays in accounting operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125250
Australian payroll now applies a superannuation contribution cap in the relevant salary rule. This helps businesses stay aligned with Australian Taxation Office requirements for maximum superannuation contributions from July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
Limits Chilean company activity selections to the maximum allowed by the official electronic document format. This helps prevent rejected electronic documents caused by too many activities being included.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278208
Original PR description
Give clearer, more accurately attributed error messages, and add validation to catch classification code / General Public TIN mismatches before they reach MyInvois. task-4651934 Forward-Port-Of: odoo/odoo#278208
Previously, questions in the event template could not be reordered via drag-and-drop on the Questions page. Instead of adding the handle to the inline list embedded in the event.type form view, we add it to the dedicated event.question list view (event_question_view_list). This will allow the users to reorder from the event questions and the sequence will be synced everywhere those questions appear. Steps to reproduce: 1.Go to event, configurations, and event questions. 2.We can't drag an
Original PR description
Previously, questions in the event template could not be reordered via drag-and-drop on the Questions page. Instead of adding the handle to the inline list embedded in the event.type form view, we add it to the dedicated event.question list view (event_question_view_list). This will allow the users to reorder from the event questions and the sequence will be synced everywhere those questions appear. Steps to reproduce: 1.Go to event, configurations, and event questions. 2.We can't drag and drop questions Original PR (18.0): odoo/odoo#270576 opw-6260478
1 change
Enhancements to existing features
This update limits Chilean company activity selections to the maximum supported by the official electronic document format. It helps prevent electronic invoices and related documents from being rejected because too many business activities were included.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
1 change
Enhancements to existing features
This update prevents Chilean companies from selecting more than four business activities for electronic documents, matching the official Chilean XML requirements. It helps avoid document rejection errors caused by sending too many activity options.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856
21 changes
Enhancements to existing features
When users open the new-product form from barcode lookup, existing notifications are no longer cleared automatically. This keeps helpful messages visible because mobile notifications now appear at the bottom and no longer block the form.
Original PR description
…n click This reverts commit https://github.com/odoo/enterprise/pull/68352. That commit cleared all open toast notifications before opening the new-product form, because on mobile a notification used to take up a large chunk of the screen, forcing the user to wait out its autoclose timeout before they could interact with the form underneath. Notifications on mobile are now anchored to the bottom of the screen (M3 snackbar), so they no longer overlap the form and this workaround is no longer needed.
ZKTeco attendance punches are now processed one transaction at a time, so an issue with one punch no longer stops the whole batch. The update also adds scheduled processing and clearer status information, helping teams spot and resolve attendance import issues more easily.
This update refreshes icon usage in several Odoo Enterprise areas to align with the latest web interface standards. Users should see more consistent visual elements in affected screens, with minimal change to day-to-day workflows.
Belgian payroll reporting now supports the withholding tax exemption for worker training, allowing selected employees' eligible training months to be included in the 274.XX report. The calculation respects legal limits by applying R&D exemptions first and capping the training exemption at the remaining withholding tax.
Original PR description
Add the "Exemption from withholding tax for worker training" (nature 274.64) to the 274.XX report. The exemption is 11.75% of the taxable gross of the months during which the training took place for the manually selected employees. The cumulative exemption for an employee cannot exceed the total withholding tax for them, so the training exemption is floored to the withholding left after the R&D exemption (274.32/33/34, applied first). task-6326855
Belgian payroll screens and reference data were updated to make DMFA work location information clearer and more consistent. This helps payroll users identify and manage work location details more easily when preparing Belgian social security reporting.
Original PR description
[IMP] l10n_be: dmfa work location adjustments Renaming and view adjustments for dmfa work location task-6381334
SEPA direct debit payment pages now use the shared pending payment instruction flow. Customers see the beneficiary name and bank account from the selected journal on status and confirmation pages, helping them understand payment details more clearly.
Original PR description
Adapt SEPA with the generic pending payment instructions introduced in `payment_custom`. Display beneficiary name and bank account number from the selected journal on payment status and confirmation pages. task-4975272
Add a new notification in the bank reco widget when a user do a reconciliation with a partner different from the one on the st_line. The idea is to let the user chose if he wants to move the bank account from the st_line partner to the move he tries to reconcile. task-6303397 Forward-Port-Of: odoo/enterprise#125702 Forward-Port-Of: odoo/enterprise#120900
Original PR description
Add a new notification in the bank reco widget when a user do a reconciliation with a partner different from the one on the st_line. The idea is to let the user chose if he wants to move the bank account from the st_line partner to the move he tries to reconcile. task-6303397 Forward-Port-Of: odoo/enterprise#125702 Forward-Port-Of: odoo/enterprise#120900
Australian payroll now applies the required superannuation contribution cap in the qualifying earnings rule. This helps employers stay aligned with ATO regulations, including updated super guarantee calculations from 1 July 2026.
Original PR description
Added superannuation limit to the QE rule. Task-6221399 Forward-Port-Of: odoo/enterprise#119792
Belgian payroll users can now see which reporting areas are affected when changing a time type. The time type form now shows the related DRS nature and triggered types, helping users understand the consequences of configuration changes before making them.
Original PR description
In order to help the user which reports gets impacted in case of modifying a time type, DRS nature and triggered types have been added to the time type form view. Task: 6330987
Belgian payroll now excludes Flexi-job workers from the holiday pay tax provision because they receive holiday pay directly. If their employment declaration is accepted with warnings, only the affected wage portion is treated like regular work and included proportionally, improving payroll accuracy.
Original PR description
…ision Flexi-job workers get their holiday pay directly, so the tax provision should not apply to them. However, if a Dimona declaration for the period was "Accepted with Warnings", that portion of the wage is treated as a regular occupation and prorated into the provision. This commit splits the old employee/worker rules into a shared HOLIDAY_TAX_PROV_BASE (wage, prorated for Flexi-jobs) and HOLIDAY_TAX_PROV_EMP (applies the worker/employee rate on top). Task-6352428
Belgian payroll now shows a non-blocking warning when an employee's part-time schedule is below the legal 10% minimum of the company’s full-time reference hours. Student and Flexi-job categories are excluded, helping payroll users spot compliance risks without stopping the save process.
Original PR description
Purpose
Part-time contracts must be scheduled for a minimum of 10% of the reference Full-Time working duration selected for the company.
Specifications
Show a non-blocking popup message when saving an employee profile if:
- The scheduled working hours are shorter than 10% of the reference working hours.
- The employee's Dimona category is not Student ('stu') or Flexi-job ('flx').
The popup informs the user of the legal 10% minimum regulation and allows them to close it without blocking the save pipeline.
Task: 6317799Users can now create new records directly from Odoo map views, making maps work more like familiar list and kanban views. Businesses can keep the button enabled by default, disable it where record creation should be restricted, or manage its visibility through Studio customization.
Original PR description
This commit adds record creation support to the map view, bringing it in line with standard Odoo views (such as List and Kanban). The "New" button is enabled by default and can be suppressed programmatically using the `create` attribute in the view XML (e.g., `create="false"`), or toggled visually via Studio customizations. task-6377660
HR contract signing now shows all available signing templates, whether they require one signer or multiple signers. This makes it easier to use the right template and supports both simple and multi-person approval workflows.
Original PR description
Before this change, selecting a signer template with one signer prevented other signer templates from being displayed. After this change, all templates are listed, including those with one or multiple signers. The signature workflow has been verified to work correctly for both single-signer and multi-signer cases. Task-6186566
Payroll users can now open the full Time Off request form directly from a leave entry in the Gantt view. The new expand button makes it easier to review or update all request details without navigating away manually.
Original PR description
Before this commit, users could click on a leave entry in the Gantt view of the Payroll app, but they could not open its full form view. This commit adds an expand button (double arrow icon) that allows users to open the complete Time Off request form. Task-6360136
Customer payment reminder workflows have been redesigned to make both automatic and manual reminders easier to manage. Open Items, Partner Ledger, and Customer Statement reports were also improved to provide clearer, more reliable follow-up information for finance teams.
Original PR description
This commit introduces new features and simplifies the reminder workflow for both automatic and manual reminders. It also includes changes to the Open Items report, providing a more robust and user-friendly experience.
When users try to create an expense card before Stripe is connected, they are now directed to the settings page to complete the connection. This reduces confusion and helps users resolve the setup issue more quickly.
Original PR description
When a user tries to create a card but the configuration is not connected, redirect the user towards the settings to do the connection. task-6272805 Forward-Port-Of: odoo/enterprise#125113
This update makes the field selection experience in Studio behave consistently when debug mode is enabled. It helps advanced users see the same options and behavior when configuring relational fields as they already do in domain filters.
Original PR description
This commit evaluates the `isDebugMode` prop which is passed to ModelFieldSelector so that the component acts the same for Relational field selector as in Domain field selector. Task~6369639
This update standardizes how access tokens are retrieved and refreshed across supported social media channels. It helps ensure linked social accounts continue to work consistently when publishing or reading social content.
Original PR description
Purpose ======= Ensure the access tokens can be read, and unify the way we get them for all social medias. Update in SUDO the access token when linking an account. Task-6330626
This update refines the Time Off planning Gantt view as a follow-up to a previous improvement. It helps make leave planning information easier to display and manage for users working with employee absences.
Original PR description
for this pr: https://github.com/odoo/enterprise/pull/109537
Bank statement reconciliation has been optimized to avoid timeouts in large multi-company databases. This should make scheduled reconciliation jobs run much faster and more reliably, reducing delays in accounting operations.
Original PR description
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the…
The standard cron process reconciles batches of 100 bank statement lines at a time. In multi-company environments with large historical datasets, this query frequently timed out, exceeding the 15-minute execution limit. Even when throttled to a batch size of 10 records, the query required approximately 18.8 seconds to execute. The performance degradation was driven by the following factors: 1. Suboptimal Lateral Filtering: The statement line batch array filter was placed inside the `LATERAL` block's `WHERE` clause. This prevented the query planner from optimizing the drive path effectively across iterations. 2. Inefficient Join Sequence and Filtering: The original join order scanned `account_move_line` before resolving the company hierarchy constraint. As a result, millions of rows across all companies were retrieved from the index, forcing repeated primary key lookups on `res_company` before ultimately discarding over 99.9% of the records via the late `parent_path` hierarchy filter. This commit addresses these issues by: 1. Moving the `st_line.id` filtering constraint out of the lateral subquery and into the outer main query block to guide the execution path properly. 2. Reordering the inner `LATERAL` subquery to resolve the company hierarchy (`res_company`) prior to joining `account_move_line`. This constraints the scan boundaries early in the pipeline. Performance Benchmarks (10 record batch): - Before Execution Time: ~18,818 ms - Before Shared Hit Blocks: 8,535,272 - After Execution Time: ~130 ms - After Shared Hit Blocks: 67,204 ms Before Plan: https://explain.dalibo.com/plan/h4739gh3519eaa43 After Plan: https://explain.dalibo.com/plan/5ebc5g8deff272gc Forward-Port-Of: odoo/enterprise#125686 Forward-Port-Of: odoo/enterprise#125250
Marketing automation synchronization is now prepared to focus on campaigns that are currently running, helping avoid unnecessary processing for inactive campaigns. The related enrollment tests were reorganized to make future improvements easier to maintain.
Original PR description
Add some filters on main API synchronization methods so that they are limited to running campaigns. Move enroll sepcific tests into a new test file to ease future updates. Prepares Task-6425785 [marketing_automation] Incremental sync
1 change
Enhancements to existing features
Companies using Chilean electronic invoicing can now select only up to four business activities, matching the official XML requirements. This helps prevent electronic documents from being rejected because too many activities were included.
Original PR description
The Chilean XML schema supports maximum of 4 activities (l10n_cl_company_activity_ids), but we allow to add more than that. If this happens, it causes rejections since electronic documents are being sent with more than 4 options selected, and returning rejection errors. Adding constraint to limit l10n_cl_company_activity_ids task-id: 6329320 Forward-Port-Of: odoo/enterprise#123856