Daily updates from Odoo
Tuesday, July 7, 2026
45 changes
7 changes
Enhancements to existing features
The timesheet assistant now gives clearer guidance when setup issues prevent activity tracking, including distinguishing connection problems from CORS configuration issues and warning when the browser extension is missing or inactive. It also improves suggestion quality by showing real record names, preserving deleted Odoo events properly, and selecting more relevant projects for calendar-based timesheets.
Original PR description
Forward-Port-Of: odoo/enterprise#121939 Forward-Port-Of: odoo/enterprise#115859
This update adds automated checks to ensure emails can be properly traced when a new coupon is generated from a helpdesk ticket. It helps protect customer service workflows by reducing the risk of unnoticed regressions in coupon-related communication tracking.
Original PR description
Added tests for email traceability when generating a new coupon in a ticket --- task-6341030
The Courses menu is no longer hidden when Course Allocation is enabled in a restaurant point of sale. This makes course setup and management accessible to the people who need it, and the added help text guides users when creating courses.
Original PR description
Before this commit: ======================= The Courses menu was always hidden because it was restricted to `base.group_no_one`, making course management inaccessible even when Course Allocation was enabled in a restaurant PoS. After this commit ====================== The Courses menu now always visible. A help message is also added to the Courses action to guide users when creating courses. Task-6317914 Forward-Port-Of: odoo/odoo#274300 Forward-Port-Of: odoo/odoo#271308
Desktop notifications will no longer be forced onto a single line, so longer messages can display more of their content. This makes important alerts, such as style compilation errors, easier to read and understand at a glance.
Original PR description
Before this commit, on screens wider than the medium breakpoint, notification messages were force-clamped to a single line via a `--lines-clamp: 1` override, hiding the rest of the text for longer messages, such as the "Style error" notification shown when SCSS compilation fails. After this commit, the single-line override is removed so notifications fall back to the default 2-line clamp. task-6037796
PDF reports can now be converted into images before printing, which makes them compatible with ePOS printers. This helps businesses print documents like labels on devices such as the Epson TM-L100.
Original PR description
We now use wkhtmltoimage to render pdf reports as images in order to print them using an ePOS printer. This is useful to print labels using an Epson TM-L100 for example.
The mailing form now places the Exclusion List option inline with the Recipients and Dynamic Lists fields for a more consistent layout. It also hides the Dynamic Lists section when no dynamic list has been set, reducing visual clutter and making the form easier to use.
Original PR description
This commit moves the Exclusion List checkbox to be inline with the Recipients and Dynamic Lists fields. This commit also hides the Dynamic Lists div if the mailing is sent while no dynamic list has been set. task-6321624
Odoo now shows cleaner VAT/Tax ID placeholders and a clearer tooltip when editing customer details. When the expected VAT format is known, users will see an example format; otherwise the field stays empty, reducing confusion and making the guidance easier to understand.
Original PR description
In this commit: - Remove 'or not applicable' and '/ if not applicable' from VAT placeholders. - Display the expected VAT format when available (e.g. BE0477472701). - Leave the placeholder empty when no format is known. - Simplify the tooltip to: 'You can use / to indicate that the customer has no Tax ID.' task-[5005896](https://www.odoo.com/odoo/project/967/tasks/5005896) Forward-Port-Of: odoo/odoo#274578 Forward-Port-Of: odoo/odoo#273344
4 changes
Enhancements to existing features
UK VAT returns now prompt users when their company belongs to a tax unit and can automatically switch the report to that tax unit. When filing to HMRC, the system uses the tax unit's VAT number where applicable, reducing filing errors for grouped companies.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122965 Forward-Port-Of: odoo/enterprise#107253
This update improves the French reporting tools used for fiscal declarations. It helps make local compliance reporting more reliable and easier to maintain for businesses operating in France.
The product list in Point of Sale now stays in the full layout on medium-sized tablets instead of switching to the compact view too early. This gives staff more space to browse products and improves usability on devices in landscape or medium-width screens, including a fix for iPhone/iPad orientation changes.
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#270394 Forward-Port-Of: odoo/odoo#266704
This update simplifies the VAT input field in the accounting system, making it easier for users to enter tax ID information. It removes confusing phrases and displays the expected VAT format when available, ensuring accurate data entry. The tooltip has also been streamlined for clarity.
Original PR description
In this commit: - Remove 'or not applicable' and '/ if not applicable' from VAT placeholders. - Display the expected VAT format when available (e.g. BE0477472701). - Leave the placeholder empty when no format is known. - Simplify the tooltip to: 'You can use / to indicate that the customer has no Tax ID.' task-[5005896](https://www.odoo.com/odoo/project/967/tasks/5005896) Forward-Port-Of: odoo/odoo#273344
6 changes
Enhancements to existing features
UK VAT returns now guide users to file through the relevant tax unit when their company belongs to one. The system uses the tax unit VAT number for HMRC connections and submissions, reducing filing errors and ensuring reports are sent under the correct entity.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122965 Forward-Port-Of: odoo/enterprise#107253
Belgian payroll rules were updated with the new employment bonus parameters taking effect on 1 July 2026 and 1 September 2026. This helps ensure payroll calculations remain aligned with upcoming legal requirements and reduces the risk of incorrect payslips.
Original PR description
Update the employment bonus parameters for 1st July 2026 and 1st September 2026. task-6369633
Belgian payroll calculations now include updated employment bonus parameters taking effect on 1 July 2026 and 1 September 2026. This helps ensure payroll remains aligned with the latest Belgian rules for eligible employees.
Original PR description
Update the employment bonus parameters for 1st July 2026 and 1st September 2026. task-6369633
This change speeds up forum pages by reducing the work needed to display popular tags and match similar posts. For odoo.com, it cuts the time and database load of forum page requests roughly in half, which helps the site stay faster under heavy traffic.
Original PR description
This PR improves the cost of `/forum/my-forum-1/my-slug-1234` by ~48%. This has a huge impact on odoo.com The `/forum/...` routes are the `#1` on odoo.com in terms of absolute count and in terms of…
This PR improves the cost of `/forum/my-forum-1/my-slug-1234` by ~48%. This has a huge impact on odoo.com The `/forum/...` routes are the `#1` on odoo.com in terms of absolute count and in terms of CPU and SQL cost. They are called several million times a day. The average total time for `/forum/my-forum-1/my-slug-1234` goes from ~358ms to ~187ms (sql: 107ms -> 52ms - cpu 250ms -> 135ms) This has been tested by extracting 30k real forum post urls from odoo.com logs and replaying them on a staging server. That day `/forum/...` routes were called 2.8M times ## before <img width="1343" height="122" alt="image" src="https://github.com/user-attachments/assets/2b8264b7-4f26-40a7-a20a-20d478f5a93a" /> ## after <img width="1339" height="124" alt="image" src="https://github.com/user-attachments/assets/7c73aeb0-a4b4-45b8-ae98-093ac70c438e" /> ### First commit before <img width="1857" height="946" alt="image" src="https://github.com/user-attachments/assets/63b9d966-f5fd-4047-b4cb-533b7e9491bc" /> after <img width="1844" height="867" alt="image" src="https://github.com/user-attachments/assets/9494efe0-0b7c-419d-b918-dcfe5e942e63" /> query plan for most used tags as public user: - with the index https://explain.dalibo.com/plan/gbf9fbd358687f3e - without the index https://explain.dalibo.com/plan/da5gg6cd27f67496 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Creating employees will now process future public holiday time entries much faster. This prevents long waits or timeouts when many holidays have been set up far into the future, improving reliability for HR and planning teams.
Original PR description
**Problem:** When creating a new employee, the future timesheets due to public holidays are computed. If the number of public holidays is large (i.e. if the user creates them for each year, several…
**Problem:** When creating a new employee, the future timesheets due to public holidays are computed. If the number of public holidays is large (i.e. if the user creates them for each year, several years in the future), then it takes excessively long and the action may not complete. **Cause:** The pytz method `localize` and comparing times with non-static timezones is done repeatedly and unnecessarily which becomes costly with more records. **Solution:** Only localize the time when absolutely necessary (determining the date of the leave in the calendar timezone). **Performance Stats:** |Record count|Time before|Queries before|Time after|Queries after| |------------|-----------|--------------|----------|-------------| |100 |3.1s |393 |0.8s |117 | |1,000 |22.3s |2,090 |1.5s |183 | |10,000 |Timeout |N/A |6.7s |541 | opw-6087422 Forward-Port-Of: odoo/odoo#270684 Forward-Port-Of: odoo/odoo#263953
This update simplifies the VAT input field in the accounting module, making it easier for users to enter tax ID information. The system now displays the expected VAT format when available and provides a clearer tooltip explaining how to indicate a customer without a tax ID. This improves data accuracy and user experience.
Original PR description
In this commit: - Remove 'or not applicable' and '/ if not applicable' from VAT placeholders. - Display the expected VAT format when available (e.g. BE0477472701). - Leave the placeholder empty when no format is known. - Simplify the tooltip to: 'You can use / to indicate that the customer has no Tax ID.' task-[5005896](https://www.odoo.com/odoo/project/967/tasks/5005896) Forward-Port-Of: odoo/odoo#273344
1 change
Enhancements to existing features
The VAT field now shows a cleaner placeholder and, when possible, the expected VAT format for the selected country. The help text was also simplified to make it easier for users to understand how to mark a customer without a Tax ID.
Original PR description
In this commit: - Remove 'or not applicable' and '/ if not applicable' from VAT placeholders. - Display the expected VAT format when available (e.g. BE0477472701). - Leave the placeholder empty when no format is known. - Simplify the tooltip to: 'You can use / to indicate that the customer has no Tax ID.' task-[5005896](https://www.odoo.com/odoo/project/967/tasks/5005896) Forward-Port-Of: odoo/odoo#273344
1 change
Enhancements to existing features
The out-of-office banner now keeps the "Back on" status on a single line instead of letting it wrap. This makes the header 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
16 changes
Enhancements to existing features
The payroll dashboard now shows a dedicated cancel button when a user starts deleting a to-do item. This makes the choice to back out of deletion more obvious and reduces confusion for users.
Original PR description
Small UX improvement adding a cancel button when deleting todos on the dashboard. While you can simply press the x to cancel, showing a button for it makes it clearer at no extra cost.
Field service users can now see product availability forecasts and expected arrival timing directly in the stock moves list. This saves time by reducing the need to open each record individually when checking supplementary products for planned sales orders.
Original PR description
Previously, when a sales order for a field service product was planned, adding supplementary products only displayed the basic delivery status in the stock moves list view. To view the replenishment forecast or expected arrival date, users had to navigate into the form view. This commit exposes the `forecast_widget` in the list view. Users can now check product availability and arrival timelines at a glance without opening individual records. task-5929015
Printer setup now only shows the OBox IP address setting when it is relevant for ePOS printers. Less useful OBox service details are hidden from the regular view, reducing clutter and making configuration easier for users.
Original PR description
This PR adapts the view to only allow the user to set obox ip if the type of printer used is epos as it doesnt matter otherwise It also moves services installed on the obox to debug view only task-6330864
Project task users can now dismiss time off warning banners once they have been seen or addressed. Dismissed employees are skipped in future time off checks, reducing unnecessary processing and improving performance on tasks with multiple assignees.
Original PR description
Previously, leave warnings were always computed and displayed for all assigned employees, even if the warning was already known or addressed. For tasks with multiple assignees, this led to unnecessary processing. - Add a dismissal mechanism to the leave warning banner on the task form view. - Exclude dismissed users from the time-off calculation pool to avoid redundant fetching and performance degradation. task-5025297
Cell hover tooltips were removed from selected list views because they were hard to discover and often duplicated visible content. This makes day-to-day navigation less intrusive, while still allowing helpful tooltips on clearer elements like buttons or icons when needed.
Original PR description
In this commit, we decided to remove tooltips from the `cell` in the `listview`. The reasons are: - It’s hard to discover that a tooltip exists on a cell. - Default tooltips are annoying because they appear whenever the user parks the mouse over a cell. - Most tooltips are useless because they simply display the cell content If the content is truncated, you should resize/enlarge the cell instead. Note: Tooltip isn't ban but if a tooltip is really needed, it should be attached to a button or an icon rather than appearing on hover with a delay. task-4504910
Belgian payroll now better supports flexi-job contracts, including the required Dimona notifications, shift-hour capture, and payroll calculations. The update helps employers stay compliant by preventing invalid automatic declarations and adjusting wage handling when official notifications are refused.
Original PR description
Modifications include: - Updated the dimona workflow to support flexi-jobs, including capturing shift hours for same-day contracts. - Added restrictions to prevent automatic dimonas beyond 31 days and block contracts overlapping multiple quarters. - Added support for a new "Flexi Wage" and specific payroll computations. - Implemented anomaly code handling (460/510) to fall back to regular wage computations when a dimona is refused. - Updated the DMfA XML templates and schemas to include the `FlexiNotion` tag for relevant employees. Task Id : 6033394
The preparation display used by kitchen and order teams has been refreshed with a cleaner layout and improved visual styling. A new dark mode makes the screen easier to use in low-light environments and gives restaurants more flexibility for their setup.
Original PR description
*: pos_restaurant_preparation_display, pos_self_order_preparation_display, pos_urban_piper In this commit: ----------------------- - Implemented dark mode for the kitchen display. - Updated styling and layout for improved visuals. Task: 6112459 | Brfore | |--------| | <img width="1919" height="896" alt="image" src="https://github.com/user-attachments/assets/082924e6-f442-429f-afb0-6b5c16b7d761" /> | AFTER | Light | Dark | |--------|--------| | <img width="1919" height="898" alt="image" src="https://github.com/user-attachments/assets/225ce5c1-fee2-4ea7-ac80-5ee9c9232d1b" /> | <img width="1920" height="895" alt="image" src="https://github.com/user-attachments/assets/bee6c761-49ea-49b0-b20e-bd7d96904e6d" /> |
AI chats now behave more like standard Discuss conversations, with message search, editable conversation titles, and a visible favorite button in the header. Tools and Skills setup options were moved under Configuration so administrators can find setup-related settings in a more intuitive place.
Original PR description
AI chats were missing several behaviors users expect from any other Discuss conversation: searching within messages, renaming the conversation, and displaying the favorite button in the header (the action was already available but not visible there). The Tools and Skills configuration entries were also moved from the Agent menu to the Configuration menu, as they are setup-time settings rather than something a user interacts with during day-to-day agent use, and grouping them under Configuration is more consistent with where users expect to find them. task-6326376 Related: https://github.com/odoo/odoo/pull/273973
After a user signs a document, the thank you dialog now only suggests documents that are ready for that user to sign. This prevents users from opening or signing documents before their turn, making the signing flow clearer and more reliable.
Original PR description
Before this fix: After signing a document, the thank you dialog would show pending documents regardless of signing order. This allowed users to navigate to and sign documents even when it was not yet their turn. After this fix: The thank you dialog now only shows documents where it is the user's turn to sign, respecting the signing order set on the request. Impact: Improves user experience by ensuring the signing order is respected when navigating to the next document from the thank you dialog. Task ID: 6306061
The subscription sales module has been adjusted to stay aligned with recent platform changes. This helps keep subscription pricing behavior consistent and reduces the risk of disruption after upgrades.
Subscription product pages now show discount badges only when a plan is truly cheaper than the one-time purchase option or the relevant comparison price. Goods product pages also avoid showing misleading recurring price information, helping customers compare options more clearly before buying.
Original PR description
Before: - When "Accept One-Time Sale" was enabled, plans priced higher than the Buy Once price still showed a discount badge incorrectly. - For goods products, the "per period" price column was shown, which is misleading since goods are not sold on a recurring price basis. After: - When "Accept One-Time Sale" is enabled, each plan is compared against the Buy Once price; only cheaper plans show a discount badge. - For consumable products, discount is calculated against the most expensive delivery option so cheaper plans show the saving correctly. - For non-consumable products, plan prices are normalized to the shortest billing period for a fair comparison across all plans. - The "per period" price column is now shown only for service products. Impact: - Customers always see accurate discount badges. - Goods product pages no longer show a misleading per-period price, reducing confusion for customers during purchase. Taskid- 6230474
Rental orders now update key dates and prices automatically, reducing manual work and the risk of pricing mistakes. The sales form is also cleaner by showing subscription and rental fields only when they are relevant.
Original PR description
Before this change: - A delivery date field was manually editable and used to control the rental delivery date. - Changing the rental start or end date showed an 'Update Rental Prices' button to update rental pricing. - The rental period field was displayed below the delivery date. - The recurring plan field was visible even when no subscription product was present. After this change: - The delivery date field is hidden and automatically computed from rental_start_date. - Rental prices are automatically recomputed when the rental start or end date changes, removing the 'Update Rental Prices' button. - The rental period field is moved before the pricelist field for better UI flow. -The recurring plan field is now hidden when the order does not contain any subscription product. task-6031439 Community PR:https://github.com/odoo/odoo/pull/255832 Upgrade PR:https://github.com/odoo/upgrade/pull/9693
Project document workspaces now update their company when all linked projects belong to the same company. This removes an inconsistency where projects created in different ways could leave shared documents without the right company assignment.
Original PR description
Before this PR --- - Projects created from the kanban quick create have no company at creation time, so their workspace is born without one. Changing the company later from the form view was silently…
Before this PR
---
- Projects created from the kanban quick create have no company at creation
time, so their workspace is born without one. Changing the company later
from the form view was silently ignored for the workspace, causing the
workspace and its documents to remain without a company.
- Projects created from the list view had their company set at creation, so
their workspace already had a company, and changes were correctly propagated.
This inconsistency made the behavior depend on how the project was created.
After this PR
---
- When a project's company changes, all projects linked to the same workspace
are checked:
- If all linked projects are now in the same company, the workspace company
is updated accordingly.
- If linked projects are in different companies and the workspace has no
company, the workspace is left untouched (accessible to all companies).
- If linked projects are in different companies and the workspace already has
a company, an error is raised (existing behavior, unchanged).
- This makes the behavior consistent regardless of how the project was created
(kanban quick create or list view).
task-4988098Salary offers based on an existing employee version can now use a different PDF template. This gives HR teams more flexibility to tailor offer documents without changing the underlying employee version.
Original PR description
When the offer is based on an employee version (template is the version of the employee), allow to modify `sign_template_id`. Task-6094733
Route planning now checks the number of locations before contacting the map service, avoiding predictable failed requests. Users receive a clearer warning when too many stops are selected, making route planning feedback faster and easier to understand.
Original PR description
This commit adapts the geolocation `fetchRoutes` code to cancel requests with more than 25 coordinates (12 with optimized routing) instead of waiting for an error response from Mapbox. It also adapts the notification warning message in that usecase. task-6358624
Companies can now explicitly choose whether Stripe Issuing for expense cards runs in demo or production mode. This helps teams test cards safely without creating unnecessary fake Stripe accounts in a live setup.
Original PR description
In this PR: - Added a selection field "Mode" for users to explicitly select demo or production mode. - This avoids unnecessary creation of fake Stripe accounts in production. task-5952661
2 changes
Enhancements to existing features
Database KPI reporting now supports showing the status of the Know Your Client procedure. This helps business users quickly monitor 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)
This update adds the new 13.5% Finnish tax rate and its related reporting group to support an upcoming VAT change from 14%. Businesses using Finnish localization can apply and report the new rate correctly when it becomes relevant.
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
5 changes
Enhancements to existing features
French companies without an Enterprise subscription can now complete required identity verification to submit VAT reports, DAS2, and fiscal declarations through Odoo. If verification was already completed, submissions can continue without extra steps; otherwise, users are guided through the KYC process.
Original PR description
When sending a request from odoo to iap, we do a check subscription on all routes. The problem is that user without enterprise cannot send their vat report, das2 or fiscal declaration. For them, we will ask a kyc process. If the KYC has been done already then fine. Otherwise, we ask the user to do it. task-6208829
The Danish localization reports have been updated to match the 2026 minimal reporting requirements. This helps businesses using Danish accounting reports stay aligned with the latest expected balance sheet and profit and loss formats.
Original PR description
This commit adds the updated minimal reports task-5427493
Xendit payments now support PayNow for Singapore, along with SGD and USD currencies. It also adds more accepted card brands, helping businesses offer a wider range of payment options to more 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
This update prepares the French e-invoicing setup to enforce two-factor authentication when the new PDP integration is enabled. It helps ensure the connection meets compliance requirements before users can send invoices through the approved platform.
Original PR description
WIP: waiting for the pdp pr To be compliant with pdp, a 2FA process needs to be setup on the login. task-5486860 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now manually import bills from KSeF whenever they need them, instead of waiting for the scheduled background sync. The new option appears in the list and kanban view menus and refreshes the screen after the import completes, making it easier to get up-to-date documents on demand.
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
3 changes
Enhancements to existing features
Attachment deletion is now much faster for companies using Chilean electronic invoicing and stock documents. This reduces delays during cleanup operations on large databases, improving system responsiveness without changing user workflows.
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
Attachment deletion is now much faster for Chilean electronic invoicing and stock documents. This reduces delays when cleaning up or managing files in databases with large volumes of accounting and inventory records.
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
The Azerbaijani Manat (AZN) now uses its official currency symbol, ₼, instead of the previous symbol. This improves accuracy and consistency in currency display for users who work with Azerbaijani currency.
Original PR description
This commit updates the base currency symbol for the Azerbaijani Manat (AZN) to its official Unicode character '₼'. Related Upgrade PR: https://github.com/odoo/upgrade/pull/10107 Backport of: https://github.com/odoo/odoo/pull/262471 task-6112867