Wednesday, May 21, 2025
10 changes · saas-18.3
Resolved issues and error corrections
Fixes an error that prevented users from deleting projects when the ESG Project module was installed. This ensures project cleanup works as expected without unexpected traceback messages.
Original PR description
Before this commit, when the user tries to delete a project in project app, a traceback is occurred because of recursion loop in the code during the deletion of the record. This commit removes the recursion in the code to correctly delete the project without any issue. Steps to reproduce the issue ---------------------------- 0. Install `esg_project` module 1. Create a project 2. Go to Projects list view 3. Delete the project created in step 1 Expected behavior ----------------- The project should be deleted without any issue Current behavior ---------------- A recursion error is occurred during the deletion of the project task-4788173
This fixes a checkout crash for Chilean customers when required invoicing details were left blank. Shoppers now see the expected checkout navigation instead of an error page, helping prevent abandoned orders.
Original PR description
**Steps to reproduce:** Leave at least one field empty on the invoicing info page of the website checkout flow. For that page to appear, the customer country must be Chile, and the setting "Automatic Invoice" must be checked on the Website settings. **Issue:** Error 500 when rendering the template of the navigation buttons. The button values are not set.  Bug introduced in commit odoo/enterprise@ba260e8 Fixed by calling the method that sets the values before rendering the template.
The IoT device page buttons for downloading logs and restarting Odoo now work again after a previous page change broke them. This restores important support and maintenance actions for connected IoT boxes.
Original PR description
Since odoo/enterprise#81180 removed the `ip_url` field from the IoT box form view, these buttons have not been working since their JS widgets relied on that field. This commit fixes the issue by making them use the new `formatEndpoint` helper instead. task-4813431
This fix prevents an error when users fetch e-invoice IRN details from vendor credit notes created during the GSTR-2B flow. It ensures the Indian GST reporting workflow continues without a traceback caused by a translation handling issue.
Original PR description
**Steps to reproduce:** 1) Open a GST return period. 2) Click Fetch GSTR-2B Summary. 3) Go to Vendor Refunds. 4) Open the vendor credit note created by OdooBot. 5) Click the Fetch button. -> Traceback occurs. **Cause:** The translation function (_()) was incorrectly used with two arguments instead of one in this commit https://github.com/odoo/enterprise/commit/14bfe78b034563637e43fd2795c9498c736d0dbc **Fix:** Change the arguments that are applicable for translation. **Task**-4808874
This fix updates automated checks for Avatax sales tax calculations after changes to how down payments and global discounts are rounded per line. It helps ensure tax-related sales workflows remain reliable and prevents false test failures in future releases.
Original PR description
…t with round per line opw-4685953
This fix prevents self-ordering kiosks from failing when they need to communicate with an IoT box without a logged-in user. It adds a secure proxy path that verifies the kiosk session and returns the needed authorization so kiosk ordering can continue reliably.
Original PR description
With the introduction of signing communication between the IoT box and the DB, a `sign_communication` method is called on the `iot.box` model for every IoT request. This works fine when there is a logged in user, however in the case when there is no user it fails. This is due to the `call_kw` route used by ORM calls requiring a user. In the Kiosk environment, there is no logged in user, so the request fails. To fix this, a new route has been added to proxy the request, which verifies the session ID and then returns the authorisation hash as usual. task-4809897
The AI update action now processes each selected record only once instead of repeating work across the full selection for every record. This prevents unnecessary AI service calls, reducing delays and avoidable usage costs when users run the action on multiple records.
Original PR description
Scenario: - create a res.partner server action "Update Record" with "Update with AI" and a prompt like "set phone to <t t-out="object.id">ID</t> times 2" - push on "Create contextual action" button - go to a contact list view, select 4 contacts and run the action Result: there is 16 calls to iap Reason: when running an action, _run_action_object_write is called one time per record, but the ai_server_actions override fill the field of all records at each call. Issue found when investigating unrelated opw-4491099
Appointment pages with no available staff or resources now show the unavailable slot message only once. This keeps the booking page clearer for visitors and avoids confusion when no appointments can be scheduled.
Original PR description
Reproduce: Check the front page of an appointment type with no resources or staff users. This commit avoids duplicating the ‘No slot’ message on the front page of appointment types for which there is no slot available. related: odoo/enterprise@36da382fceba76f3de69306e24c9c6fa018cde9f Task-4750234
Pinning messages in Discuss now works even when the message has no linked thread available. This prevents a user-facing error and makes the message pinning action more reliable.
Original PR description
**Before this PR:** Pinning a message would throw an error if the associated thread was not present on the message. **After this PR:** This commit ensures that pinning a message works properly. **Task**-4805076
The IoT box setup flow no longer asks users to configure a Point of Sale when no active Point of Sale is available. This removes a confusing popup that could not be completed and makes the pairing process smoother for businesses without Point of Sale configurations.
Original PR description
Before this commit, if you paired an IoT box with no Points of Sale configured, you would still get the popup prompting you to autoconfigure your IoT box with a PoS. However, since you have no PoS you cannot fill in the required field and have to dismiss the popup. After this commit, we only open the autoconfigure popup if there is at least one active PoS available. task-4797331