Tuesday, July 22, 2025
13 changes · 18.0
Resolved issues and error corrections
This fix updates an automated website test so it correctly recognizes when a scroll animation has finished. It helps keep quality checks reliable and prevents false failures during website-related validation.
Original PR description
## Version 18.0+ ## Issue The tour `snippet_popup_and_animations` times out when trying to wait for the last column to become "not animated and hidden". This happens because the element never…
## Version 18.0+ ## Issue The tour `snippet_popup_and_animations` times out when trying to wait for the last column to become "not animated and hidden". This happens because the element never actually becomes `hidden` after the scroll-triggered animation ends — it remains in the DOM and visible. ## Cause Commit 7e85f88214b6b57db87a6c1964286f0b7813f6ff attempted to fix a selector that was always true by adding `:hidden`, assuming the element would be hidden once the scroll animation completed. But since the element’s visibility is never changed via `display: none` or `visibility: hidden`, the `:hidden` condition never matches, blocking the tour. ## Fix Remove the `:hidden` pseudo-class from the trigger. Instead, wait for the `.o_animating` class to be removed (indicating the end of the animation), then: - Add a short delay to ensure animation processing is complete. - Check that the element is outside of the viewport (scrolled out). - Verify that `animation-delay` is approximately 0. runbot-227077
A redundant step was removed from an automated restaurant point-of-sale test. This helps keep the validation process reliable and reduces the chance of false failures in quality checks.
Original PR description
Following this commit: ==== - Extra step was removed. runbot Error: 114352
Tax totals are now rounded more consistently before being displayed. This prevents confusing values such as negative zero and ensures small amounts round to the expected cent, improving clarity on accounting screens.
Original PR description
The tax totals view component rounds the value we got from python (in the javascript `formatFloat` function). However, it has a few weird quirks because of how the function we're currently using (`toFixed`): - When rounding value like `-0.00000001` to 2 decimal precision, it resulted in `-0.00`, while a more sensical result would be `0.00`. - Some value are rounded incorrectly: for ex: `0.015` -> `0.01`. (it should be `0.02`) Solution- we use the appropriate rounding function separately before converting the value to string with `toFixed`. This way, `-0.001` will become just `0.00`, and `0.015` is rounded correctly to `0.02`. task-4685953
This update corrects a failing automated test related to project profitability when stock valuation accounts are missing. It helps keep the sales, project, and inventory test suite reliable so future changes can be validated without false build failures.
Original PR description
This problem was introduced with [203936](https://github.com/odoo/odoo/pull/203936/commits/a6bde40096da2e16d58b9dcc300c607b40633038) The test `test_report_invoice_items_anglo_saxon_automatic_valuation` throws an error because a stock input account cannot be found for the product avco product. This breaks the class `TestSaleProjectStockProfitability`in the 17.0 No demo build. Runbot - [229892](https://runbot.odoo.com/odoo/runbot.build.error/229892) Forward-Port-Of: odoo/odoo#219643
Automated actions now use the same evaluation rules as the browser interface. This reduces inconsistencies between what users see in the interface and how automated rules run in the background, helping avoid unexpected behavior.
Original PR description
Before this commit, the eval context for base_automation was not aligned with the browser side py_builtin.js eval context. After this commit, the eval context for base_automation is aligned with the browser side py_builtin.js eval context. Task id: opw-4737292
Fixed an issue where users could encounter an error when opening the On Hand stock view from a product added to an approval request. This ensures inventory quantities can be viewed normally from approvals without disrupting the workflow.
Original PR description
<b>Steps to reproduce:</b> 1. Install the `approval`,`stock` module. 2. settings Inventory> Warehouse > check storage Loaction 3. Go to approval > Manager> All Approvals 4. Select an Approval > add storable product with on hand quantity > 0. 5. Go through the product > stat button On Hand <b>Issue:</b> - A traceback for unknown name field occurs when opening the On hand (stock.quant list view) <b>Cause:</b> - The context `search_view_ref` is passed from the `approval_product_line_view_tree` via the `product_id` field, which interferes with the Quant list view rendering. As a result, the On Hand button fails to display the expected stock information. <b>Solution:</b> - Removed `search_view_ref` from the `product_id` field context in the approval product line tree view. This prevents the context from unintentionally affecting unrelated views i.e. stock.quant list, ensuring On Hand smart button works as expected. <b>opw-4916178</b>
Users without administrator settings access can now use the Reload AI Data button without hitting an access error. This prevents interruptions when processing invoices with AI extraction and keeps the workflow available to regular accounting users.
Original PR description
When clicking on the "Reload AI Data" button (`account.move::action_reload_ai_data`), a user not in `base.group_system` group encounters an access rights error when searching on `ir.module.module` model in `account.move::is_indian_taxes()`:
```python
def is_indian_taxes(self):
l10n_in = self.env['ir.module.module'].search([('name', '=', 'l10n_in')])
return self.company_id.country_id.code == "IN" and l10n_in and l10n_in.state == 'installed'
```
This commit adds `sudo()` to the `search` call to ensure that the check for the 'l10n_in' module does not fail for users not belonging to "Administration/Settings" group.
This prevents a traceback and ensures that functional users can reload AI data.
Forward-Port-Of: odoo/enterprise#90021The Project Documents app can now be installed even if a default Documents tag, such as Draft, was deleted beforehand. This prevents an installation error and makes the setup process more resilient for databases where document tags have been customized.
Original PR description
**Steps to reproduce** On a fresh database: - Install Documents - Delete the "Draft" tag - Try to install `documents_project` Installation fails: `ValueError: External ID not found in the system: documents.documents_tag_draft` **Cause** Documents tags can be deleted, innstallation of `documents_project` will fail if `ir_actions_server_data.xml` references a deleted tag https://github.com/odoo/enterprise/blob/99d7d43abf17877f6cf2e0ad88bb64fdd85b4579/documents_project/data/ir_actions_server_data.xml#L14 **Solution** Partially backport the part of the fix related to `documents_project` in https://github.com/odoo/enterprise/commit/0be3fb2661b14690f090776a2da4eb767e489ef2 , the part related to `documents_account` is only necessary for 18.2 and later after https://github.com/odoo/enterprise/commit/30968e831a92d4317025a2c312a273a0bd51f9a2. opw-4554976
The Urban Piper POS integration now checks the finalized order status directly instead of relying on an unused internal flag. This helps keep ticket screen behavior consistent and removes redundant state tracking that could cause confusion in future maintenance.
Original PR description
In this commit: ==== - Use `finalized` instead of `uiState.locked` to determine order state on TicketScreen. - Remove the unused `locked` property from `uiState` in posOrder. Task-4745869 Related: odoo/odoo#207406
The product description shown for subscription goods billed on delivered quantity has been corrected. This prevents users from seeing misleading information when configuring subscription products, reducing confusion during setup.
Original PR description
To reproduce: ============== 1- go to subscription 2- go to product 3- select product type : goods and invoicing_policy : Delivered Quantity Problem: ========= wrong description. Solution: ========== update description. opw-4929735
This fix prevents an error when viewing technical product data for products using the POS Pricer module. It ensures the product price display field always has a safe default value, improving reliability for users managing product variants.
Original PR description
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click…
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click on the Bug icon (top-right corner). 7. Click on Data. **Issue:** A traceback is raised with the error: `Compute method failed to assign product.product(191,).pricer_display_price` The method `_compute_pricer_display_price` was removed in this commit https://github.com/odoo/enterprise/commit/87b1672ac7c1d27cd9eab05138b78f6a9439fea7 , and was reintroduced in a later commit https://github.com/odoo/enterprise/commit/4575d3dfdbd0ccd9bf57bddbd35a89bd47c48798 to avoid the AttributeError. **Cause:** The computed field `pricer_display_price` is a type Char and and is non-stored was not being assigned a value inside the compute method. So ORM requires that records to be assigned a value in a compute method. **Solution:** To fix this, assign a default value to `pricer_display_price` inside the compute method to prevent the error. opw-4887318
This change removes an unstable automated test related to the website rental period interface. The affected customer-facing behavior was non-critical, and removing the unreliable test helps keep the overall release validation process stable.
Original PR description
## Version 18.0 saas-18.1 Non existing test from saas-18.2 ## Issue Commit 2ee876f9409b0ea4bc859d9629362e390c25f6e3 tried to fix a16a25b6023d2d48ad5c00853728c1498509b5a5 but did not solve indeterminism in the newly created test. Since the test validates a non-critical UI fix and introduces complex indeterminism, we choose to remove it to preserve stability in OE’s global test suite. runbot-229884
Code cleanup and technical improvements
This update replaces repeated logic with a shared check for early payment discounts in the accounting reconciliation flow. It keeps behavior aligned with the main Odoo codebase and reduces maintenance risk without changing day-to-day user workflows.
Original PR description
This is repeated code from what already exists in odoo community. OPW-4895365 See: [odoo/odoo#215615](https://github.com/odoo/odoo/pull/215615)