Friday, October 24, 2025
4 changes · 19.0
Enhancements to existing features
This improves the speed of switching a product category between manual and real-time inventory valuation, especially for categories with very large numbers of product variants. In the reported case, a process that previously timed out after more than 15 minutes completed in about 18 seconds, reducing delays for inventory and accounting operations.
Original PR description
Changing a product.category's valuation from manual to real-time or real-time to manual does mainly two things. The first one is emptying the current stock and valuation. The second is to replenish…
Changing a product.category's valuation from manual to real-time or real-time to manual does mainly two things. The first one is emptying the current stock and valuation. The second is to replenish the stock according to the new valuation. This process can be heavy when the number of product.products related to the active product.category is big. This can happen when product.attributes are set to "Creation: Instantly" for instance. This commit aims at improving the overall speed of this change in some cases. A first optimization is to use `product_tmpl_id` to retrieve the `product_variant_ids`. When there are a lot of products, it's faster to explicitely use the delegated field `product_tmpl_id`. This avoids lots of calls to `__getitem`/`__setitem__` in `_compute_related`. The downside of doing this is that subsequent calls to `self.product_variant_ids` are gonna raise a CacheMiss. So we have to explicitely use `product_tmpl_id.product_variant_ids` every time. We argue that it's not really an issue here as retrieving the variant_ids from a product.product itself is not that frequent in the codebase. A second optimization is to avoid calling `product.qty_available` in `_compute_value_svl` in case `avg_cost = 0`. With an avg_cost of 0, the total_value is always going to be 0. So there's no point in calling the heavy compute method `_compute_quantities` to retrieve `qty_available` here. #### speedup In a database with 228 000 product.products linked to the same product.category, the time to switch the category valuation from manual to real-time: +15min (timeout) -> 18s --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231206
Hong Kong payroll declaration forms now include chatter, allowing users to track discussions and activity directly on the forms. This improves collaboration and record visibility for teams handling payroll declarations.
Original PR description
Based on HK feedback, chatter is added on their declaration forms task:5067386
The German tax report has been reworked after the balance column was removed, ensuring the report logic and tests match the new layout. This helps keep German tax reporting accurate and consistent for businesses using Odoo.
Original PR description
After removing the balance column, we need to refactor the code that depends on it task-5046641
The German tax report has been reorganized to better match the official ELSTER VAT filing structure. This makes the report easier to follow for German businesses and helps align Odoo's tax reporting with expected filing categories.
Original PR description
Rework the structure of the German Tax Report according to the very well detailed structure https://sevdesk.de/ratgeber/buchhaltung-finanzen/ustva/formular-elster/ task-5046641 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr