Daily updates from Odoo
Monday, April 6, 2026
7 changes
2 changes
Resolved issues and error corrections
This update resolves an issue where tracker numbers weren't being displayed correctly in the order details after completing a self-order kiosk transaction. The fix ensures that the tracker number is accurately recorded and visible when reviewing the order in the backend. This improves the clarity and accuracy of order tracking for staff.
Original PR description
Step to reproduce: - install "pos_self_order" - have a kiosk type pos, with "service at" = "table" - start kiosk and fulfill a order - on confirmation page, add a tracker number for that order. - go to backend and open that order Observation: - check "order name" in "Extra info" page, we do not get tracker number Cause: - After this commit [1], the tracker data is overridden by next if blocks - hence the data is lost. Fix: - fix the condition. [1] https://github.com/odoo/odoo/commit/c3ea329f1dce44c668e4907fa98cb5104ed11741 opw-5975717 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253304
This update corrects an issue where new lines added to purchase orders were causing a system error. The problem stemmed from a minor coding oversight during a recent update, preventing the correct setting of the 'date_promised' field. This fix ensures that purchase order lines are properly created and processed, improving order management.
Original PR description
How to reproduce: - Install both Purchase and Inventory application - Create a PO with Vendor X (with a purchase line to be able to create a picking but the purchase line in itself will not matter) -…
How to reproduce: - Install both Purchase and Inventory application - Create a PO with Vendor X (with a purchase line to be able to create a picking but the purchase line in itself will not matter) - Confirm Order > Receive - Add a new move line with any product and atleast one quantity - Validate - Try to access or create any PO with the Vendor X The problem: A traceback is shown Cause: When accessing or creating a new PO with Vendor X, we compute his `on_time_rate`. During this computation, we filter the moves using their purchase line's `date_promised` https://github.com/odoo/odoo/blob/7e60b3f3da2d7991220b164046a179b224384f9e/addons/purchase_stock/models/res_partner.py#L57 Commit [1] altered the behavior when creating new lines in a picking and a slight oversight was made while forward-porting : https://github.com/odoo/odoo/blob/7e60b3f3da2d7991220b164046a179b224384f9e/addons/purchase_stock/models/purchase_order_line.py#L102-L105 This makes it so `date_promised` is not set for these new lines and stays `False`. Calling `.date()` on a bool creates a traceback That said, the compute method should also be more robust since the field `date_promised` is not required. opw-6082456 [1] https://github.com/odoo/odoo/commit/52da6f77f7bf053b448f602196175b1354f70702 Forward-Port-Of: odoo/odoo#257341
1 change
Resolved issues and error corrections
This update ensures that account moves are automatically created when closing a POS session containing Urban Piper future orders (orders with a delivery date). Previously, these orders were excluded, preventing proper accounting record generation. This fix resolves a technical issue impacting financial reporting accuracy.
Original PR description
Before this commit, when all orders coming from Urban Piper in a POS session are paid future orders (i.e. have a delivery_datetime), closing the session would not generate an account move. The cause was that the code was excluding future orders when creating the account move. The fix is to exclude only unpaid orders instead. How to reproduce: - Set up Urban Piper (a test account needed). - Place an order from the Urban Piper platform. - Receive the order, accept it, and mark it as ready. - Close the session. - The session will not have an account move. opw-5995985 Forward-Port-Of: odoo/enterprise#113075 Forward-Port-Of: odoo/enterprise#111137
1 change
Resolved issues and error corrections
This update corrects a display issue where archived email templates were incorrectly appearing in the 'Refuse Applicant' wizard. The fix ensures that only active email templates are shown, improving the user experience and preventing confusion. This was caused by a technical update to how Odoo handles related data.
Original PR description
Pre-requisites: --------------- 1. Create or duplicate any `hr.applicant` email template. 2. Archive the newly created template. 3. Archive the email template linked to a refuse reason. Steps to…
Pre-requisites:
---------------
1. Create or duplicate any `hr.applicant` email template.
2. Archive the newly created template.
3. Archive the email template linked to a refuse reason.
Steps to reproduce:
-------------------------
1. Install hr_recruitment.
4. Go to Recruitment > Applications > All Applications and open an applicant.
5. Click on the "Refuse" button to open the refuse wizard.
6. Click on the "Email Template" and click on 'Search More'
7. Observe available templates
Issue:
-------
1. Archived email templates are displayed in the Email Template field.
2. If a refuse reason is linked to an archived email template,
the wizard automatically pre-fills that archived template
Cause:
----------
1. After the [refactoring of Many2oneField](https://github.com/odoo-dev/odoo/commit/3670f78be767396f322ff3ebf068af5c2f547b36) to use dynamicInfo.context,
now ensures that global context keys propagate to relational fields.
The archive_applicant method opens the refuse wizard with **'active_test': False**
in the context to allow refusing archived applicants. As a result, this context is now
applied when fetching the email templates, causing archived records to be included in
the search results.
https://github.com/odoo/odoo/blob/7966fae0c1fd7cfb6023efc0c274b8b395bf862f/addons/web/static/src/views/fields/relational_utils.js#L313-L321
2. Moreover, the `_compute_send_mail` method automatically assigns
the template from the refuse reason without checking whether
the template is active, which allows archived templates to be
pre-filled in the wizard.
https://github.com/odoo/odoo/blob/a3bf9264ca25ec11b0c9742e142d2404cac6d261/addons/hr_recruitment/wizard/applicant_refuse_reason.py#L29-L33
Solution:
-----------
- Pass `context="{'active_test': True}"` to the `template_id` field to ensure
archived templates are excluded by default, while still allowing users
to manually search for them if needed.
- Update `_compute_send_mail` to ensure only active templates are
automatically assigned.
**NOTE:**
Issue 1 only exists till saas-18.4. From saas-18.4, email templates are fetched using [search_read](https://github.com/odoo/odoo/blob/90db6b197edb93814d980345af01c56c2b6e553e/addons/mail/static/src/core/web/mail_composer_template_selector.js#L33-L46) without passing
the context. Additionally, [search_read removes 'active_test'](https://github.com/odoo/odoo/blob/90db6b197edb93814d980345af01c56c2b6e553e/odoo/orm/models.py#L5780-L5785)
before formatting the result, so archived records are not included.
opw-5974244
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#257286
Forward-Port-Of: odoo/odoo#2511861 change
Resolved issues and error corrections
This update resolves an issue where users would encounter an error when attempting to save a report with an empty XML format in web_studio. The fix prevents the system from attempting to process invalid XML data, ensuring a smoother user experience. This improves report creation stability.
Original PR description
Currently an error is generated when the user tries to save a report with an empty XML format. Steps to reproduce: - Install web_studio and sale_management - Sales > Studio > Reports > New > External…
Currently an error is generated when the user tries to save a report with an empty XML format. Steps to reproduce: - Install web_studio and sale_management - Sales > Studio > Reports > New > External > Type Text in report - Save > Edit Sources > Remove full XML > Save Error: `XMLSyntaxError:Document is empty, line 1, column 1 (<string>, line 1)` This error occurs because line [1] in `web_editor` attempts to access nodes by using `etree.fromstring()` with an empty `view.arch`, which is empty, resulting in an error. In earlier versions, this error was already handled by the `_check_xml` constraint, which raised a validation error when an `etree.ParseError` occurred while parsing `etree.fromstring(view.arch)` with an empty `view.arch` (see code reference [2]). However, recent changes introduced in commit [3] allow `view.arch` to be empty. As a result, this error is no longer handled by the constraint. This commit fixes the issue by adding a condition to prevent calling `etree.fromstring()` when `view.arch` is empty, avoiding attempts to access nodes from invalid data. It also updates the logic in the `web_studio` module's `get_xml_editor_resources` method to ensure resources are processed only when a valid view architecture is available. [1]: https://github.com/odoo/odoo/blob/8a88756bed194910bc5a47e93f0e29610dbeee1f/addons/web_editor/models/ir_ui_view.py#L367 [2]: https://github.com/odoo/odoo/blob/75ca0fec9a0d3b1e3a05a8bf3101bbe21846ac7a/odoo/addons/base/models/ir_ui_view.py#L372-L377 [3]: https://github.com/odoo/odoo/commit/8334ea5c777e5a478f12b8bb7a2f54bcae537d0f sentry-6288795955 Forward-Port-Of: odoo/enterprise#112400 Forward-Port-Of: odoo/enterprise#88613
2 changes
Resolved issues and error corrections
This update ensures that account moves are automatically created when closing a POS session containing Urban Piper future orders (orders with a delivery date). Previously, these orders were excluded, preventing proper accounting record generation. This fix ensures accurate financial reporting for orders processed through the Urban Piper integration.
Original PR description
Before this commit, when all orders coming from Urban Piper in a POS session are paid future orders (i.e. have a delivery_datetime), closing the session would not generate an account move. The cause was that the code was excluding future orders when creating the account move. The fix is to exclude only unpaid orders instead. How to reproduce: - Set up Urban Piper (a test account needed). - Place an order from the Urban Piper platform. - Receive the order, accept it, and mark it as ready. - Close the session. - The session will not have an account move. opw-5995985 Forward-Port-Of: odoo/enterprise#113075 Forward-Port-Of: odoo/enterprise#111137
This update fixes an error where child companies were incorrectly inheriting the tax return journal setting from their parent company. This ensured that each company had its own, accurate tax return journal configuration, preventing reporting discrepancies. Ticket 114344 details this correction.
Original PR description
The objective of this pull request is to show that when the parent company has the tax return journal (account_tax_return_journal_id) set up but the child company does not, then the child company will also have the same tax return journal (account_tax_return_journal_id) set up, but it is incorrect because it is a different company. Ticket: 114344