Wednesday, December 17, 2025
11 changes · 18.0
Resolved issues and error corrections
This update fixes alignment issues within the partner record form and improves the user experience by hiding the 'MyInvois' tab when it's not relevant – specifically, for journal entries related to sales or purchases. This ensures that users only see the most pertinent information, streamlining their workflow.
Original PR description
This commit: - Fixes alignment of the `MYINVOIS INFORMATION` section on the partner form. - Hides the `MyInvois` tab on journal entries where journal type is neither `sale` nor `purchase`. task-5356808 Forward-Port-Of: odoo/odoo#239837
This update ensures that downpayment lines in the l10n_my_edi_extended module consistently use a specific classification code ('022') for reporting purposes. This change maintains accurate accounting and tax reporting by standardizing the classification of downpayment transactions, while other product lines continue to use their standard product-based classifications.
Original PR description
Ensure downpayment lines are assigned a fixed classification code ("022"), while other lines retain their product-based classification.
Task-5356913
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update refines how EDI participants are registered within Odoo, specifically targeting localization-specific EDI integrations (MyEDI and Italian EDI). The change ensures that errors related to duplicate registrations are resolved, streamlining the process for users working with these localized EDI systems. This improves reliability and reduces potential registration issues.
Original PR description
This commit removes the `unique_active_edi_identification` constraints from the _auto_init of `account_edi_proxy_client` client user model, and adds back the constraint on `l10n_my_edi` and `l10n_it_edi` to make it apply only to those localizations. task-4852830 Forward-Port-Of: odoo/odoo#224811
This update fixes a technical issue impacting how appointment URLs are generated, leading to improved search engine optimization (SEO) for appointment pages. Previously, the appointment type slug wasn't correctly reflected in URLs, now it is, and users can also adjust the slug for appointment types. This enhances visibility and accessibility for appointments.
Original PR description
This PR replaces the appointment type's id by the slug of this one in the appointment URLs. This allows a better SEO for the appointment pages and users to change the slug of the appointment types too. Previously the slug was not replaces by the value entered in the Cutsom Url field of the Optimize SEO form, this is not longer the case. Community PR: https://github.com/odoo/odoo/pull/231609 Task-5114394
This update fixes a rounding issue in the sale timesheet module that was causing inaccurate remaining time displays on Sales Orders. The fix eliminates intermediate rounding to ensure precise hour calculations, preventing discrepancies and providing correct time overages. This improves the accuracy of sales reporting.
Original PR description
Steps to reproduce: - Create service product with UoM 'pack of 20 hours' and prepaid policy - Sell the product and confirm the Sales Order - Create a helpdesk ticket/task linked to the Sales Order…
Steps to reproduce: - Create service product with UoM 'pack of 20 hours' and prepaid policy - Sell the product and confirm the Sales Order - Create a helpdesk ticket/task linked to the Sales Order Line - Log 22:00 on timesheets Current behavior: Sales Order Line shows '-2:01 remaining' Expected behavior: Should show '-02:00' to reflect two hours overconsumed without rounding. Root cause: Python's float type follows the IEEE 754 double-precision standard, where only base-2 fractions can be stored precisely. Base-10 fractions cannot be represented exactly, introducing tiny rounding errors. During chained operations such as multiple conversions or subtractions, these small errors accumulate into larger discrepancies. The float_round() function uses a small constant epsilon to correct rounding noise, but as arithmetic chains grow, errors exceed epsilon's tolerance and it can no longer correct them. Since a single global epsilon cannot handle every case (small vs. large values, chained vs. single operations, or regressions), rounding drift is inevitable when rounding happens repeatedly. Fix: To prevent these rounding errors from compounding, the solution is to stop intermediate rounding altogether. By using conversions with round=False, all arithmetic is done in the base unit (hours) with full float precision, and rounding is applied only once when displaying the final value. This eliminates error accumulation and ensures consistent, drift-free results. task-5090240 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229282
This update ensures that rental orders created from leads automatically include the tags associated with the original lead. Previously, rental orders lacked this functionality due to a minor difference in how context information was passed. This change streamlines the rental order process and improves data consistency.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have a lead with tags; 2. convert lead to rental order. Issue ----- The new rental order has no tags. Cause ----- Tags are added to regular sales orders via the `_prepare_opportunity_quotation_context` method, but rental orders use `_get_action_rental_context` instead, which is virtually identical, but adds the `in_rental_app` context value, and doesn't include `default_tag_ids`. Solution -------- Rather than having duplicate code, make `_get_action_rental_context` retrieve the base context from `_prepare_opportunity_quotation_context`, then adding `in_rental_app=True`. opw-4549941 Forward-Port-Of: odoo/enterprise#102220
This update fixes a potential memory error that could occur when installing the new 'account_no_followup' module in Odoo 18. The fix avoids a large data calculation that previously overloaded the system's memory. This ensures smoother module installations and prevents potential performance slowdowns.
Original PR description
The module `account_no_followup` is a new module added in odoo/enterprise#96627. Since it's marked as `auto-install=True` and since it's a dependency of the new `pos_no_followup` module, it may be installed on existing 18.0 databases with a lot of account.move.lines. In this case, the module installation will raise a MemoryError as there's a new stored computed field on journal items called `no_followup`. Computing this field and storing the value in cache will overfill `self.env._cache` and reach the 2GB threshold. This commit fixes that by adding an overwrite of the `_auto_init` method to initialize the field's value in raw SQL, circumventing the issue.
This update addresses a bug fix within the Odoo spreadsheet component. Specifically, it prevents the spread of empty matrices, improving data accuracy and stability. Multiple developers collaborated on this release, ensuring a robust update for the 18.0 version.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3d9063cb7f [REL] 18.0.52 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/c4c51c062c [FIX] evaluation: do not spread empty matrix [Task: 5421196](https://www.odoo.com/odoo/2328/tasks/5421196) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update corrects a bug where archived employees were still appearing in the timesheet section of helpdesk tickets. The fix ensures that timesheets are only populated with active employee data, improving data accuracy and preventing confusion. This resolves a potential issue with reporting and data management.
Original PR description
**Steps to Reproduce:** - Install hekpdesk_timesheet. - Go to settings, enable timesheets - Archive an employee. - In a ticket, try to add a timesheet entry. **Isuue:** Archived employees are also appearing under timesheets tab. **Fix:** Passed a context so that only active employees appear in the selection. task-5078763
This update fixes a technical issue where the HTML Editor was incorrectly accumulating local overlays, leading to potential performance problems. The fix ensures that these overlays are properly cleared when the Editor and its associated plugin are removed, resolving a bug introduced after a website refactor. This improves the stability and performance of the HTML Editor.
Original PR description
This commit ensures that local overlays are correctly removed when the Editor and `LocalOverlayPlugin` are destroyed. Steps to reproduce (observable after 18.4): - Go on website - Enter edit mode - Save - Repeat entering edit mode and saving - Inspect the DOM: oe-local-overlay elements keep accumulating, only one is non-empty The bug is only observable after 18.4, after the website refactoring, but the root cause has been present since 18.0, so we fix it there in case there are other use cases. task-5380409
This update simplifies the TDS tax warning displayed in the withholding process. It now automatically alerts users when a vendor’s PAN (tax identification number) is missing, focusing on the core purpose of collecting this information. Removing the rate-based check ensures a clearer and more consistent warning message.
Original PR description
Simplified the condition to show warning whenever the partner’s PAN is missing in the TDS entry wizard, instead of checking for lower TDS rate. The warning’s purpose is only to alert users to collect PAN from vendors, so rate based check was removed. task-5245353 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr