Wednesday, October 23, 2024
6 changes · master
Enhancements to existing features
Accounting reports can now support custom grouping labels that are not tied to a standard business record. This helps teams create clearer specialized report lines, such as opening balance rows, while still allowing relevant drill-down actions where needed.
Original PR description
This commit adds the possibility to set string grouping keys in custom engines. These groupings won't be linked to a model and requires custom handling via a post_processor. Another feature added is a custom caret_builder that enable us to add custom caret identifiers to a specific grouping_key
This update makes it simpler to customize accounting report screens by letting custom components reuse the original layout automatically. It reduces the setup needed for tailored reporting views, helping implementations adapt reports with less duplication and maintenance.
Original PR description
This improvement allows to use a custom component override without defining a template. The custom component will take the template of the component it extends by default.
This update replaces an older way of switching records between active and archived states with the newer standard approach across several Odoo apps. The change helps keep behavior consistent and easier to maintain, with minimal direct impact for everyday users.
Original PR description
odoo/odoo#183691 odoo/documentation#11261 task-3983933
Appointment setup screens are easier to use with clearer field labels for questions and answers. Opening linked resources in a dialog helps users review or edit them without leaving the appointment form.
Original PR description
This commit makes the following changes to the appointment.type form views - The form view will open as a dialog when we click on the resources filled in the resource_ids field. - Change the label of `question_required ` and `answer_ids` fields. Task-4256018
Large spreadsheets now load much faster by avoiding unnecessary server-side processing of already prepared data. This reduces waiting time for users opening spreadsheet documents and lowers server resource usage, especially for very large files.
Original PR description
Server-side load time for a 16.7Mb spreadsheet: **before: 606ms** (`join_spreadsheet_session`) **after: 83ms** (-86%!) (new `/spreadsheet/data/<...>` controller) Previously,…
Server-side load time for a 16.7Mb spreadsheet: **before: 606ms** (`join_spreadsheet_session`) **after: 83ms** (-86%!) (new `/spreadsheet/data/<...>` controller) Previously, `join_spreadsheet_session` returned a combination of: - The full spreadsheet snapshot (JSON file on the filestore) - Pending revision data (also serialized JSON, stored in a Char field) - Additional metadata These were combined into a Python dict and re-serialized into JSON for the response. This process is inefficient as it involved unnecessary parsing and re-serialization of already serialized JSON data. With this commit, we handcraft the json response body, avoiding the need for parsing and re-serializing large json objects, resulting in significant performance improvements in both CPU and memory. To have control of the response body, we now have to use an http controller instead of an RPC method. We could also have sent the raw/serialized data from `join_spreadsheet_session` but then it would be serialized json over json which has several drawbacks: - reduces client-side debuggability - introduce a lot of additional escape characters (e.g. `\"`) - the client would need to explicitly parse the nested json With this solution, the client receives a clean, valid json content type Alternative idea: we could stream the snapshot file directly from the file store to be even more efficient. But then we would need to load the additional metadata and revisions with another http request. As those two requests would not be executed as part of the same transaction, it would come with its own share of issues.
The Field Service “My Tasks” kanban view now shows task dates in the same format as other task menus, such as “All Tasks.” This makes scheduling information easier to compare and reduces confusion for users switching between views.
Original PR description
Currently, the date of tasks in kanban view of 'My Tasks' menu is only showing the start date of the task. But we would like to use the same display as in other menus (e.g. 'All Tasks') to remain consistent. task-4193529