Daily updates from Odoo
Saturday, May 23, 2026
9 changes · saas-19.1
Enhancements to existing features
This update improves the accuracy of Indian Profit & Loss reports by incorporating 'Other Expenses' into the calculation. This ensures the reports align with standard accounting practices and provide a more complete picture of business profitability.
Original PR description
Update the Indian P&L report structure to capture accounts categorised under 'Other Expenses'. This ensures that the net profit calculation accounts for all overheads, aligning with standard accounting practices. task-6166626 Forward-Port-Of: odoo/enterprise#115402
Resolved issues and error corrections
This update fixes an issue where fiscal positions weren't correctly created for US companies due to an outdated configuration. Now, fiscal positions are automatically generated based on a company's localization (US or Canada), ensuring accurate accounting and reporting. This simplifies the system and improves data accuracy.
Original PR description
The fiscal position was being created specifically for countries using the Generic CoA. This stems from before the US had its own CoA [1]. Because of this, US companies no longer had an Avatax fiscal position created for them. Now that the US has its own CoA, we move to a simpler `@template()` approach and take the opportunity to add Canada as well. [1] odoo/odoo#223745 task-6228639 Forward-Port-Of: odoo/enterprise#117966
This update enhances the Timesheet Assistant by opening internal links within a modal window. This keeps users within the Timesheets Assistant menu, providing a smoother and more intuitive experience when navigating related tasks and information.
Original PR description
This commit opens the internal links in the custom form view displayed in the timesheet assistant inside a modal to stay in Timesheets Assistant menu. task-[6132392](https://www.odoo.com/odoo/project/4105/tasks/6132392)
This update corrects a formatting error in invoices generated with large prices. Previously, invoices displayed extra decimal places due to a calculation issue. The fix reduces the precision used in calculations to ensure invoices display only the necessary digits, improving data accuracy and presentation.
Original PR description
Issue: - Create an invoice with a line having a price of `528,000,000.00` - Print the invoice -> pdf displays `528,000,000.000001` Cause: In `value_to_html` from `ir.qweb.field.float`, we compute the maximum precision that we can get from the value, to avoid parasite digits. The maximum is 15, so if a number has 11 digits, we won't ask for a precision higher than 4. But in `float_round`, they multiple the value with its precision, then add `epsilon` (a small value). So we're now working with a 16 digits float, which is what we want to avoid. Solution: Reduce the maximum precision from one digit before calling `float_round`. opw-6012129 Forward-Port-Of: odoo/odoo#265696 Forward-Port-Of: odoo/odoo#260955
This change refactors the partner retrieval logic within the account statement line processing to avoid redundant queries. By intelligently filtering partners based on initial matching criteria (bank account), the system eliminates unnecessary searches based on name, preventing performance degradation and improving query efficiency. This optimization primarily targets scenarios where multiple statement lines might initially match on the bank account, reducing the overall processing time.
Original PR description
Various improvements related to performance for `<account.bank.statement.line>._retrieve_partner` Forward-Port-Of: odoo/enterprise#117738
This update fixes an issue where embedded actions didn't always display the correct translated names, especially after language changes or server action updates. The fix delegates the action's display name to the linked server action, ensuring consistent and accurate translations across all languages. This improves the user experience and avoids confusing untranslated names.
Original PR description
When an embedded action is created from a server action, its name is just stored as is. When using these actions e.g. in the Documents top bar, there is already a "hack" to copy the name of the…
When an embedded action is created from a server action, its name is just stored as is. When using these actions e.g. in the Documents top bar, there is already a "hack" to copy the name of the server action to the embedded action in each active language. This has a few issues: - When a language is activated after the embedded action creation, the name of the server action is not copied to the embedded action, resulting in an untranslated name. - When the name of the server action is changed, the name of the embedded action is not updated, resulting in an outdated and possibly untranslated name. The workaround is to disable/enable the action now, but it's not very user-friendly and can be easily forgotten. To fix this, we can simply delegate the display name of the embedded action to the linked server action. This way, the name of the embedded action will always be up to date and correctly translated. Related: https://github.com/odoo/enterprise/pull/116369 Forward-Port-Of: odoo/odoo#265342 Forward-Port-Of: odoo/odoo#262981
This update removes a redundant step in creating embedded actions within Odoo. Previously, a separate translation was required, but now that embedded actions inherit their display names directly, this manual process is no longer necessary. This simplifies the action creation workflow and ensures consistent translations.
Original PR description
Now that `ir.embedded.actions` delegates its display name to the linked action, the manual translation copy on embedded action creation is no longer needed. Related: https://github.com/odoo/odoo/pull/262981 Forward-Port-Of: odoo/enterprise#117772 Forward-Port-Of: odoo/enterprise#116369
This update fixes an issue where tip payments, even with a 0% tip, weren't always being fully processed by Stripe. The change ensures that a capture payment is always initiated, regardless of the tip amount, aligning with Stripe's requirements and preventing pending payments from being automatically cancelled. This improves payment accuracy and reliability for restaurant orders.
Original PR description
Currently, the `pos_restaurant` module only calls capture payment within `validateTip` if there is an amount to tip. Since Stripe requires a capture for all payments and we defer that to later if it can be adjusted, this means that if customers have tip after payment enabled and enter a tip of 0%, it will never be captured, stay pending, and then be automatically cancelled later down the line. This commit catches that by hooking into the `validateTip` method and calling capture anyway on 0% tips. opw-6082596 Forward-Port-Of: odoo/odoo#265507 Forward-Port-Of: odoo/odoo#261129
This update fixes issues with website translations, ensuring accurate formatting and preserving text meaning. It now correctly handles metadata like image attributes and prevents multiple translation requests, leading to a more reliable and consistent user experience for translated content. This improves the quality of our global website offerings.
Original PR description
This commit fixes and improves several aspects of the recently merged
[translate the whole page].
- Fix formatting issues in the translation like:
- Space getting removed while translating
- Meaning of text is not preserved after translation.
- Example :
- 'Enhance Your' and '<b>Experience</b>' becomes, 'Enhance Your<b>Enhance Your Experience</b>'
- 'hello <b>world</b>' becomes 'Hola<b>mundo</b>' space is trimmed.
- Exclude non-translatable elements such as `.o_brand_promotion` from
translation.
- Support metadata translation, ensuring that translatable attributes
are correctly handled (`alt`, `title`, `placeholder`, and `value`
attributes).
- Disable the “Translate” button while the translation process is
running to prevent multiple concurrent requests.
[translate the whole page]: https://github.com/odoo/odoo/commit/6e1e359ec6a7ae23cfa7d7c96380f845c7fdcfe5
task-5047714
Forward-Port-Of: odoo/odoo#229894