Thursday, August 21, 2025
17 changes · 18.0
Enhancements to existing features
This change updates the sales spreadsheet field synchronization action. It appears to be a work-in-progress change with limited detail, likely affecting how sales-related spreadsheet fields stay aligned with business data.
Resolved issues and error corrections
This fixes instability in an automated test for public mail channels by making sure repeated test runs target the correct message. It helps reduce false build failures and improves confidence in the mail feature testing process.
Original PR description
This tour had many race conditions in the past and keeps having them. Some of them are actually due to the fact the tour is ran twice, but the selectors completely ignore this fact, leading to unexpected results. The message body is now updated before the second run to avoid confusion and the selectors are adapted to always target the message of the current run. Also remove the reload for emojis as they are showing immediately after being added. Also remove the useless comments that makes the test twice as long to read and to understand. https://runbot.odoo.com/odoo/runbot.build.error/230901
Message action buttons on log notes written by the current user now appear in the expected mirrored position next to the date. This makes the mail thread layout more consistent and easier to use.
Original PR description
**Purpose of this PR:** Fix the position of message actions on log notes authored by the current user. Messages authored by self appear on the right side of the thread. This PR mirrors the action placement logic so that, like messages from others (which show actions to the right of the date), self-authored messages show actions to the left of the date. Before: <img width="392" height="638" alt="image" src="https://github.com/user-attachments/assets/8b66c98f-3e00-47c8-abf3-ee62169ed499" /> After: <img width="392" height="638" alt="image" src="https://github.com/user-attachments/assets/d1a425da-fb0c-4793-a080-735286bc2bb9" /> task-[4689357](https://www.odoo.com/odoo/project/1519/tasks/4689357)
Product label reports now pass the selected currency in a safer way when calculating prices. This helps prevent incorrect prices from appearing on printed labels when templates include currency-specific pricing.
Original PR description
Description of the issue/feature this PR addresses: In product label reports, calling _get_product_price with positional arguments may lead to incorrect parameter binding (e.g. currency_id being interpreted as uom). This can cause wrong prices to be displayed in labels in some cases. Current behavior before PR: Some label templates pass currency as a positional argument. This may result in wrong prices being shown depending on argument order. Desired behavior after PR is merged: Label templates always pass currency as a keyword argument, ensuring correct price computation and preventing mismatches. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr My CLA signature is being added in this PR: https://github.com/odoo/odoo/pull/223312
This update fixes internal email-related tests so they pass consistently when an optional file detection library is present. It helps keep quality checks reliable across environments and reduces false test failures during maintenance.
Original PR description
Those tests are failing when python-magic is installed. Since 26f9c82b99 Odoo > saas-18.4 has this lib as a requirement and comes with appropriate fixes. This commit adapts some test from 17.0 up to saas-18.4 to also work when the python-magic lib is installed. Forward-Port-Of: odoo/odoo#223609
This fixes an editor issue where a line break could disappear after users pressed Shift+Enter and then Enter at the end of a paragraph. The change keeps the intended spacing visible, helping edited content match what users expect.
Original PR description
Problem: When at the end of a paragraph, pressing SHIFT+ENTER followed by ENTER creates a new paragraph, but the previous one loses its last line break. Cause: When splitting an element, the `<br>` at the selection point is moved to the newly created split element. However, to render an empty line visibly, two `<br>` elements are needed. Moving the existing `<br>` makes the last line break in the original paragraph invisible. Solution: In this special case, instead of moving the `<br>` at the selection point, insert a new `<br>` in the new element, preserving the visual line break in the original paragraph. Steps to reproduce: - Add a paragraph - Type some text, then press SHIFT+ENTER - Press ENTER to create a new paragraph -> The last line break in the first paragraph is lost opw-4987922 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221869
This fix ensures copied databases using the Greek EDI module are neutralized so they do not accidentally contact live external services. It helps support teams investigate issues on database duplicates without risking real customer or production interactions.
Original PR description
This commit adds the missing neutralization necessary for the l10n_gr_edi module introduced in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] odoo#203428
This fixes the listed external dependency for the LDAP authentication module. It prevents unnecessary warning messages during installation and reduces noise in nightly build checks.
Original PR description
The wrong package name leads to a warning at install time making unnecessary noise in nighlty builds.
Test builds no longer fail when URL parameters reference unavailable tests that are meant to be excluded. This keeps automated build checks stable across different add-on combinations while preserving useful information for developers when a requested test is missing.
Original PR description
Before this commit, URL test/suite IDs were warned in the console if they didn't match any test/suite registered by the test runner. This is an issue for Runbot which runs sub-builds with the same URL parameters regardless of the installed addons, which repeatedly fails such builds. This commit changes the warning to a regular log, so that these builds stop failing, while still allowing a developer to get the information that an ID has been removed/ignored. runbot [230082](https://runbot.odoo.com/odoo/runbot.build.error/230082) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The barcode app now handles completed manufacturing orders that have no by-products when opening the scrap action. This prevents an error screen and lets users continue the scrap workflow normally.
Original PR description
Issue ----- Trying to scrap a production through the barcode app gives the user a traceback. Steps to reproduce ----- - Have a done MO - Go to barcode and try to scrap it --> Traceback Cause ----- When preparing the context for the scrap window, we try to map the MO's byProducts. When there is no byProduct, we end up trying to apply a mapping on "nothing". ----- Ticket: opw-4792599
Fixes an issue where selecting a product variant could apply the subscription plan choice to an outdated dropdown during page updates. This helps keep subscription pricing choices reliable and prevents related automated checkout tests from failing intermittently.
Original PR description
The subscription plan selection gets removed and replaced (static template website_sale_subscription.SubscriptionPricingSelect) So the change of value occurs, but on the wrong select. This was happening as when changing the variant we will replace the plan_select in the widget with another template and since this will happen before the RPC set the plan_id that we are choosing as the default one we will actually have the old select option back on the dom to be selected. https://github.com/odoo/enterprise/blob/82593f9932e92800251d18453b0c73e5ce9b5ec0/website_sale_subscription/static/src/js/variant_mixin.js#L35-L41 We are setting the select option to the old one after replacing it. This commit introduces a delay to prevent the test to fail (which happened most of the time) runbot-error-110627
This fix ensures each country-specific Intrastat report uses only its own export data rules. It prevents one localization from accidentally altering another country's report data, improving reliability for compliance reporting.
Original PR description
Previously, it was possible for the _get_exporting_dict_data from a localization to change the data of another localization.
This update prevents the Point of Sale system from failing when it tries to read the amount of an order that is not available. It helps keep checkout and payment-related workflows more stable in edge cases.
Original PR description
Before this commit, accessing the order amount caused an error if the order was not defined. opw-5027426
The Sign app guided tour has been corrected so it works consistently when users add and complete a signature field. This prevents the tour from failing due to differences in saved signature data or previous tour activity, improving onboarding and testing reliability.
Original PR description
Fix `sign_tour`. How to reproduce: 1. Go to tours in Odoo 2. Look up sign_tour 3. Click testing ( If testing stops at Sign App, change search filters or archive sign all .request records so that the…
Fix `sign_tour`.
How to reproduce:
1. Go to tours in Odoo
2. Look up sign_tour
3. Click testing ( If testing stops at Sign App, change search filters or archive sign all .request records so that the following screen displays )
<img width="780" height="591" alt="image" src="https://github.com/user-attachments/assets/b164c224-0e3e-4dce-97e6-89848263e59e" />
4. tour fails!
---
First commit
The `sign_tour` was failing after the conversion of the `sign.Template` client action to OWL. The standard `drag_and_drop` tour helper can no longer be used for automatic tour testing because the drop target is inside an iframe whose content is managed by PDF.js.
This commit fixes the tour by utilizing the custom helper function, `dragAndDropSignItemAtHeight`, to programmatically simulate the drag and drop action.
---
Second commit
The step "footer.modal-footer button.btn-primary:enabled" assumes that the Signature Dialog opened from its previous step ("Sign It" navigation button).
However, the "Sign It" navigation button does not always open the dialog.
If signing user (res.users) already has "sign_signature" data, the data will be automatically filled in to the Signature input.
Otherwise, the navigation button will open the Signature Dialog.
Luckily, we can see whether user has "sign_signature" data or not by checking if the <input data-item_type='signature'/> node has "data-auto_value" attribute or not.
We now skip the step if data-auto_value is set for signature.
---
Third commit
If `sign.template_sign_tour` has sign request, it means that the template might have a sign item because the `sign_tour` tour adds the Signature sign item to the template. (If user followed the tour)
When we're copying the sign template to trigger the template tour, we should not copy the sign item. User will be guided to add the sign item during the tour.
---
Note:
ci/security needs to be overriden as it was done for https://github.com/odoo/odoo/pull/134793#issuecomment-1711440188
---
opw-4752794This update adds stable identifiers to Swedish bank clearing range data. It helps prevent duplicate records from being created during future upgrades, keeping bank data cleaner and upgrade processes smoother.
Original PR description
This commit adds id's to clearing range csv. This prevents re-importing the same objects when upgrading to 18.2.
Google Reserve booking updates now keep all existing slot details while adding party size information. This prevents malformed booking data from being sent back to Google, helping reservation updates work reliably.
Original PR description
The controller incorrectly modified the given "slot" to only contain the party size key. Instead, it should update the information to add this key next to the existing ones, and in turn return a properly formatted slot to Google. Task-3083812
A test user setup was corrected by removing an unnecessary timesheet approval permission. This prevents automated test failures in single-app environments where the timesheet app is not installed, improving release reliability without changing customer-facing behavior.
Original PR description
on the test `test_mrp_aa_employee_without_account_rights` the user was created with the group `hr_timesheet.group_hr_timesheet_approver` which is not needed and was causing the test to fail on Single app test as this module does not depend on hr_timesheet. This commit removes this group from the user creation. runbot-231137