Friday, August 1, 2025
23 changes · saas-18.4
Enhancements to existing features
This update prepares the Guatemala localization for a future electronic invoicing module. It allows specific test tax IDs for Guatemalan companies and adds a fuel-related accounting entry needed for local compliance workflows.
Original PR description
related enterprise PR: https://github.com/odoo/enterprise/pull/84036 Forward-Port-Of: odoo/odoo#221276 Forward-Port-Of: odoo/odoo#205863
Employee version dates now appear in familiar local formats, such as "Jan 1, 2000" in the US and "1 janv. 2000" in French. This makes HR information easier to read and more consistent for users in different regions.
Original PR description
Version dates should be in the format "Jan 1, 2000" for the US, "1 janv. 2000" for FR, etc. Task: 4879285
This update adds automated tests for several Point of Sale data models, including orders, order lines, categories, and presets. These tests help catch regressions earlier and improve confidence in future POS changes without altering day-to-day user workflows.
Original PR description
Add hoot tests for POS models including `pos_order`, `pos_order_line`, `pos_category`, and `pos_preset`. task-id: 4945821 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#220344
This update adds automated checks for Enterprise point of sale behavior to help ensure key customizations keep working as expected. It reduces the risk of regressions in point of sale configuration, store, and preparation display flows during future updates.
Original PR description
This commit adds hoot tests for the overriden methods of point_of_sale in the pos_enterprise module. taskId: 4945820 Forward-Port-Of: odoo/enterprise#90758
Resolved issues and error corrections
This fix ensures IoT device communication keeps the correct session information when using long-polling or fiscal data module flows. It helps prevent session-related connection issues for serial devices, improving reliability without changing user workflows.
Original PR description
As we now provide the session_id from the action method, we need to also provide it on the overridden method of the serial driver. In addition, as this id is not provided inside of the data object using longpolling, we need to add it manually to the dictionary.
Documentation and clarification updates
This change records that GitHub user shawkialaddin has signed the Odoo Individual Contributor License Agreement. It supports legal compliance for contributions and does not change any product functionality.
Original PR description
Description of the issue/feature this PR addresses: Sign the Odoo Individual Contributor License Agreement (CLA) for GitHub user shawkialaddin. Current behavior before PR: CLA not signed. Desired behavior after PR is merged: CLA signed and recorded in doc/cla/individual/ under shawkialaddin.md. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221157
The stock report now treats tiny rounding differences in quantities as zero when calculating average cost. This prevents misleading, extremely large unit costs from appearing and gives users more accurate inventory valuation information.
Original PR description
## Before this commit: Opening the stock report displays gigantic unit cost in some cases, when the sum of the valuation's quantity is near zero but not exactly, due to float arithmetics. For example, if the total quantity is 1e-15 and the total value is $0.01, the average cost will display $10000000000000 instead of $0. ## After this commit: Use `float_is_zero` to correctly detect zero-ish quantity. opw-4869588 Forward-Port-Of: odoo/odoo#221062 Forward-Port-Of: odoo/odoo#218671
Website translation mode now shows a single warning when users click content that cannot be translated. This avoids confusing duplicate notifications and makes the editing experience cleaner.
Original PR description
Since [1], when clicking a non-translatable element in translation mode, the notification was sometimes shown multiple times due to event bubbling. This commit stops the click event from propagating, ensuring the notification is only triggered once. [1]: https://github.com/odoo/odoo/commit/41e341177611cf69d1bd61e66a809510c22cc1b7 Forward-Port-Of: odoo/odoo#221241
Creating a parent task directly from an existing task now automatically assigns it to the same project. This keeps project task lists consistent and avoids extra manual cleanup for users managing task hierarchies.
Original PR description
Before this commit, when the user creates a parent task on the fly in the list view of tasks or even in the form view of task, the parent task creates does not have the project of the task by default. This commit adds the project of the task as default value for the new parent task when the user creates a parent task in the parent_id field. Steps to reproduce the issue ---------------------------- 0. Install project. 1. Go to Projects > All tasks. 2. Show the parent task field. 3. Edit the parent_id field in the list view of an existing to create a new parent task. 4. Go to form view of the parent task Expected Behavior ----------------- The parent task should have the same project than the task in which we create the parent task. Current Behavior ---------------- The parent task created has no project set by default. task-4781342 Forward-Port-Of: odoo/odoo#220995 Forward-Port-Of: odoo/odoo#209434
This fix lets Odoo disable image transformation controls in places where they do not work, such as PDF reports. It helps avoid users applying visual changes that would be ignored when documents are generated.
Original PR description
Problem: In some contexts, such as reports, the `transform` option is not needed or applicable. For example, `transform` is not supported by `wkhtmltopdf`, so any applied transformation is ignored. Solution: Introduce the ability to disable the `transform` option when needed. opw-4809761 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#220670 Forward-Port-Of: odoo/odoo#218352
Checkbox updates in task descriptions are now saved correctly when users leave the task using breadcrumbs. This prevents completed checklist items from being lost and improves reliability in the Project app.
Original PR description
Problem: In the Project app, when a task's description contains checkboxes and you check an item, then navigate back using breadcrumbs, the change is not saved. Cause: Breadcrumb navigation triggers a `blur` event to save the content. However, if the editable is not focused and you click on a checkbox, it doesn’t focus the editable. As a result, clicking away does not trigger `blur`, and the change is lost. Solution: Since `<li>` elements are not focusable, we programmatically focus the editable when toggling a checkbox. If it was already focused, we preserve the current selection. Steps to reproduce: - Add checkboxes to a task description - Save - Mark one checkbox as checked (editable remains unfocused) - Navigate back using breadcrumbs - Open the same task again -> The checkbox state is not saved opw-4922375 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219891
Website form fields now keep their default values after editors move the field or change its visibility. This prevents accidental loss of preset form data while building or updating website forms.
Original PR description
Problem: When changing the default value of a field, then modifying its position and visibility, the field loses its default value. Cause: Setting a default value assigns the `value` attribute to the…
Problem:
When changing the default value of a field, then modifying its
position and visibility, the field loses its default value.
Cause:
Setting a default value assigns the `value` attribute to the field's
input element. However, after re-rendering with `_renderField`, the
HTML `value` attribute is lost. As a result, when
`_computeWidgetState` called with `selectAttribute` as method name, it
fails to retrieve the value because there is no HTML `value` attribute
on the input.
Using `t-att-value="field.value"` will lead to `value` attribute loss
during owl rendering, this is an owl bug but this fix is to work around
it until it is globally fixed.
Solution:
use `t-attf-value="#{field.value}"` instead of
`t-att-value="field.value"`
Steps to reproduce:
- Add a form
- Select any input field
- Set a default value
- Change the field's position
- Change the field's visibility
-> The default value is lost
opw-4902544
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#220047Task quick creation now correctly recognizes one, two, or three priority markers typed with the shortcut syntax. This lets project users set the intended priority immediately when creating tasks, reducing follow-up edits and improving task triage.
Original PR description
Issue:
------------
Currently, when creating a task using the shortcut, it is not possible to set multiple priority levels.
Fix:
---------
With this commit, users will be able to set multiple priority levels (up to 3) when creating a task using the shortcut syntax.
Supported priority levels:
-----------------
- 1 star: task1 @admin #high !
- 2 stars: task1 @admin #high !!
- 3 stars: task1 @admin #high !!!
Steps to Reproduce:
--------------
- Install the Project module.
- Go to the Project app.
- In the Kanban view, create a task using the shortcut.
- Paste the following into the task name field:
`task1 @admin #high !!!`
task-3935867
Forward-Port-Of: odoo/odoo#209656Renaming form field labels on website forms now preserves conditional visibility settings that depend on those fields. This prevents fields from unexpectedly losing their show/hide rules when editors update labels, keeping published forms working as intended.
Original PR description
Steps to reproduce: - Drop a Form snippet - Add a text field named "Field A" - Add a text field named "Field B" - Add a conditional visibility on "Field B" that relies on "Field A" - Add a text field named "Field C" This PR ensure renaming a field label won't broke conditional visibility logic due to incorrect name comparison. The code was escaping `entry.name` using `CSS.escape()` before comparing it with `conditionFieldName`, which is a raw string (e.g., comparing "Field\\ A" with "Field A").
The voice and video settings now handle cases where microphone permission is missing during the audio sensitivity test. Instead of showing an unexpected error, users see a clear notification, reducing confusion during setup.
Original PR description
**Before this PR:** When you click on the `Test` Audio Sensitivity button in the voice & video configuration it would throw traceback if host doesn't have microphone permission which wasn't handled and was being displayed as an Uncaught Error. **This PR** handles this traceback and displays a toast notification. Task-4966597 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221187
Fixed an issue where opening dropdowns or popovers from certain links could trigger an error screen. Popovers now close safely when browser history changes, improving stability during normal navigation and menu use.
Original PR description
Steps to reproduce: - Open any popover that contains an anchor tag with href="#". - The anchor should trigger another popover (like a drop-down). - This causes a trace-back to appear. - Currently…
Steps to reproduce: - Open any popover that contains an anchor tag with href="#". - The anchor should trigger another popover (like a drop-down). - This causes a trace-back to appear. - Currently reproducible with drop down components. Issue: - Clicking the anchor updates the browser’s history state, which triggers a popstate event. - Popovers use a hook to automatically close themselves based on how events propagate. - This hook relies on a callback, which can either be a simple `() => true` or something more complex that checks the event target. - The same callback is being used for popstate events, but those events come from the window and don’t include a meaningful target. - So when the callback tries to access the target, it crashes and raises a traceback. Solution: - One option could be to have a separate handler for navigation events that directly closes popovers, without relying on `onClickAway`. - But since even href="#" causes a state change, handling it separately isn’t ideal. - Fortunately, our router already detects when an anchor triggers a state change and avoids a full reload. - So now, when we detect a genuine state change from a popstate, we emit a custom event. - That event lets us close all open popovers safely, without depending on a missing or invalid event target. Issue from commit: https://github.com/odoo/odoo/commit/51455ce7a2eda29c26070c57b1123de4e3a55372 task-4969369
This fix ensures website editor labels and helper text that appear in dynamic fields are included in translations. It helps multilingual websites show consistent translated text in areas such as SEO dialogs, theme options, and snippet builders.
Original PR description
In OWL templates, translatable attributes (like `title` or `placeholder`) are not exported if set with `t-att-`. In such cases, we need to use a translatable string in JS.
The French VAT return export now places repayment requests from grid 26 in the correct XML field. This prevents reimbursement amounts from being omitted or reported in the wrong place when submitting the VAT return electronically.
Original PR description
The French VAT report line for grid 26 ("Repayment of credit requested on form n°3519") uses code `box_26_external`, but the XML generator only mapped `box_26` to the `JB` tag.
As a result, the reimbursement amount was missing or incorrectly placed in the XML file.
This commit maps `box_26_external` to `JB` to ensure the correct tag is used when the user fills in grid 26.
opw-4931275
Forward-Port-Of: odoo/enterprise#90940The CRM Enterprise activity test was updated to match the current two-step loading process for activity actions. This helps ensure CRM activity views continue to open reliably and include both active and inactive records where expected.
Original PR description
The crm activity action is now loaded in two steps Also check that the domain gets `active in [true, false]` added while we're here See linked community pull request task-4951716 Forward-Port-Of: odoo/enterprise#91038 Forward-Port-Of: odoo/enterprise#90762
Studio no longer offers image transformation options for report PDFs, because those changes are not supported when PDFs are generated. This prevents users from applying visual edits that would not appear in the final PDF output.
Original PR description
Problem: Image transformations are not applied in generated PDFs because they are not supported by `wkhtmltopdf`. Solution: Disable image transform options when rendering reports to ensure expected output and avoid unsupported behavior. Steps to reproduce: - Open any report in Studio - Add an image - Apply a scale transformation - Generate a PDF preview > The image transform is not applied in the generated PDF opw-4809761 Forward-Port-Of: odoo/enterprise#91073 Forward-Port-Of: odoo/enterprise#89952
This fixes a small accidental extra letter introduced in the Belgian POS certification code. The change helps keep the point-of-sale certification behavior clean and avoids confusion from an unintended code typo.
Original PR description
odoo/enterprise#90532 added a letter by mistake, this commit removes it.
This fix prevents an error when users add mentions from the full message composer. It improves reliability of AI-assisted discussion features by handling cases where conversation context is not available.
Original PR description
**Purpose of this PR:** Handled mention suggestions with optional chaining as thread is absent in MentionList. since we are using suggestions without thread in full composer. Forward-Port-Of: odoo/enterprise#91432
Nanas Systems Sdn. Bhd. has added its corporate Contributor License Agreement documentation. This confirms the company has completed the legal requirement needed to contribute to Odoo.
Original PR description
Description of the issue/feature this PR addresses: Signing of CLA by Nanas Systems Current behavior before PR: CLA has not signed Desired behavior after PR is merged: Nanas Systems signed CLA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218719