Daily updates from Odoo
Monday, December 1, 2025
12 changes · master
Enhancements to existing features
This update significantly improves the speed of auditing large financial reports. By caching report data and line expansions, users avoid lengthy reloads and blank screens when navigating between reports and their details. A warning banner indicates when data is being refreshed in the background.
Original PR description
When auditing large reports, users often navigate back and forth between the report and its underlying move lines. Each time the user returns to the report, it triggers a full reload, resulting in a blank screen and long wait time making auditing slow and painful. This commit caches the report information, and line expansion rpc calls in disk with validity of 90 minutes. RPC calls are being called asynchronously and report is updated if data changed. While data is being refreshed in the background, cached report is displayed along with a warning banner informing the user that report is being loaded. task-5145462
This update enhances tax reports by allowing labels to be associated with cell values. This solves the issue of using codes in multi-column reports, making it easier to understand and reference data directly within the report UI. It improves the clarity and usability of tax reporting.
Original PR description
Tax reports often denote values by codes. While these are easily added to line names in simple reports, this is insufficient for multi-column reports where every cell corresponds to a code needed for reference. This commit introduces a mechanism to attach specific labels to report cells using a reserved expression prefix: `_cell_label_`. When an expression is named with this prefix (e.g`_cell_label_balance`), its value computed using the 'text' engine is treated as a label for the target expression (e.g `balance`). The label is then displayed next to the cell value in report UI. task-5233075
This update enhances Odoo's automation performance by logging the duration of each action. The logging system now uses increasing log levels based on action duration, helping the Odoo Infra team identify and address slow-running automations. Additionally, statistics on automation run times are now included in server dumpstacks.
Original PR description
The Odoo Infra team wants to be able to track down the base automations that slow down the server, but at the same time they don't want to fill logs with silly data. In this work we refactored the logging to log the run duration, the log level increases with the action duration. The longer the action takes to run, the more severe the log level is. Also as per request of the Infra team, we also included some statistics about base automations in the SIGQUIT dumpstack. At the moment the stats are a mapping action_id: accumulated run duration.
This update enhances the reliability of our website generation process by proactively verifying URLs before sending requests to the website scraper. The system now checks URLs on the IAP server to filter out invalid or unauthorized links, preventing wasted resources and potential errors. This ensures a smoother and more efficient website generation experience.
Original PR description
This PR adds the client side verification of an url for the request we make to generate a website using the website scraper. **The goal is to filter all the unwanted requests (invalid urls, banned urls) before launching the scraper process.** The check is done on the IAP server, and retrieved on the DB. The reason is that we don't want to send a request directly from the db [as this was already discussed](https://github.com/odoo/enterprise/pull/92724). Since the IAP server is also the one that will eventually do the scraping request, it also makes more sense that it is the one to check (to avoid the case where odooDB has access to an URL and IAP server does not).
This update enhances the initial guidance provided to users when running payruns within the Odoo Enterprise system. The previous implementation relied heavily on custom JavaScript and lacked robust testing, leading to potential instability. This change introduces a more structured tour to guide users through the payrun process, improving usability and reducing the risk of errors.
Original PR description
Payruns are currently heavily customized with javascript, and we have weak integration tests. So everytime framework makes a change in the ORM, it is likely that it might break. Such as with this PR https://github.com/odoo/odoo/pull/233635, that lead to this fix https://github.com/odoo/enterprise/pull/99771. Task: 5323872
This update ensures Odoo's Swissdec ELM certification is compatible with version 5.3. It includes key enhancements for payroll calculations, specifically related to French-crossborder workers, retirement regulations, and allowance calculations, improving compliance and accuracy.
Original PR description
This Pull request extends the Odoo Swissdec ELM Certification to the minor version 5.3. By doing so we add the following features : - Telework Percentage declaration for French-crossborder comuters - Adapting to AVS21 regulation, where retired employees can refuse their right to retirement - Adding automatic Child and education allowance calculation - Add the calculation of LPP in % - Allowing the specification of custom employer parts for LAAC and IJM Forward-Port-Of: odoo/enterprise#95518
This update enhances the payroll system by providing specific warnings for employees not included in completed pay runs. Instead of a general alert, users now see a message for each missing employee with an option to add a payslip. This improves clarity and streamlines the process of ensuring all employees are accounted for in payroll.
Original PR description
Replace the global warning for missing employees with a per-employee message. Now, employees not included in a confirmed but not validated pay run show a warning with an option to add a payslip. The message disappears when the pay run is closed. task-5156963.
This pull request focuses on improving the Equity app within Odoo Enterprise. It includes enhanced user interface elements, expanded unit testing for UBO calculations, and resolutions for previously identified issues. These changes aim to streamline the equity valuation process and improve data accuracy.
Original PR description
1. Unit tests for UBO 2. UI/UX improvements 3. Fixes for detected issues task-5078906
This update prepares Odoo to store sales achievement data for faster reporting. Previously, generating reports took a significant amount of time, especially with large sales volumes. By allowing the system to 'materialize' this data, performance will be noticeably improved for sales commission reports.
Original PR description
This commits aims to ease the possibility to materialize the achievements. The achievement table was a report built on the fly. Several commits were introduced to speed up the performances but on big systems with thousands of invoices, reading the achievements takes a few seconds. On big databases, it may be needed to materialized the achievement view to speed up reads. This commit reorganize the code to ease the materialization in a simple override commit. task-5170644 Forward-Port-Of: odoo/enterprise#97268
This update makes the employee benefits and personal information sections more relevant by showing only data applicable to the selected company’s country. Previously, all country-specific fields were displayed, leading to potentially confusing information. This change ensures users see the most accurate and useful data for each organization.
Original PR description
This change improves data relevance and user experience by making the Benefits and Personal Info sections context-aware. Previously, all country-specific fields and benefits were displayed regardless of the selected company or salary structure corresponding country. Now, the Benefits and Personal Info list views display only records related to the selected company’s country, ensuring users see data applicable to that organization’s jurisdiction. In the Benefits form view, the Related Fields section dynamically shows only fields relevant to the selected Salary Structure’s country, preventing the display of irrelevant or non-applicable country fields. task-5152545 (https://www.odoo.com/odoo/my-tasks/5152545)
This update enhances the bank reconciliation process by providing a clearer display of transaction details, statement information, and improved usability. Key changes include a streamlined interface, enhanced communication features, and expanded functionality for handling longer payment references, ultimately improving efficiency and accuracy.
Original PR description
See commits' description Forward-Port-Of: odoo/enterprise#99529
This update automatically notifies users when invoices are canceled due to DGI rejections, preventing unnoticed cancellations and ensuring invoices are corrected promptly. It also allows users to manually update invoice statuses if DGI changes its acceptance, resolving inconsistencies and maintaining accurate invoice records.
Original PR description
Added 3 improvements to the process of updating the state of an invoice in Odoo, according to the state in DGI: **For invoices that have been rejected by DGI:** - Added logic to automatically notify…
Added 3 improvements to the process of updating the state of an invoice in Odoo, according to the state in DGI: **For invoices that have been rejected by DGI:** - Added logic to automatically notify relevant users when an electronic invoice (CFE) is rejected by the DGI and, as a result, canceled in the system. The goal is to ensure that there is always someone responsible who is informed to correct and resend the receipt. - Added logs in the terminal to make the debug easier in case we want to identify rejected invoices. **Particular case of an invoice that had been rejected by DGI but the user somehow fixes it and then DGI accepts it:** - Added logic to verify both DGI state and Invoice state and adjust it accordingly when updating invoice DGI status. - Make 'Update DGI status' button always visible to be able to adjust invoices states. **== Context of the Problem ==** Previously, when Odoo detected that a CFE had been rejected by the DGI, the system proceeded to cancel the invoice automatically. However, this process was carried out silently, without generating any notification. This could mean that if no user or salesperson was actively monitoring the status of the receipts, the cancellation would go unnoticed, resulting in invoices that were never corrected or reissued. For the case of a previously rejected and then accepted invoice, we always thought that 'Rejected' state in DGI was a definite state and could not suffer any change. But recently it has been a case that this state changed, creating inconsistencies in Odoo invoices states as they appear as cancelled. With these changes, the user can adjust the invoices state by clicking 'Update DGI status' button. **== Automatic Notification Logic ==** With the new functionality, every time an invoice is automatically canceled due to a DGI rejection, the system posts a message in the document chatter to report the situation. The logic for determining who is notified is as follows: _Scenario 1: Invoice with Internal Followers_ - If the canceled invoice has at least one internal follower (an Odoo user), the system will perform the following actions: - It will post a message in the invoice chatter. - It will tag (@) all internal followers to notify them directly. _Scenario 2: Invoice without Internal Followers_ - If the invoice does not have any internal followers, the system will search for a more general but relevant audience to ensure that the notification is addressed: - It will post a message in the invoice chat. - It will tag (@) all users who belong to the “Accounting Manager” permission group (technical name: group_account_manager). Task ODOO: #[1362](https://latam-localizations.odoo.com/web?debug=1#id=1362&cids=1&menu_id=88&action=131&active_id=16&model=project.task&view_type=form) Task ADHOC: #[54799](https://www.adhoc.inc/odoo//project.task/54799) Forward-Port-Of: odoo/enterprise#100523 Forward-Port-Of: odoo/enterprise#94502