Thursday, August 27, 2026
6 changes · 19.0
Enhancements to existing features
This update adds dedicated UAE overtime work entry types for weekday, night, and overtime day work. It helps payroll teams calculate overtime pay more easily and consistently by using clearer overtime categories in salary rules.
Original PR description
Add UAE overtime work entry types (OVTWD, OVTWDN, OVTOD) to simplify overtime salary rule calculations using `worked_days['<code>'].amount`. Task: 6469393 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes internal mail tests more resilient when running in parallel test environments. It prevents unusual test data from crashing the test suite, helping maintain smoother validation without changing customer-facing behavior.
Original PR description
If the value needs to be serialized for IPC (cough cough pytest-xdist) and a weirdo sets recordsets as message values, the serialization fails and the test suite crashes. Since this is just subtest identification it shouldn't be too much of an issue. Forward-Port-Of: odoo/odoo#284279 Forward-Port-Of: odoo/odoo#284178
The live chat settings now clarify that automatic chat opening only happens on larger screens. This helps teams avoid confusion when testing on phones or small screens, where visitors must tap the chat button manually.
Original PR description
The 'Open automatically' action only triggers the auto popup on larger screens (`ui.isSmall` is checked in `AutopopupService. allowAutoPopup`). On mobile/small viewports, only the chat button is shown and the visitor must tap it manually. The existing help text does not mention this, which could lead to confusion when the auto popup does not trigger during testing on mobile. Update the field's help text to explicitly state that automatic opening is limited to larger screens. opw-6459279 Forward-Port-Of: odoo/odoo#284785
The UAE localization setup now reuses one shared state mapping instead of rebuilding the same information repeatedly. This reduces small initialization overhead and keeps the implementation simpler, with no expected change to user-facing behavior.
Original PR description
This PR optimizes the `l10n_ae` module by eliminating repetitive code and improving performance during module initialization. The UAE state mapping used by `_get_ae_res_company` and…
This PR optimizes the `l10n_ae` module by eliminating repetitive code and improving performance during module initialization. The UAE state mapping used by `_get_ae_res_company` and `_get_ae_account_fiscal_position` was previously defined separately inside each method. As a result, the same dictionary was recreated on every function call, introducing unnecessary code duplication and runtime overhead. This PR extracts the mapping into a reusable module-level `_AE_STATE_MAPPING` constant. The template methods now reference this shared mapping and dynamically construct the corresponding XML IDs, avoiding repeated dictionary allocation and simplifying the implementation. ### Cause In `_get_ae_res_company` and `_get_ae_account_fiscal_position`, the UAE state mapping dictionary was recreated every time the methods were executed. Since these methods can be called repeatedly during chart of accounts template evaluation, this resulted in unnecessary allocations and duplicated code. ### Fix * Extract the UAE state mapping into a module-level `_AE_STATE_MAPPING` constant. * Reuse the shared mapping across template methods. * Dynamically construct the required XML IDs from the mapping. * Remove duplicated dictionary definitions from individual methods. * Reduce unnecessary object allocation during template evaluation. ### Benchmark The state mapping evaluation was benchmarked over 1,000,000 iterations: | Version | Execution Time | | ------- | -------------: | | Before | 0.0841s | | After | 0.0272s | This results in approximately **68% faster execution** for the benchmarked operation.
Deleting accounts is made faster by adding supporting database indexes used during dependency checks. This reduces delays for businesses managing or cleaning up their accounting records, especially in larger databases.
Original PR description
Without these indexes, the foreign key check when deleting an account can take a long time.
Deleting accounts in German reports is now more efficient. The change adds database indexes that help the system confirm whether an account is referenced, reducing delays during account cleanup.
Original PR description
Without these indexes, the foreign key check when deleting an account can take a long time.