Monday, June 30, 2025
13 changes · saas-18.3
Resolved issues and error corrections
This update adjusts an automated editor test to avoid inconsistent rounding differences in specific test environments. It helps keep quality checks stable so development validation is less likely to fail for reasons unrelated to product behavior.
Original PR description
It looks like, on runbot specifically, the previously chosen size unfortunately resulted in a size near the 0.5px mark. Because of that, sometimes it would be rounded down and sometimes up. Hopefully changing to another font size won't have the same issue. If it does then we'll need to manually choose either to always round down or up.
The time-off form now identifies the record being edited more accurately, so users are not shown an overlap warning when adjusting dates within the existing approved period. This reduces confusion for employees and HR teams when updating time-off requests.
Original PR description
### Steps to reproduce: - Create a time-off with dates from X to Y. - Attempt to modify the start or end date to a value that still falls within the original X–Y range. ### Fix: - Updated the condition to correctly retrieve the current record's ID using .ids ,since .ids can also include the origin ID. Task-4819538 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Searching security groups for a forward slash no longer causes an error. This keeps the group search in Settings working reliably even when users enter unusual search terms.
Original PR description
Currently, an error is produced on searching in a security group with a forward slash ('/').
**Steps to reproduce:**
- Navigate to `Settings > Users & Companies > Groups`.
- Type '/' in the search bar and hit Enter.
**Error:**
`IndexError - pop from empty list`
**Cause:**
When the group name contains only slashes, splitting it by '/' at [1] results in an empty list. After computation, it attempts to pop from the empty list, resulting in an error.
[1] - https://github.com/odoo/odoo/blob/a301f8ae6aad59efd073a34c6f9ec323191d211b/odoo/addons/base/models/res_users.py#L234-L235
This commit ensures the group name is only assigned when values have content, preventing the error.
Sentry - 6685124199
Forward-Port-Of: odoo/odoo#216430
Forward-Port-Of: odoo/odoo#214557The task form header now uses the available space correctly when viewed through shared projects. This prevents the task status field from appearing out of place, giving portal users a cleaner and more consistent experience.
Original PR description
### Steps to Reproduce: 1. Login as Admin user 2. Open project module 3. Share the project 4. Login as Portal user 5. Go to sales order inside the project 6. Open task there you be able to see the…
### Steps to Reproduce: 1. Login as Admin user 2. Open project module 3. Share the project 4. Login as Portal user 5. Go to sales order inside the project 6. Open task there you be able to see the state misalignment ___ ### Issue: The task header section (.oe_title) was restricted by a max-width: 75% styling. When the priority field was removed, the remaining fields in the header, particularly the state field, appeared misaligned due to this layout constraint. ___ ### Root Cause: The .oe_title class imposes a max-width that limits the available horizontal space for inline fields in the header. This fixed constraint does not adapt when fields like priority are removed, resulting in layout misalignment. ___ ### Fix: To resolve this, the class mw-100 was added to the `<div class="oe_title"> `element. This overrides the default max-width behavior, allowing the container to use full width when needed. ___ ### Technical Details: This approach keeps layout logic within the view. It also preserves layout flexibility for different screen sizes and future field additions or removals. task-4813557
This fixes an automated test step so it selects the correct point of sale order when multiple orders are present. The change helps keep point of sale and restaurant bill-splitting checks reliable, reducing false test failures without changing customer-facing behavior.
Original PR description
Modified the selectOrder function to specifically target the order-row that contains the tracking_number being passed to the function. Also updated a step in SplitBillScreenTour to align with the changes in selectOrder. Enterprise PR: https://github.com/odoo/enterprise/pull/88795 runbot-163111
This fixes an issue where loading restaurant sample data could fail if a product category had been manually removed. The sample data now uses a safe fallback, helping businesses restore or test restaurant point-of-sale data without errors.
Original PR description
A ParseError is raised when the system attempts to assign a product category to the `sushi_drink_combo` product, in cases where food product category have have been manually removed before loading…
A ParseError is raised when the system attempts to assign a product category to the `sushi_drink_combo` product, in cases where food product category have have been manually removed before loading the demo data. - new demo data has been added : odoo/odoo@94734feba5670b23acf73a2ad485efe3d480efc0 - `raise_if_not_found` conditions has been added for all demo data : odoo/odoo@e6430737bdcea0162e4a3d5ee82e9ab6caa697e9 Steps to reproduce: 1. Install the `point_of_sale` module without demo data. 2. Navigate to Inventory -> Configuration -> Categories. 3. Delete food category. 4. Navigate to Point of Sale → Load Restaurant Sample Data. 5. An error is triggered during the process. Error: ```python odoo.tools.convert.ParseError: while parsing /home/odoo/odoo/codebase/odoo/saas-18.3/addons/pos_restaurant/data/scenarios/restaurant_demo_data.xml:605, somewhere inside ``` This issue occurs because `sushi_drink_combo` also references a missing product category. As with previous products, this change ensures a fallback to prevent failure when no categories exist. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A new automated check confirms that date-based rentals count the full rental period correctly, such as January 1 to January 2 being treated as two days. This helps prevent future changes from accidentally causing incorrect rental durations and pricing behavior on eCommerce rental flows.
Original PR description
Adds a tour that ensure date-based rental durations are set correctly, i.e. renting from 2025-01-01 to 2025-01-02 should result in a rental period of 2 days. This should prevent commits like 574e111 (reverted by 5982e11) from introducing faulty logic. Forward-Port-Of: odoo/enterprise#88671 Forward-Port-Of: odoo/enterprise#88264
The accounting reconciliation process now safely stops when there are no bank statement lines to process. This prevents users from seeing an error when running reconciliation models with no available transactions.
Original PR description
SQL syntax error occurs when trying to auto reconcile transactions via reconcile models,it is because there are no statement lines to reconcile. **Steps to reproduce:** * Install `accountant` module (No demo data needed) * Accounting Dashboard> Bank dropdown menu * Under reconciliation>Models>Internal Transfers>Run Now `syntax error at or near ')' LINE 57: WHERE st_line.id IN ()` **Solution:** * Return the function if there are no statement to reconcile. **Sentry-6610155279**
Printed payslips now display title-style salary rule lines with the correct formatting. This makes generated payroll documents clearer and more professional for employees and HR teams.
Original PR description
### Steps to reproduce: - Generate and print a payslip after marking a salary rule line as a title. ### Fix: - Added conditional styles and classes to fix the issue. task-4780481
This fix prevents an error from appearing when staff mark a point-of-sale preparation order as done shortly after it arrives while using debug mode. It adds a safety check so the display no longer tries to use order information that has already been removed.
Original PR description
Steps to reproduce: - Open a preparation display in debug mode - Make an order that will appear on the preparation display - Click on the done button before 5 seconds - Traceback will appear 5 seconds after the order was received Issue: When receiving an order useDelayedValueChange is called in the setup of the Orderline component. This method will try to access the props after a timeout. When the preparation orders are deleted in debug mode, the states are deleted from the front end. Since the props of orderline are the preparation state linked to it a traceback arises. Fix: A check is added to check if the state record exists.
Removing a parent emission source from an ESG emission source no longer triggers an error. This keeps emission source management reliable and prevents disruption when users update ESG reporting structures.
Original PR description
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new…
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new emission source with a parent emission source. - Remove the parent emission source. `ValueError: Compute method failed to assign esg.emission.source(<NewId origin=3>,).activity_flow_direct_indirect` This error occurs when the parent emission source is removed, causing the scope to become False in _compute_scope[1]. Subsequently, in _compute_activity_flow[2], none of the cases match, which results in a failure to assign the activity flow and raises an error. [1] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L75 [2] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L77-L78 This commit ensures that if the parent emission source is removed, the activity flow is properly maintained. sentry-6690968543
HR users can now update employee leave requests even while they are waiting for approval, provided the leave has not already been included in payroll. This helps HR correct or adjust leave records before payslip processing without unnecessary blockers.
Original PR description
- Allowing HR people to always edit the leave, as long as it's not included in a payslip. task-4866887
This update keeps the automated checks for Mexican electronic invoicing in Point of Sale aligned with a recent underlying system change. It helps ensure invoice-related POS workflows continue to be tested correctly without affecting day-to-day users.
Original PR description
In this commit, I’ve updated the test in invoice_order_tour to align with the new signature of the selectOrder function introduced in the PR referenced below. Odoo PR: https://github.com/odoo/odoo/pull/212434