Daily updates from Odoo
Thursday, December 18, 2025
20 changes
16 changes
Enhancements to existing features
This update enhances the depreciation schedule report by utilizing a new, more efficient engine. Previously, the report generated dynamic lines, which has now been replaced with pre-defined variants, streamlining the report generation process and improving performance.
Original PR description
This PR changes the depreciation schedule report to use custom engine instead of using dynamic lines. The group by custom filter is removed and instead the different grouped reports are variants of the depreciation schedule. task-4900446
This update enhances the performance of reports, particularly those with large datasets, by introducing a 'Load More' mechanism. It addresses previous issues with slow loading times and memory usage when generating detailed reports, now allowing users to load data in batches as needed.
Original PR description
======== CONTEXT ======== When unfolding a line of a report (typically for a groupby), it is possible many lines need to be rendered. When this number grows too big, it can create performance issues…
======== CONTEXT ========
When unfolding a line of a report (typically for a groupby), it is possible many lines need to be rendered. When this number grows too big, it can create performance issues (too much time and memory server-side ; too many lines to render in the browser client-side).
To alleviate those issues, two mechanisms had been implemented in previous versions of Odoo:
=> "Load more" (enabled via the load_more_limit field of account.report)
This feature was used by all report engines (so, it does not work for reports using a _dynamic_lines_generator), to essentially run a SQL LIMIT when computing the report. When the limit was reached, a limited number of sublines was shown, with an additional "load more" line at the end, allowing loading a new batch of them when clicked (possibly with another "load more" line for a next batch).
LIMITS:
- The "load more" line had no amount whatsoever; impossible to know what it contains with expanding it
- Navigation was poor, with the multiple successive "load more" lines
- The need to handle LIMIT and OFFSET in engines required additional complexity
- In case of multi-level groupby ("account_id,id", for example), only the terminal groupby
used the limit. If any intermediate groupby returned too many lines, we still displayed them all
=> Prefix groups (enabled via the prefix_groups_threshold field of account.report
Prefix groups worked on both engines and some reports with dynamic lines (typically the Partner Ledger, for which they were originally implemented). They basically always generated all the lines (without any kind of limit) server-side, before grouping them under unfoldable summary lines, that would do that recursively when unfolded, until the number of lines to show became manageable.
LIMITS:
- All lines were always generated before trimming them, so that means we still used a lot of memory. Also
time-wise, this was not optimal, as many calls to dict's get() function would be run for each line
(we had cases where it took a few seconds, just for that).
- Prefix were generated from line names ; it didn't work well when some records' display name did not
match their name in db (to compute the domain when expanding prefix lines)
- Depending on the content of db and field used in the line names, too many breaking corner cases were possible
======== NEW APPROACH ========
Prefix groups entirely disappear. They were still used by the Partner Ledger and Depreciation Schedule, which have just been rewritten (in different commit merged together with this one) to use custom engines instead, so that they can benefit from the "load more" instead.
"Load more" is now fully rewritten, and works very differently than before. It's essentially a hybrid approach mixing both previous features. Here are the key changes:
1) We don't use LIMIT and OFFSET at all in the engines anymore (both parameters disappear from engine functions). Instead, we generate all results and trim them, but we do that earlier than what prefix groups used to do. Here, we act on the engine's results, before generating the lines.
2) The "load more" line now displays how many sublines it summarizes, and sums the appropriate columns of those lines in order to display a relevant value in the report and improve clarity for the user.
3) "load more" now also works on intermediate levels, when using multi-level groupby. Reports wanting to modify this behavior for certain levels can do that through a custom handler, shadowing _report_expand_unfoldable_line_with_groupby, like the General Ledger and Trial balance do.
======== ADDITIONAL BENEFITS ========
This refactoring also paves the way for future possible improvements, because of the removal of offset and limit parameters from the engines:
- batching of groupby computations in SQL
- support groupby on aggregations
We'll work on those in the future.
task-4346024This update enhances asset reporting within Odoo Enterprise by incorporating data from the Enterprise-specific asset models. This change expands the reporting capabilities, providing a more complete view of asset information for financial analysis and management. The update maintains compatibility with the existing Community version.
Original PR description
Override the Community asset display helper to include logic based on `account.asset_model_ids`. This extends the base behavior while keeping the Community implementation independent from Enterprise-specific fields.
This update clarifies the purpose of the station image within the Frontdesk settings. A tooltip has been added to appear when hovering over the image, providing immediate explanation and enhancing user understanding. This improves the overall user experience for Frontdesk users.
Original PR description
When opening the Station Settings, the image purpose was not clear. A tooltip is now shown on image hover to explain its usage and improve user understanding.
This update enhances the Gantt chart's card closing functionality by moving the close button to a sidebar. This change allows for more intuitive and efficient card closure within the Gantt view, improving user workflow.
Original PR description
In this commit, we move the close button of popover (that was below on the right) to put a side bar on the left. All the sidebar closes the card in gantt view.
This update introduces a new filter in the helpdesk system, allowing users to quickly identify tickets that haven't received a response. This improves efficiency by letting support teams prioritize tickets awaiting replies from customers or internal users. The filter focuses on tickets with the last message from a public or internal customer.
Original PR description
Currently, helpdesk users cannot quickly filter tickets that are still awaiting a response. This commit adds an 'Unanswered' filter to display tickets where: - The last message is from a public user, or from an internal user who is the ticket's customer. Note: ------ I haven’t used the **oldest_unanswered_customer_message_date** field in the filter because a value is set in oldest_unanswered_customer_message_date even when customer is empty. Also, when a helpdesk user is set as the customer on a ticket and posts a message, the oldest_unanswered_customer_message_date does not get updated. task-5138678
This update simplifies the way payslip reporting displays key information. The changes remove redundant data fields and restrict rate percentages to two decimal places, making the reports easier to read and understand for payroll and finance teams. This enhances the overall user experience for reporting on payroll data.
Original PR description
- Removing the fixed amount and percentage measures as they are redundant data as fixed_amount value is used to set the amount and the percentage values is used to set the rate - Restricting the rate percentage to 2 decimals in order to improve readability. Task: 5407645
This update streamlines the stage forms within the Helpdesk and Referral modules by unifying their layouts, reorganizing fields, and adding clear placeholders. This improves usability and clarity for users managing support tickets and recruitment processes.
Original PR description
Improve the stage form views by unifying every views, moving fields, hiding sequence field and adding placeholders. Task-5186979
This update simplifies the process of tracking changes within custom fields in Odoo Studio. Users can now easily enable or disable chatter tracking directly when creating new fields, eliminating the previous manual step. This enhancement improves efficiency and provides better visibility into field updates.
Original PR description
This commit introduces a `Track in chatter` option in Studio’s field properties sidebar. The option allows users to enable or disable chatter tracking when creating new custom fields directly from Studio. The feature is available in form views for most field types, excluding One2many, Binary, and Image fields. previously user have to open field's properties and manually set the value to enable order tracking. task-5173295
This update simplifies the survey process by renaming the 'Analyze Results' button to 'Export'. This change provides a clearer and more intuitive user experience for exporting survey data from the form and front-end views. The change aligns with best practices for user interface clarity.
Original PR description
This commit renames the `Analyze results` button to `Export` in the the survey form view and the survey front end view. Task: [5424198](https://www.odoo.com/web#id=5424198&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update adds a visual indicator ('is typing') to group chats within the discuss sidebar, helping users quickly see if a conversation is still active. It also removes redundant status indicators, streamlining the chat experience. This improves usability and provides clearer information about ongoing group discussions.
Original PR description
This commit adds "is typing" icon on group chats in discuss sidebar and chat bubble. This helps seeing that a group chat is still active after seeing a recent message and jumping to another conversation in the mean time. This commit also removes showing of is typing in IM status of discuss app header and chat window header, as this is redundant with "is typing" close to composer. https://github.com/odoo/odoo/pull/234715 Task-5402098
This update streamlines the ESG app by removing the manual commuting emissions wizard. Now, when the 'Employee Commuting' factor is selected, the quantity is automatically calculated based on chosen dates, simplifying the reporting process. A conflict warning has also been moved to the form view for improved clarity.
Original PR description
In order to reduce the amount of JS customizations in the ESG app, this PR removes the wizard to generate commuting emissions, that was previously accessible from the commuting report. Instead, we now have some special behaviors when creating/editing an emission with the "Employee Commuting" emission factor. When it is selected, the quantity will be automatically computed from the chosen dates, and some fields become non editable, like the unit. The conflicting emissions warning is also moved to the form view. Task-5138598
This update enhances the user experience when managing salary rules by changing how sections are searched. Instead of a pop-up window, clicking 'Search more...' now opens the full list of salary rule sections directly in the current window. This simplifies the process of adding and managing sections within salary rules.
Original PR description
Clicking "Search more..." on the input_section field in salary rules now opens the full hr.salary.rule.section list view in the current window instead of a dialog popup. Additionally, the struct_ids field now uses the many2many_tags widget. Task ID: 5068764
This update adjusts Odoo's document layout design based on recent community contributions. The system now supports new layout options like centered and dual layouts, while removing older, boxed layouts. This change improves the flexibility and visual appearance of reports and documents within Odoo.
Original PR description
*: web_studio, pos_blackbox_be, l10n_co_dian Adapt to the changes in community PR which removes `external_layout_bold`, `external_layout_boxed`, `external_layout_striped` and adds `external_layout_center`, `external_layout_dual`, `external_layout_lines` task-4916379 Requires: https://github.com/odoo/odoo/pull/237109, https://github.com/odoo/upgrade/pull/8916
This update enhances the website's interactive tour feature across several sales and subscription modules. The changes involve adopting new, standardized tour utilities, leading to a more consistent and streamlined user experience for customers navigating the website. This improves usability and guides users more effectively through key features.
This update adds a new test specifically for PFA (Pension Funds Agency) calculations related to maternity leaves within the Belgian HR payroll module. This ensures accurate processing of these payments, aligning with local regulations and improving the reliability of the system for our Belgian clients. The change is considered an important improvement.
Original PR description
Forward-Port-Of: odoo/enterprise#102344
3 changes
Enhancements to existing features
This update enhances the delivery of Guatemalan electronic invoices to customers by automatically attaching the XML file alongside the PDF. Previously, only the PDF was sent, but now customers receive both files directly in their email, improving transparency and convenience. The XML file naming convention has also been standardized.
Original PR description
Purpose: In the Guatemalan localization, when an electronic invoice is created, the email template to the customer already contains the PDF version of the DTE. However, the XML file, generated and…
Purpose: In the Guatemalan localization, when an electronic invoice is created, the email template to the customer already contains the PDF version of the DTE. However, the XML file, generated and sent to the SAT through Infile, is not attached to that email. Even though the SAT and Infile deliver the XML to the customer, it is more convenient and transparent if Odoo includes it directly in the outgoing invoice template email, so the customer receives both files in one place. Before this commit:- - Only PDF version is attached by default in customer email for e-invoices. - Name of edi document is prefixed with `Demo` if company is in demo environment (check parent company's environment in case of child company) (e.g. DEMO_certificate_INV_2025_00001.xml) and prefixed with `SAT` if company is in testing or production environment(e.g. SAT_certificate_INV_2025_00001.xml). After this commit:- - XML version is also attached by default along with PDF in customer email for e-invoices. - Name of edi document is always prefixed with `SAT`. task-5224521 Forward-Port-Of: odoo/enterprise#98978
This update expands how SLAs are configured for helpdesk tickets, allowing other Odoo modules to adjust the criteria used to determine SLA deadlines. Previously, this was limited, but now it's enabled, providing greater flexibility and control over SLA management within the helpdesk system. This improves the accuracy and responsiveness of service level agreements.
Original PR description
Allow other modules to modify the _sla_find domain when adding SLAs to helpdesk tickets. This is already the case for extra and false domains, while the main domain is hardcoded up to this commit. Forward-Port-Of: odoo/enterprise#97501
This pull request enhances the visual appearance and usability of the account reports module. Specifically, it updates the selection badges, improves the styling of review states, and adds functionality to redirect users to relevant check views based on return status. These changes aim to provide a clearer and more intuitive reporting experience.
Original PR description
task-5155703
1 change
Enhancements to existing features
This update enhances the Peppol integration by allowing users to attach multiple documents. These documents are now embedded within the XML format using the <AdditionalDocumentReference> tag, streamlining the exchange of information for Peppol transactions. This improves efficiency and compliance for Peppol-related processes.
Original PR description
[IMP] account: multiple embed files peppol Backport of 4170f0e889b8aa0557b1ae4e456f053407570832 This commit allows user to send multiple attachments through peppol. The attachments will be embedded into the xml under the <AdditionalDocumentReference> tag task-5103539 closes odoo/odoo#234339