With this commit, list data is loaded using `web_search_read` instead of `search_read`. The goal is to fetch the currency (symbol, decimal places, etc.) of monetary fields in a single request, instead of 2 RPCs. Pros: - less code - one evaluation saved - one network request saved - easier future refactoring (see below) Cons: - overhead of data transferred over network (from 4.5MB to 6.5MB, unzipped and from 711kB to 725kB gzipped to fetch a list of 20K crm leads). Before this commit, here is what it looked like: 1. the list data is fetch (with the currency_field) 2. the cells are evaluated with the new data 3. we realize we want to format a currency amount. We already have the currency name but not the symbol, etc. So we fetch the currency data 4. evaluate the cells again with the new currency format Now: 1. fetch the list data with everything we need for the currency 2. evaluate the cells This commit also serves another goal for a future refactoring: in the hope of avoiding throwing "loading errors", I'd like to have an easy way to know if a data source is fully loaded or not (the data and the format). With this commit, everything is centralized in the list data source with a single RPC. The goal is therefore achieved with this commit. closes odoo/odoo#153434 Task: 3730232 Related: odoo/enterprise#56253 Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
15 lines
343 B
JavaScript
15 lines
343 B
JavaScript
/** @odoo-module */
|
|
|
|
import { registry } from "@web/core/registry";
|
|
|
|
registry
|
|
.category("mock_server")
|
|
.add("res.currency/get_company_currency_for_spreadsheet", function (route, args) {
|
|
return {
|
|
code: "EUR",
|
|
symbol: "€",
|
|
position: "after",
|
|
decimalPlaces: 2,
|
|
};
|
|
});
|