Tuesday, November 28, 2023
3 changes · 17.0
Enhancements to existing features
This update improves the speed of opening Discuss and the messaging menu, especially for users with many failed messages, pinned conversations, or large group chats. By reducing unnecessary background recalculations, initial loading time in a medium test database dropped from about 12 seconds to about 1 second.
Original PR description
[PERF] mail: faster load of discuss at init messaging - Messaging menu was slow when there are many mail failures - Discuss app is slow whenever there are many pinned threads - Initial page load was…
[PERF] mail: faster load of discuss at init messaging - Messaging menu was slow when there are many mail failures - Discuss app is slow whenever there are many pinned threads - Initial page load was slow when pinned threads were group chats with hundreds of members All these performance issue come from aggressively eager call to reactive callbacks, which `onChange()` and `compute()` were relying on. This commits fixes the performance issue with: - Update cycle in `@mail/record`, which calls eager computed fields and onChange at the end of an update transaction in discuss models, so that computation is called only once rather than many times (while only the later value matter) - Add support for lazy computed fields (which they are by default), so that computed fields are only computed when needed. - Add support for sorted many fields, which also follow the update cycle and eager/lazy mode of field. This makes sorting operation on many fields efficient and preserves eventual correctness of expected order of items in these relational fields. With module `contacts` installed and populate `--size="medium"`, init_messaging and mail_failures took 12sec. for Mitchell Admin. With this commit, this has been reduced to 1sec. https://github.com/odoo/enterprise/pull/51410
The Danish localization is updated to support reporting based on accounting tags rather than fixed account codes. This helps companies align existing charts of accounts with Danish Bookkeeping Act requirements and improves compliance for balance sheet and profit-and-loss reporting.
Original PR description
To be approved for the bookkeeping act, we need to generate reports based on tags instead of account codes. It allows users to link their existing CoA to the one we decide. To do it, they can add the right tags on their own accounts. This commit adds necessary tags to handle auto generated accounts (like suspense account) and assigns these tags to the right account. task-id: 3593634 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update significantly improves the speed of loading the messaging menu and discussion app in Odoo. The system was slow when handling many mail failures, pinned conversations, or group chats with large member lists. By optimizing how the system processes updates and calculations, initial page load time has been reduced from 12 seconds to 1 second, making the messaging experience much faster for users.
Original PR description
[PERF] mail: faster load of discuss at init messaging - Messaging menu was slow when there are many mail failures - Discuss app is slow whenever there are many pinned threads - Initial page load was…
[PERF] mail: faster load of discuss at init messaging - Messaging menu was slow when there are many mail failures - Discuss app is slow whenever there are many pinned threads - Initial page load was slow when pinned threads were group chats with hundreds of members All these performance issue come from aggressively eager call to reactive callbacks, which `onChange()` and `compute()` were relying on. This commits fixes the performance issue with: - Update cycle in `@mail/record`, which calls eager computed fields and onChange at the end of an update transaction in discuss models, so that computation is called only once rather than many times (while only the later value matter) - Add support for lazy computed fields (which they are by default), so that computed fields are only computed when needed. - Add support for sorted many fields, which also follow the update cycle and eager/lazy mode of field. This makes sorting operation on many fields efficient and preserves eventual correctness of expected order of items in these relational fields. With module `contacts` installed and populate `--size="medium"`, init_messaging and mail_failures took 12sec. for Mitchell Admin. With this commit, this has been reduced to 1sec. https://github.com/odoo/odoo/pull/143382