Tuesday, July 29, 2025
11 changes · saas-18.4
Enhancements to existing features
An obsolete internal flag used during the website builder transition has been removed. This simplifies the website code now that the new builder is fully in place, with no expected change for end users.
Original PR description
Previously, in the [html_builder refactoring] `useMysterious` tag was used to separate 2 instances of the website: the old and the new one. Now, we do not need this flag anymore as the new website builder has already been merged and this flag isn't used anywhere anyway. Related to task-4367641 [the html_builder refactoring]: https://github.com/odoo/odoo/commit/9fe45e2b7ddb
Website image hover effects are now supported in Odoo’s new HTML builder, keeping the editing experience consistent with the updated website tools. This helps users continue applying visual image effects while benefiting from the newer builder interface.
Original PR description
Convert the previous image hover effect to the new html builder. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Gelato now depends on the basic sales module instead of the full Sales Management app. This lets e-commerce users enable Gelato without installing an extra paid app, helping free-plan users avoid an unintended plan upgrade.
Original PR description
By changing the dependence from 'sale_management' to 'sale' module, Gelato can be installed on e-commerce without installing Sale app. Users on free plan won't be moved to paid plan after enabling Gelato module as no second app will be installed.
Task searches by name no longer include task IDs, avoiding a slow database search pattern on large task lists. This improves responsiveness for users working with many project tasks, especially during peak usage.
Original PR description
### Issue Slowness when searching for tasks in a database containing ~430K `project.task` records. ### Analysis When searching for tasks by name, the `id` field is passed to the filter domain. This results in a suboptimal query plan, as the `id` field is cast as `text` in an `OR` leaf: ` [...] AND ((unaccent((name)::text) ~~* '%test%'::text) OR ((id)::text ~~* '%test%'::text)) [...]` Furthermore, since refactoring the web routes, the necessity of searching for an `id` in the search form has greatly diminished. ### Benchmarks Benchmarking the generated query using `\timing` in `psql`: | Number of records | Before | After | | -- | -- | -- | | 430K | 2.3s | 3ms | During high-usage periods, the query took up to ~10.8 seconds. #### References opw-4845258 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219959 Forward-Port-Of: odoo/odoo#219901
The Discuss test suite now skips peer-to-peer call checks when no network is available. This avoids false failures in automated testing environments and helps keep development and release validation more reliable.
Original PR description
This commit adds a skip to peerToPeer tests for when there is no network as the webRTC API needs to have at least a local network to generate ICE candidates. Forward-Port-Of: odoo/odoo#220093 Forward-Port-Of: odoo/odoo#219587
The EMV QR Configuration fields are now shown in their own EMV QR Settings tab instead of being duplicated across existing bank-related tabs. This makes bank account setup clearer and reduces confusion for users managing QR payment information.
Original PR description
Before this PR: - `EMV QR Configuration` fields appears on both `Bank Information` tab and `Note` tab. After this PR: - `EMV QR Configuration` fields are moved to a separate `EMV QR Settings` tab to avoid duplication. Task : 4936165 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218969
The Knowledge editor now restores extra bottom spacing that was lost after the editor migration. This makes longer articles easier to edit by allowing users to scroll the end of the content into a more comfortable reading and writing position.
Original PR description
With version 18.1, we migrated from legacy HTML editor to the new one. As part of this upgrade, we revised the templates and reworked the wysiwyg helper. During the migration, several CSS classes were altered or removed. One issue that emerged is that the CSS rules intended to add bottom padding to the editor area are still present in the stylesheet but no longer apply to any element. These rules were especially helpful when working with long-form content, as they allowed users to scroll further and bring the end of the text closer to the center of the screen - improving readability and enhancing the editing experience. To fix this, we'll update the relevant CSS selector to ensure the padding is correctly applied to the editable area. See: odoo/enterprise#67083 Task-4636494 Forward-Port-Of: odoo/enterprise#90770 Forward-Port-Of: odoo/enterprise#86223
VoIP calls now clear their session consistently when the call status changes to ended. This reduces duplicated handling in different call-ending paths and helps keep call data tidy and reliable.
Original PR description
Instead of clean session in every function that can end a call, it's better that we do it when call model state is changed. Forward-Port-Of: odoo/enterprise#91188
Tax period locks now also cover related closing entries and tax returns, preventing them from being reset while the period is locked. This helps preserve compliance controls by requiring users to manually adjust lock dates before making changes to locked returns.
Original PR description
Before the closing move was not included in the tax lock date and could be reset while being locked. Now we also lock the closing move. Same for the return, we lock the return if the period is locked. Before, when we wanted to reset the return, it would automatically revert the lock date. Now user should do it manually otherwise he will not be able to reset the return. task-4818752 Forward-Port-Of: odoo/enterprise#86305
Businesses in Türkiye can now export the General Ledger in the required e-Ledger CSV format for any selected period. The file is automatically packaged as a ZIP archive to support submission requirements from the Türkiye Revenue Administration.
Original PR description
This PR implements the necessary functionality for Türkiye’s e-Ledger reporting, as mandated by Türkiye law (Law No: 15570). Taxpayers that switched to e-Invoice/e-Archive are also required to submit their General Ledger (GL) in the e-Ledger format. Summary of the change This update enhances the existing Türkiye General Ledger report in the `l10n_tr_reports` module with the following features: - Adds the ability for users to generate the General Ledger as a CSV file, formatted according to the Türkiye e-Ledger requirements. - Allows export for any selected period, including relevant and filtered fields. - The generated CSV file is automatically compressed into a ZIP archive to comply with the GIB (Türkiye Revenue Administration) guidelines for file delivery. Task-4270136 Forward-Port-Of: odoo/enterprise#91054 Forward-Port-Of: odoo/enterprise#86592
The accounting dashboard now prevents users from clicking “Fetch Transactions” repeatedly for the same bank. This helps avoid duplicate requests to banking providers and reduces the chance of synchronization errors.
Original PR description
The button `Fetch Transactions` shown on a bank in the accounting dashboard can possibly be clicked multiple times in a row by a user. This would cause several calls to the provider causing potential errors. This commit prevents the user from being able to fetch transactions multiple times by removing this button once clicked. task-4900188 Forward-Port-Of: odoo/enterprise#89127