Friday, March 6, 2026
8 changes · saas-18.4
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 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