Daily updates from Odoo
Wednesday, August 13, 2025
14 changes · master
Enhancements to existing features
The website’s button for moving from the public site to the backend now points to the updated /odoo address instead of the old /web address. This helps users land in the correct backend area and keeps navigation aligned with the current Odoo URL structure.
Original PR description
This commit changes the backend href from /web to /odoo, on the frontend to backend button.
The WhatsApp test tools now automatically clear prior message bus activity before checking new notifications. This reduces flaky or confusing test failures and makes future maintenance safer, without changing customer-facing behavior.
Original PR description
With this change, the `assertBus` context manager is now responsible for resetting the bus state before executing its code block. Previously, `_reset_bus ()` had to be called manually before assertBus in order to explicitly check the bus notification for the targeted test process. This was repetitive and error prone, as forgetting to reset could cause notifications from previous actions to leak into the current assertion, leading to confusing test failures. [Community PR](https://github.com/odoo/odoo/pull/222753)
Bank reconciliation matching rules now handle negative amount ranges more intuitively. Users can enter the lower and higher amounts in either order, reducing confusion and helping rules match transactions as expected.
Original PR description
Before this commit, when having the match amount in between with negative amount we had the min and max amount. Some user were confused that since the amount are negative the min and max need to be inverted. To solve that we rewrite the way the match amount were dealt to use a case when that will enable to have an in between that works in both ways (min, max and max, min) notask-id Forward-Port-Of: odoo/enterprise#91744 Forward-Port-Of: odoo/enterprise#91628
Resolved issues and error corrections
Fixed a layout issue in accounting reports where control panel filters could appear pushed to the right. The change keeps the settings button visible while allowing the filters to remain properly centered, improving usability and visual consistency.
Original PR description
Issues: - The control panel filters were appearing right-sided instead of being properly centered. This issue arose from a previous fix that added `flex-basis: min-content` to the breadcrumbs to ensure cog button visibility, but this caused the breadcrumbs to take excessive space and push filters to the right. Fix Applied: - Replaced `flex-basis: min-content` with `min-width: fit-content` on the breadcrumbs container. This maintains cog button visibility while allowing the breadcrumbs to use only the space they actually need, enabling the filters to center naturally in the remaining space. Task-4985129
This fix makes an automated barcode inventory test wait for the destination location update to appear before continuing. It reduces random test failures, helping keep stock barcode workflows stable during development and releases.
Original PR description
A non-deterministic error has been occurring across all versions starting from 18.0 when running the `test_split_line_on_destination_scan`. problem: The issue lies in one of the steps of the tour,…
A non-deterministic error has been occurring across all versions starting from 18.0 when running the
`test_split_line_on_destination_scan`.
problem:
The issue lies in one of the steps of the tour, where the destination location of the remaining quantity is changed from WH/Stock to shelf1 (LOC-01-01-00). Right after this change, the test proceeds to assertLineDestinationLocation. However, the test step was previously waiting for the presence of the .o_validate_page.btn-primary element — an element that is already visible before the destination location update is actually applied. As a result, the tour sometimes skips to the next step prematurely, without ensuring the location change has occurred, leading to test failure.
Fix:
We replaced the trigger .o_validate_page.btn-primary with a more reliable condition: waiting for an element containing the destination text .../Section 1 (.o_line_destination_location:contains(".../Section 1")). This ensures that the step only proceeds once the destination update has been reflected in the UI.
Runbot-145458
Forward-Port-Of: odoo/enterprise#92130
Forward-Port-Of: odoo/enterprise#91927The Argentina electronic invoicing test setup now stops retrying after a small number of failed connection attempts instead of looping indefinitely. This reduces unnecessary external connection attempts and makes test failures clearer and faster to identify.
Original PR description
In 18.0 and above test hasn't worked in months, half the time it fails because pretty much nothing works in it and half the time it's because it keeps looping on trying to set up the connection and failing (possibly because we're getting blacklisted due to how much spamming we do). For now restrict to just trying 5 times (per class since it's called from a `setUpClass`) with an exponential backoff. This may yet end up in removing the entire test directory as it doesn't seem like anyone cares. Forward-Port-Of: odoo/enterprise#92226 Forward-Port-Of: odoo/enterprise#92207
This change makes the automated accounting reports tour more reliable by using more precise steps during testing. It helps reduce false test failures, supporting smoother maintenance and more dependable release checks.
Original PR description
In this commit, we fix tour by using less generic triggers.
The Documents app button is now shown to internal users who can already access shared documents through other entry points. This makes access easier and clarifies that a full Documents User role is not required for documents shared with all internal users.
Original PR description
The app is accessible to all internal users via smart buttons and their portal already, showing the button is helpful in two ways: 1/ Easier access to the app, duh. 2/ Makes it explicit that you don't need to be a "Documents User" to have access to documents shared with all **internal users**, even those that are not documents user (that didn't have the app button available). In 18.0 so that new installations have it. Task-4889053 Forward-Port-Of: odoo/enterprise#92124 Forward-Port-Of: odoo/enterprise#90937
A stock barcode test now sets an email address for the admin user so quantity update notifications can be sent as expected. This helps ensure warehouse notification behavior is properly validated even when demo data is not available.
Original PR description
Updating the initial demand of a stock move notify the users. Without email address, the notification cannot be send. As the email address of the admin user is only fill in the demo data, this commit adds one specially for the test. runbot: 226778 Forward-Port-Of: odoo/enterprise#91103 Forward-Port-Of: odoo/enterprise#89722
The Cash Flow report now handles grouping by account codes consistently, preventing an error that could stop the report from loading in some configurations. This helps finance users access cash flow information reliably when account code fields are customized or present.
Original PR description
The term used by GROUP BY should be the same term in the SELECT, avoiding the posible error like: ERROR: column "account_move_line__account_id.code_store" must appear in the GROUP BY clause or be used in an aggregate function That appears when a column named account_code is created for the model account_move_line. opw-4963180 Forward-Port-Of: odoo/enterprise#91915
This fix ensures subscription effective dates set during order processing are properly written to the database. It prevents cases where the date could appear saved internally but be missing later, improving reliability for subscription records.
Original PR description
Since https://github.com/odoo/enterprise/commit/ff8e55ed83d4905584b7ea10b60ded0d7afbd0cf setting the effective date is done in a precommit hook. Problem, the precommit don't automatically flush. The value set in the cache may be never reflected in the database. Solution: Explicitly flush in the precommit hook Forward-Port-Of: odoo/enterprise#92283
Point of Sale orders in the Mexican e-invoicing flow now round totals using the currency's own precision. This prevents valid discounted orders from being blocked by small rounding differences during validation.
Original PR description
Issue: With specific prices and discounts, we can get an rounding issue that does not pass the Validation Error. Purpose of this PR: To round the amount total based on the currency's rounding precision to pass the check. Steps to Reproduce on Runbot: install pos, l10n_mx create products prices with 75.00 and 60.00 respectively. create discount 100% on order change decimal accuracy to 3, change tax to Include with Price create PoS order with products and apply discount receive ValidationError even though the amount total should be rounded to 0.0. opw-4944830 Forward-Port-Of: odoo/enterprise#92141
Features or functions removed from Odoo
Unused code was removed from Point of Sale and several related add-ons. This cleanup reduces maintenance overhead and helps keep the POS codebase lean without changing business-facing functionality.
Original PR description
- Remove dead code in POS and submodueles (`l10n_it_pos`, `pos_iot`, `pos_restaurant_appointment`, `pos_self_order_iot`, `pos_settle_due`, `pos_urban_piper`). task-id: 5006039 community PR: https://github.com/odoo/odoo/pull/222587
Code cleanup and technical improvements
This update renames an internal AI VoIP view identifier and label to match Odoo's coding guidelines. It does not change user-facing functionality, but helps keep the codebase consistent and easier to maintain.
Original PR description
Renamed view id and name according to the coding_guidelines: https://www.odoo.com/documentation/18.0/contributing/development/coding_guidelines.html#inheriting-xml