Daily updates from Odoo
Friday, July 10, 2026
51 changes
12 changes
Enhancements to existing features
Self-order kiosk orders that are not yet paid will no longer be sent to the Belgian blackbox fiscal system immediately. This supports workflows where customers complete payment at the counter or with another method, reducing premature fiscal processing.
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#121524 Forward-Port-Of: odoo/enterprise#117585
Attachment deletion is now much faster for Chilean electronic invoicing records by improving how related invoice and stock transfer records are found. This reduces long wait times during cleanup operations, especially on large databases.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
German POS certification now handles retail and restaurant transactions separately, matching Fiskaly’s recommended flow. This improves compliance reliability by starting transactions earlier, avoiding unnecessary updates for retail sales, and sending only relevant kitchen updates for restaurant orders before final validation.
Original PR description
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order…
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order transactions` with an empty payload when the `first product` is added. - Start `receipt transactions` with an empty payload when the `first payment line` is added. - For retail flows, no intermediate order updates are sent to Fiskaly before finalization. - For restaurant flows, create additional transaction updates during kitchen synchronization. Ensure already synchronized products are not resent, and only newly added or updated quantities are included in the payload. - `Finalize order and receipt transactions` with complete order lines and payment details when we validate the order. task: 6208963 Reference: <img width="1863" height="1285" alt="de_tss_flow" src="https://github.com/user-attachments/assets/9140788e-7948-4a08-9f11-27197b22ca8b" /> Forward-Port-Of: odoo/enterprise#120529 Forward-Port-Of: odoo/enterprise#117526
Database information can now include the status of the Know Your Client process. This helps business users quickly see whether customer verification is complete or still needs attention.
Original PR description
Add a new type kyc_status to display the status of the Know Your Client procedure in the databases. Task-id: [6348952](https://www.odoo.com/odoo/project.task/6348952) Forward-Port-Of: odoo/enterprise#122510
Shopfloor now follows the same rules as the backend when work order quantities are updated, avoiding unintended changes to the quantity being produced in continuous production. The work order form layout was also reorganized to make production information clearer and more consistent.
Original PR description
In this commit, shopfloor is modified in order to match the behaviour in the backend; On updating WO's quantity, the quantity producing is not updated if its a continuous production. Workorder form fields were also re-ordered as a part of the ongoing continuous production clean. Task: 6346515
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
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#275146 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#274792 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#274792 Forward-Port-Of: odoo/odoo#274460
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#271591 Forward-Port-Of: odoo/odoo#250364
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#271591 Forward-Port-Of: odoo/odoo#250364
This PR applies the following improvements for the cmr report: - Product name is shown in a primary language (English or company language if English is not activated), and translation in the language of the consignee is also shown in case it's different from the primary language. - Never created variant attributes are now shown. - Made sure `t-translation=off` is applied to all labels in the report.
Original PR description
This PR applies the following improvements for the cmr report: - Product name is shown in a primary language (English or company language if English is not activated), and translation in the language of the consignee is also shown in case it's different from the primary language. - Never created variant attributes are now shown. - Made sure `t-translation=off` is applied to all labels in the report.
Last version is owl 3.00 alpha 43 Release notes: https://github.com/odoo/owl/releases/tag/v3.0.0-alpha.43 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
Last version is owl 3.00 alpha 43 Release notes: https://github.com/odoo/owl/releases/tag/v3.0.0-alpha.43 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 introduces a manual process for Know Your Customer (KYC) verification within the PEPPOL account setup. Previously, PEPPOL account creation relied on automated checks. Now, users can complete a manual KYC process, ensuring compliance with regulatory requirements and streamlining the account onboarding experience. This change improves the security and reliability of our PEPPOL service.
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 Forward-Port-Of: odoo/odoo#275371
This update streamlines the continuous production process in MRP by simplifying quantity updates and tracking changes. The system now automatically updates work order status based on production quantity, reducing manual intervention and improving data accuracy. UI enhancements have also been included.
Original PR description
A few points to improve continuous production: - Updating workorder produced qty will no longer update qty producing for the MO, because work orders quantity will always be updated and this will be done by several users simultaneously and updating MO's quantity producing at the same time will make it difficult to manage and its not needed. - Track work order quantites updates, for better tracking of who changed the quantity. - Improved continuous production tool tip. - Work order status will be updated from 'To Do' to 'in progress' when the produced quantity is updated. - Some UI changes. Task 6346515 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
4 changes
Enhancements to existing features
Attachment deletion is now much faster for companies using Chilean electronic invoicing and related stock flows. This improves responsiveness and reduces delays when cleaning up or processing large numbers of documents.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
Databases can now show the status of the Know Your Client procedure as a KPI. This helps business users quickly see customer verification progress directly from database information.
Original PR description
Add a new type kyc_status to display the status of the Know Your Client procedure in the databases. Task-id: [6348952](https://www.odoo.com/odoo/project.task/6348952) Forward-Port-Of: odoo/enterprise#122510
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#274792 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#274792 Forward-Port-Of: odoo/odoo#274460
This update introduces a manual KYC (Know Your Customer) process for Odoo users utilizing the PEPPOL accounting module. Previously, PEPPOL account setup was automated. Now, users can complete a manual verification process, ensuring compliance with PEPPOL regulations and improving data security. This change enhances the reliability and security of transactions within the PEPPOL ecosystem.
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 Forward-Port-Of: odoo/odoo#275371
5 changes
Enhancements to existing features
Deleting electronic document attachments in the Chilean localization is now much faster, especially for databases with many invoices or stock transfers. This reduces waiting time and improves day-to-day system performance for affected customers.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
The Time Off planning Gantt view now uses paging and opens with an overview scale by default. This should make large planning schedules easier and faster to browse, improving the experience for managers reviewing employee absences.
Original PR description
Add paging and default scale as the overview gantt task-6381315
Databases can now show the status of the Know Your Client process as a KPI. This helps teams quickly see customer verification progress directly from database information.
Original PR description
Add a new type kyc_status to display the status of the Know Your Client procedure in the databases. Task-id: [6348952](https://www.odoo.com/odoo/project.task/6348952) Forward-Port-Of: odoo/enterprise#122510
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#274792 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#274792 Forward-Port-Of: odoo/odoo#274460
This update ensures the iMin printer driver continues to function correctly with recent changes to Odoo's core point-of-sale system. The configuration has been moved to align with new standards, preventing potential errors and ensuring seamless receipt printing. This update also includes improvements to testing and reliability.
Original PR description
Following recent updates to the base `pos.printer` architecture in the point_of_sale module, the iMin driver configuration must be adapted to maintain compatibility and ensure seamless integration.…
Following recent updates to the base `pos.printer` architecture in the point_of_sale module, the iMin driver configuration must be adapted to maintain compatibility and ensure seamless integration. This commit backports the alignment logic and structure originally introduced in saas-19.3. Previously, iMin configuration lived inside the general POS settings overrides. To align with the updated base class interface and prevent tracebacks or broken flows, the driver's configuration logic is now migrated directly into the native `pos.printer` model ecosystem. This adaptation includes: - Moving the configuration views and logic to inherit from `pos.printer`. - Restricting iMin devices strictly to receipt printing via a new constraint. - Adding a 3-second timeout to the WebSocket availability check to comply with the base class's expectations for non-blocking status checks. - Updating backend testing support by patching `TestEPos`. opw-6218933 Forward-Port-Of: odoo/odoo#265709
4 changes
Enhancements to existing features
Attachment deletion is now much faster for Chilean electronic invoicing and stock documents. This reduces delays for users and background operations on databases with large volumes of accounting moves or stock transfers.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
Database records can now show the status of the Know Your Client process as a KPI. This helps teams quickly see customer verification progress directly from database information, improving monitoring and follow-up.
Original PR description
Add a new type kyc_status to display the status of the Know Your Client procedure in the databases. Task-id: [6348952](https://www.odoo.com/odoo/project.task/6348952) Forward-Port-Of: odoo/enterprise#122510
Following recent updates to the base `pos.printer` architecture in the point_of_sale module, the iMin driver configuration must be adapted to maintain compatibility and ensure seamless integration. This commit backports the alignment logic and structure originally introduced in saas-19.3. Previously, iMin configuration lived inside the general POS settings overrides. To align with the updated base class interface and prevent tracebacks or broken flows, the driver's configuration logic is n
Original PR description
Following recent updates to the base `pos.printer` architecture in the point_of_sale module, the iMin driver configuration must be adapted to maintain compatibility and ensure seamless integration. This commit backports the alignment logic and structure originally introduced in saas-19.3. Previously, iMin configuration lived inside the general POS settings overrides. To align with the updated base class interface and prevent tracebacks or broken flows, the driver's configuration logic is now migrated directly into the native `pos.printer` model ecosystem. This adaptation includes: - Moving the configuration views and logic to inherit from `pos.printer`. - Restricting iMin devices strictly to receipt printing via a new constraint. - Adding a 3-second timeout to the WebSocket availability check to comply with the base class's expectations for non-blocking status checks. - Updating backend testing support by patching `TestEPos`. opw-6218933
This update introduces a manual process for Know Your Customer (KYC) verification within the PEPPOL account setup in Odoo. Previously, this process was automated. Now, administrators can complete the necessary KYC documentation directly within Odoo, ensuring compliance with PEPPOL regulations and simplifying the account onboarding experience. This change improves the user experience and streamlines the account setup process for our PEPPOL customers.
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 Forward-Port-Of: odoo/odoo#275371
1 change
Enhancements to existing features
Attachment deletion is now much faster for Chilean electronic invoicing and stock documents. This reduces delays when cleaning up records in databases with many invoices or deliveries, improving day-to-day system responsiveness.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
4 changes
Enhancements to existing features
Attachment deletion is now much faster for Chilean electronic invoicing and stock documents. This reduces long waits and database load when removing large numbers of attachments, especially for companies with high transaction volumes.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
In the even template, on the questions page, we can't drag and change the order of the questions. To fix it, we'll add the sequence field with handle widget to event.type questions list view to enable drag-and-drop reordering matching the behavir in event.event. Steps to reproduce: 1.Go to event templates 2.Select any templates 3.Go to questions page 4.We can't drag and drop questions opw-6260478 Forward-Port-Of: odoo/odoo#270576
Original PR description
In the even template, on the questions page, we can't drag and change the order of the questions. To fix it, we'll add the sequence field with handle widget to event.type questions list view to enable drag-and-drop reordering matching the behavir in event.event. Steps to reproduce: 1.Go to event templates 2.Select any templates 3.Go to questions page 4.We can't drag and drop questions opw-6260478 Forward-Port-Of: odoo/odoo#270576
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 Forward-Port-Of: odoo/odoo#274065
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 Forward-Port-Of: odoo/odoo#274065
Previously, bills could only be retrieved from the KSeF platform via a scheduled cron job, leaving users with no option to manually sync documents on demand. An "Import from KSeF" action has been added to the gear (cog) menu within both the list and Kanban views. Clicking this option triggers the synchronization process immediately and reloads the active view. Task [link](https://www.odoo.com/odoo/project.task/6306892) task-6306892 Forward-Port-Of: odoo/odoo#271459
Original PR description
Previously, bills could only be retrieved from the KSeF platform via a scheduled cron job, leaving users with no option to manually sync documents on demand. An "Import from KSeF" action has been added to the gear (cog) menu within both the list and Kanban views. Clicking this option triggers the synchronization process immediately and reloads the active view. Task [link](https://www.odoo.com/odoo/project.task/6306892) task-6306892 Forward-Port-Of: odoo/odoo#271459
17 changes
Enhancements to existing features
Point of Sale screens and related add-ons now include more complete translations for messages that staff may see during daily use. This improves clarity for users working in different languages, especially for dialogs, errors, alerts, and warnings.
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#122764 Forward-Port-Of: odoo/enterprise#102094
This update adds automated checks to ensure emails linked to newly generated coupons from helpdesk tickets remain traceable. It helps protect the reliability of customer communication history without changing day-to-day user workflows.
Original PR description
Added tests for email traceability when generating a new coupon in a ticket --- task-6341030 Forward-Port-Of: odoo/enterprise#122508
The printer setup screen now only shows the O-Box IP address setting when it is relevant for ePOS printers. It also hides technical service details from the O-Box view, making configuration clearer for business 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 Forward-Port-Of: odoo/enterprise#123271
Point of Sale preparation displays can now be configured to create separate preparation orders for each product. This helps kitchen or prep teams organize work more clearly while keeping combo items grouped correctly with their main product.
Original PR description
In this commit: --- - This commit adds a split-per-product option on preparation displays, loads it in the PoS, and uses it to create separate preparation orders per product while keeping combo children attached to their parent line. related-https://github.com/odoo/odoo/pull/267412 task-6227300
VoIP call durations are now labeled and formatted more consistently in search filters, graphs, and pivot reports. This helps users understand whether duration values are shown in seconds or formatted time, reducing confusion when analyzing call activity.
Original PR description
Previous commits such as [1] worked towards a better uniformisation of the way we store and display duration values in VoIP. This commit hopefully takes care of the remaining issues: - Search view: custom filters (using the Domain component) would show things like "Duration" "greater than" "34", without any unit displayed. For that one, the only real possibility is to modify the label of the python field to "Duration (s)", so filters become clearer. It requires explicitly forcing labels to "Duration" everywhere else though. - Graph view: using widget="voip_duration" as in other views so that duration values are formatted properly. - Pivot view: using widget="voip_duration" as in other views so that duration values are formatted properly. [1]: https://github.com/odoo/enterprise/commit/906b0702daeddcc43782bc4234b18c8d01a29c8e task-6234431
The Grid and Gantt views were updated to work with a newer internal rendering method. This helps keep these views reliable and easier to maintain, with no expected change to day-to-day workflows.
Original PR description
- community: https://github.com/odoo/odoo/pull/273956 This commit follows changes in the `useVirtualGrid` hook regarding reactivity. The users of this hook, namely: the Gantt and Grid views' renderers, have been adapted to use its new API.
This update moves Odoo Enterprise screens and website snippets to the new shared icon system. Users should see more consistent icons across accounting, website, appointments, knowledge, sign, studio, room booking, and related areas, while reducing reliance on older icon assets.
Original PR description
Community PR: odoo/odoo#275347 task-5901783
Field Service shift notes can now include rich formatting such as links, images, and clearer instructions instead of plain text only. Product descriptions are also added automatically, helping technicians see relevant job details directly in their shift instructions.
Original PR description
Currently, the **Note** field only supports plain **text**, limiting the ability to include rich content such as links, images, and formatted instructions. This commit converts the **Note** field to **HTML** and automatically displays the product description in it, making Field Service shift instructions richer and easier for technicians to follow. Task-6285798
The PLM document view has been adjusted to better match the updated document management layout. This removes an unnecessary “Variant” banner and helps documents display and integrate more cleanly for users.
Original PR description
The goal is to remove the “Variant” banner and ensure the XPath follows the new document view structure so it can integrate properly. PR: https://github.com/odoo/odoo/pull/259695 upgrade PR: https://github.com/odoo/upgrade/pull/9990 task-5946575
The subscription portal now shows the “Change Plan” option as a lighter, less prominent button. This better reflects that changing plans is optional and helps avoid nudging customers toward an unintended action.
Original PR description
When changing the plan is allowed from the portal, a "Change Plan" button is shown in the subscription sidebar. It was styled as a primary button, which wrongly suggests to the customer that this is an action they are expected to take. Make it a light button instead. task-6280700
Sales users can now choose a subscription plan directly for optional subscription products in the configurator, instead of always receiving the first available plan. When a plan is already set by a parent product or cart subscription, the selector is locked so optional items stay aligned with the existing subscription.
Original PR description
Previously, optional subscription products in the configurator dialog would default to the first available subscription plan. This behavior was restrictive and did not allow users to choose a different plan. This change introduces an inline plan selector displayed next to the price of each optional subscription product in the configurator dialog: - The selector is editable when no plan is enforced (i.e., no parent subscription product and no existing subscription in the cart). - The selector is locked when a plan is already defined, ensuring optional products inherit the parent subscription plan. task-6130917
Validated tax returns can now be reset more flexibly when later returns already exist, as long as the report does not rely on carryover values. This reduces extra work for accounting teams that need to correct and resubmit an earlier period without undoing every subsequent return.
Original PR description
Let's consider we have validated the return of our tax report for January and February. Then, we realize we made an error in January, and want to modify this return and resubmit it. Before this…
Let's consider we have validated the return of our tax report for January and February. Then, we realize we made an error in January, and want to modify this return and resubmit it. Before this commit, an error message blocked the direct resetting of January's return, because February's had been posted. To be able to reset January, it was necessary to reset all subsequent returns. This was annoying. Such fixes need to happen in many countries (while some other rather make the adjustments in the next period to declare, like Belgium). This restriction was originally introduced to avoid inconsistencies in case the returns declared from the previously submitted returns. Two features could create such cases: 1) tax amount to recover, which was directly deduced from the closing entry when it contained something to pay 2) carryover, which created external values able to impact the following periods => Case 1) is not true anymore. When an amount needs to be recovered, we just show the balance taking it into account on the following returns, but don't change anything to their closing at all. => Case 2) still holds. So, all we need to put under control is carryover, which is what we do now. If the report doesn't use carryover at all, its returns can all safely be reset, whatever the state of the rest of the return chain.
The Sources tab for AI agents now has a clearer mobile-friendly layout. Adding a source also uses the same dialog as the list view, making the experience more consistent and easier to use on smaller screens.
Original PR description
The Sources tab in the AI agent form did not provide a dedicated kanban layout, resulting in a poor view on smaller screens. This commit adds a structured kanban view for AI agent sources and updates the 'Add Source' action to open the same creation dialog as the list view, providing a more consistent user experience. task-6366399
The bank reconciliation widget now loads less unnecessary data, especially on very large databases. This should make opening and using bank reconciliation faster for accounting teams without changing their workflow.
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 timesheet assistant now gives clearer guidance when setup issues prevent activity tracking, including distinguishing server and CORS problems and warning when the browser watcher is missing or inactive. It also improves suggested timesheet entries by showing better context, restoring ActivityWatch suggestions after deleted Odoo events, and choosing more relevant projects for calendar events.
Original PR description
Forward-Port-Of: odoo/enterprise#122340 Forward-Port-Of: odoo/enterprise#115859
The WhatsApp message status icon now appears before message actions, keeping it in a consistent spot. This makes message threads easier to scan and improves readability for users.
Original PR description
Display the WhatsApp message status icon before the message actions to keep it consistently positioned and improve message readability. **before:** <img width="581" height="108" alt="image" src="https://github.com/user-attachments/assets/3971d86d-6210-4d26-87ca-88f425dd090d" /> **after** <img width="341" height="164" alt="image" src="https://github.com/user-attachments/assets/503f2861-34bf-4371-8ccd-4e1c6bc3f874" /> task-6085748
The Knowledge options dropdown has been simplified by removing non-essential icons while keeping menu text neatly aligned. The “Move To” action label was also clarified as “Move To...”, making the menu easier to scan without changing its functionality.
Original PR description
This commit removes non-essential icons from the knowledge options dropdown. It adds an invisible icon class to keep text alignment consistent and updates the "Move To" label to "Move To...". Related: odoo/odoo#271256 Task~6279545
3 changes
Enhancements to existing features
The bank reconciliation widget now loads less data and shifts some heavy calculations away from the browser. This should make opening reconciliation screens faster on very large databases, improving day-to-day accounting workflows.
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-6275945Loss amounts in the Lithuanian Profit and Loss report are now displayed in red instead of grey with only a negative sign. This makes negative results more visible and helps users review financial performance more quickly.
Original PR description
Before this commit: - The losses in the Lithuanian P&L report are shown in grey with only a -ve sign After this commit: - The losses in the P&L report are shown in red now. Related PR: https://github.com/odoo/odoo/pull/239388 Task-5269617
Attachment deletion is now much faster for companies using the Chilean electronic invoicing and stock localization features. The change improves database lookup performance, reducing delays when deleting many attachments in large databases.
Original PR description
## The problem Deleting attachments checks foreign key triggers. Lookups in `account_move` and `stock_picking` tables for `ir_attachment` related fields coming from `l10n_cl_edi` overrides were slow due to missing indexes. ## The solution Added needed indexes to optimize triggers' lookups. ## Benchmark Time benchmark (deleting attachments from a customer database with 224K account moves and 204K stock pickings): |# of rows|Time (Before)|Time (After)| |----------|--------------|-------------| 100 | 29s | 16ms 1000 | 285s | 300ms OPW-6331845 Forward-Port-Of: odoo/enterprise#123350 Forward-Port-Of: odoo/enterprise#123252
1 change
Enhancements to existing features
Website forms can be customized using the website editor. These customized values are directly embedded in the form in a hidden input or injected via the data-for js mechanism. For website forms whose action is the route `/website/form/`, this commit ensures that input marked with `data-sign='true'` are not modified by the client. The signature is prepared during the compilation phase, and the signature is calculated at runtime (during rendering) to take into account values rendered dynami
Original PR description
Website forms can be customized using the website editor. These customized values are directly embedded in the form in a hidden input or injected via the data-for js mechanism. For website forms whose action is the route `/website/form/`, this commit ensures that input marked with `data-sign='true'` are not modified by the client. The signature is prepared during the compilation phase, and the signature is calculated at runtime (during rendering) to take into account values rendered dynamically. HTML fields do not pass through the QWeb engine. For this field the form signature is calculated statically. Passing embedded forms within HTML fields through the pre-compilation step allows their signatures to be determined since these forms are static. This mechanism is completely transparent to the end user. Task-6320608