Friday, March 6, 2026
11 changes · saas-18.4
New functionality added to Odoo
This update incorporates recent changes to Mexican city listings within the Odoo Enterprise system. This ensures accurate reporting and compliance for Mexican businesses utilizing the l10n_mx_edi_extended module. The change reflects the latest government updates.
Original PR description
The Mexican government has recently introduced new cities. This pr adds those cities here as well. task-5883334 Forward-Port-Of: odoo/enterprise#109358 Forward-Port-Of: odoo/enterprise#107623
Enhancements to existing features
This update enhances logging for transactions related to Codabox integration (_l10n_be_codabox_fetch_coda_transactions). These improved logs will assist the support team in quickly identifying and resolving any issues with the Codabox data synchronization process. This ultimately reduces support response times and improves the reliability of the integration.
Original PR description
This commit will improve the logs of _l10n_be_codabox_fetch_coda_transactions to help the support team to debug possible problem. task-5436868 Forward-Port-Of: odoo/enterprise#108213 Forward-Port-Of: odoo/enterprise#107779
Resolved issues and error corrections
Purchase receipts no longer repeat the vendor product name and code in line descriptions. This makes receipts clearer for warehouse and purchasing teams and avoids confusion when checking incoming goods.
Original PR description
**Steps to reproduce:** * Install the `purchase_stock` module. * Create a product and set a vendor with a vendor product name and code * Create a Purchase Order with the same vendor. * Add the…
**Steps to reproduce:**
* Install the `purchase_stock` module.
* Create a product and set a vendor with a vendor product name and code
* Create a Purchase Order with the same vendor.
* Add the product to the Purchase Order lines.
* Confirm the Purchase Order.
* Open the generated receipt.
**Observed behavior:**
* The stock move description on the receipt contains the product description twice.
**Cause**
`_compute_description_picking` in `purchase_stock` first calls super().
In this super() call, it executes `_get_description`.
However,` _get_description` is overridden in `purchase_stock` to return
the purchase order line name.
https://github.com/odoo/odoo/blob/57e265c482733029b33c75c1ec99b808c1b17055/addons/stock/models/stock_move.py#L711
https://github.com/odoo/odoo/blob/57e265c482733029b33c75c1ec99b808c1b17055/addons/purchase_stock/models/stock_move.py#L56-L57
The purchase order line name already includes the vendor product name and code.
So, after super() runs, `description_picking` already contains
the vendor product details.
Then,` _compute_description_picking` in purchase_stock adds the supplier product
name and code again.
https://github.com/odoo/odoo/blob/57e265c482733029b33c75c1ec99b808c1b17055/addons/purchase_stock/models/stock_move.py#L46-L54
Because of this, the same vendor product details are added twice, which results
in a duplicated description in `description_picking`.
---
<details>
<summary>Click here to see the results:</summary>
Before:
<img src="https://github.com/user-attachments/assets/d52f74a0-933d-4ff0-9968-3df88d0b0959"/>
After:
<img src="https://github.com/user-attachments/assets/83e11c16-acda-45d0-bb01-1b794840cca0"/>
</details>
---
opw-5392864
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update enhances the accuracy of loan interest rate calculations within the Enterprise module. Previously, interest rates were displayed with only two decimal places. Now, users can specify up to ten decimal places for greater precision, improving financial reporting and analysis.
Original PR description
Allowing more precision on the interest rate for loans. By default the display uses 2 decimals, but if a user decides to add more precision they can up to 10 decimals. task-5913175 Forward-Port-Of: odoo/enterprise#107163
This fixes a display issue in the HTML editor where a collaborator's avatar could stay stuck on the first line of a checklist instead of following their current position. Users collaborating on notes and lists will now see each other's focus more accurately, reducing confusion during shared editing.
Original PR description
Since [1] when using collaboration, the position of the avatar for list items is always displayed on the first line - instead of following the user's focus. This commit fixes this by only applying the patch of [1] when inside an embedded component. Steps to reproduce: - Go to a "To do" note - Add a checked list with indented items - Access the same note from another window - Move around the checked list and observe avatar in other window => Avatar remained on first line while moving around list items [1]: https://github.com/odoo/odoo/commit/9863cb25d6dfdba224897f21634bdaaf3eca91a7 task-5930388 Forward-Port-Of: odoo/odoo#248438
Opportunity meeting dates now use the user's configured time zone when shown on the CRM smart button. This prevents late-day meetings from appearing as the wrong calendar date for users working across different time zones.
Original PR description
# How to reproduce - Use a browser extension to manage your browser's timezone - Set your browser's timezone to a timezone with quite a big delay (like "America/Grand_Turk" if you live in Europe) -…
# How to reproduce - Use a browser extension to manage your browser's timezone - Set your browser's timezone to a timezone with quite a big delay (like "America/Grand_Turk" if you live in Europe) - Go to the form view of an opportunity - Click on the smart button for meetings (Should be "No Meeting" if it is a new Opportunity) - In the calendar view, add a new meeting for very late in the day (Example : 2026-02-10 22:00:00 => 23:00:00) - Go back to the opportunity for view # The problem The date displayed is a day after the meeting that was just set up. Taking back our example, the date displayed would be 2026-02-11 # Why The calendar view uses the browser's timezone to manage the dates. The smart button does not. It is not possible to make the smart button use the browser's timezone, atleast in a clean way. That is because the smart button's data is managed by a python template, which does not have access to the browser's data. Trying to change the data displayed by the framework would be clunky as the html would need to be edited directly. The fix that I implemented follows what the hr_appraisal module does for it's smart button with a date: use the timezone set in the user's preferences. opw-5898520 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247984
Customers no longer see a leave-conversation warning after a chatbot conversation has already ended. This avoids confusing prompts when users close or continue from a completed chat, while keeping the warning for active conversations.
Original PR description
Before this commit: When a user finishes a chatbot script and the conversation is already ended, clicking on close / continue still triggers the leave conversation warning. After this commit: The leave conversation warning is no longer shown when the chatbot conversation is already closed or ended. The warning is only shown for active conversations. [Task-5882084](https://www.odoo.com/odoo/project/1519/tasks/5882084) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251465 Forward-Port-Of: odoo/odoo#247918
This update fixes an issue where IoT blackbox warnings were incorrectly treated as errors. Now, when the blackbox returns a warning code (starting with '1'), a notification is displayed to the user. This ensures warnings are properly communicated and addressed, improving the overall reliability of the POS system.
Original PR description
Before this commit, all errors returned by the iot after a call to the blackbox were considered as errors. Actually, the errors are only the ones that do not start with 0 (no error) or 1 (warning). This commit changes the behaviour when handling warning. We now show a notification. task-id: 5062178 Forward-Port-Of: odoo/enterprise#103112 Forward-Port-Of: odoo/enterprise#93896
This update adjusts the minimum and maximum amounts for employee mobility budgets each year, aligning with local regulations. These changes ensure employees have access to the appropriate budget range for relocation expenses, improving compliance and employee support. The update affects the l10n_be_hr_payroll module.
Original PR description
Each year the minimum and maximum amount of mobility budget is indexed, here are the new values. Forward-Port-Of: odoo/enterprise#109641
This update prevents Instagram posts from failing due to delays in media processing. By using a scheduled cron job to retry publication, the system now handles temporary processing delays gracefully, ensuring posts are successfully published without impacting server performance.
Original PR description
With the current behavior the Instagram API sometimes requires time to process media containers, the media_id is not yet ready on Instagram side, leading to failed posts. To avoid this, we now use an asynchronous flow: If the media container is not immediately 'FINISHED', we store the container ID in `instagram_post_id` (prefixed with `containerIDs-`), set the state to 'posting', and trigger the scheduled cron to retry in 1 minute. The `_cron_publish_scheduled` method has been updated to detect these pending posts and resume the publication attempt so workers remain free while Instagram processes the media. opw-5081325 Co-authored-by: @ushyme Forward-Port-Of: odoo/enterprise#100313
This update removes a display field ('Visible Internally Only') from the customer rating form in the Helpdesk module. This field was no longer needed as customer ratings are no longer visible on the website. This cleanup improves the user experience and reduces unnecessary complexity.
Original PR description
**Steps to reproduce:** - Open a Helpdesk ticket with a customer rating. - View the rating form. - Observe the field ‘Visible Internally Only’ still showing. **Issue:** - The field is displayed even though ratings are no longer shown on the website. **Reason:** - The field is now irrelevant but still present in the view. **Fix:** - Invisible the ‘Visible Internally Only’ field from the customer rating form in the affected version. **Task id - 5359052** Forward-Port-Of: odoo/enterprise#109287 Forward-Port-Of: odoo/enterprise#100686