Thursday, May 15, 2025
5 changes · saas-18.3
Enhancements to existing features
The project kanban view now loads much faster by optimizing how project tasks, favorites, and ratings are looked up. This improves day-to-day navigation for users managing projects, with benchmarked loading time reduced from 1.1 seconds to about 300 milliseconds.
Original PR description
Description ----------- The project task's `is_template` field was previously indexed for `TRUE` values, making lookups for template tasks efficient due to their small number. However, filtering for…
Description
-----------
The project task's `is_template` field was previously indexed for `TRUE` values, making lookups for template tasks efficient due to their small number. However, filtering for non-template tasks ( `is_template = FALSE`) became slow since it requires scanning a large number of records. This impacted performance in domains like `__compute_task_count`. This commit optimizes the query by first fetching template tasks and filtering them out in Python rather than relying on database-level filtering.
Additionally, this commit adds a new field
`res.users.favorite_project_ids` as the inverse relation of `project.project.favorite_user_ids`. This improves `_compute_is_favorite` performance by checking if a project exists in a user's favorites rather than searching through all users who favorited a project. The latter approach was slower due to the larger search space of user-project relationships.
Finally, new indexes are added to `rating.rating` for consumed ratings to optimize `_compute_rating_percentage_satisfaction`. Since most rating lookups include the condition `('consumed', '=', True)`, these indexes will improve query performance across the rating system.
Benchmark
----------
On odoo.com, opening the kanban view of projects, with six favorite projects (typical setup):
| Before | After | Speed up |
|--------|-------|----------|
| 1.1s | 300ms | 3.7x |
Reference
---------
task-4794928
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prDownloading QR codes for POS self-ordering now also includes an Excel file with shortened ordering links for every table in the selected POS setup. This makes it easier for staff to access, share, or manage table-specific self-order URLs alongside the QR codes.
Original PR description
When the user clicks "Download QR Codes", an XLSX file is now included in the ZIP archive. This file contains the shortened self-ordering URLs for all tables in the selected POS configuration. Task-4771791 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
Tax selections now show clearer, consistent labels such as scope, company, and country details across accounting, product, invoice, and localization workflows. This reduces confusion when choosing taxes and removes older custom display logic that was no longer needed.
Original PR description
TLDR: we had several custom components to display the tax scope, we don't need them anymore. With display_names now supporting markdown, we can remove several components. - many2x_tax_tags was using…
TLDR: we had several custom components to display the tax scope, we don't need them anymore. With display_names now supporting markdown, we can remove several components. - many2x_tax_tags was using search_read instead of name search to fetch the tax scope. This removed several display name features in the many2one dropdown. The tags would display several additional fields: the company name and foreign tax country code (on product form) - it made use of the tax autocomplete component to render the scope - but this was no longer working. - The many2one tax tags did the same as the tax autocomplete but instead used the `specification` feature to retrieve additional fields. Additional problems: - displaying the company in the tax tag was only done for the product template, however this was lost when the context params changed according to the URL. With markdown we can replace all of them by simply improving `_compute_display_name`. so the opportunity is takes to clean up several uses of the tax field. - product form view should display the name, scope, company (multi company mode), foreign country code (for foreign taxes, not displayed in the dropdown) - account form view: name, type, company (multi company mode), country code (not in dropdown) - views that generate entries, for example bank recon & manual recon wizard: name, type, country code (not in dropdown) - invoices and bills: name, scope, country code (not in dropdown) For now, scope is displayed everywhere (in the dropdown), but may not be necessary (see account form and recon) No Task
Bank reconciliation users can now access a broader batch payment search when the initial suggestions are not enough. The popover also shows only five batch payments at a time, keeping the selection list clearer and easier to scan.
Original PR description
Adding the search more logic on batch payment and limiting the display to 5 batch in the popover no task id
This update completes recent changes to activities and addresses issues that caused crashes or made the workflow harder to use. It should make activity handling in Odoo more reliable and smoother for everyday users.
Original PR description
task-4592571 changed up the way activities function, but not everything was completed before the end of the freeze; in addition, it included a number of bugs/crashes/usage inconveniences. This commit adds: This commit also fixes: task-4747156