Friday, August 1, 2025
13 changes · saas-18.3
Enhancements to existing features
This update prepares the Guatemalan 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#205863
Resolved issues and error corrections
The stock report now treats tiny rounding leftovers 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
Documentation and clarification updates
This update records that GitHub user shawkialaddin has signed the Odoo Individual Contributor License Agreement. It supports Odoo's legal contribution process 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
Alerts shown when a recipient is missing an email address now remain visible instead of being covered by the recipient prompt. This makes the sending flow clearer and prevents users from missing important guidance.
Original PR description
## Before this commit When the user clicks the Send button and the partner does not have an email address, an alert message is raised. However, the recipient popover `(email input prompt)` appears above the alert, visually blocking it and breaking the expected `modal` behavior. <img width="1844" height="873" alt="image" src="https://github.com/user-attachments/assets/31585785-27d6-48d4-b64c-c88b5f9426d6" /> ## After this commit The recipient popover's `z-index` is adjusted so that it no longer overlaps alert messages. This ensures that alerts remain visible and unobstructed, preserving clarity in the UI and respecting the intended visual hierarchy. <img width="1736" height="764" alt="image" src="https://github.com/user-attachments/assets/9ff258b4-2072-4100-bcc4-b8420d5d1aa2" />
Fixed an issue where collaborator avatars could overlap the status bar buttons while scrolling long form content. This keeps important actions visible and makes collaborative editing smoother for users.
Original PR description
User avatars displayed in collaborative mode overlap with buttons when scrolling. This commit extends the statusbar to take the full width, independently of the sheet's one. Also, to avoid an ugly shadow when not scrolling, it only adds it when the scroll is actually performed. Steps to reproduce: - open a task with two users - write in the description in collaborative mode -> user avatars should be displayed - make sure the description is long enough for the sheet to scroll - scroll for one of the avatars to reach the sticky statusbar => overlap between the avatar and the statusbar task-4907797 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures invoice legal document retrieval consistently returns the expected data format, preventing errors in related download flows. It also improves support for downloading invoice documents across multiple file types, making document access more reliable for accounting users.
Original PR description
`_get_invoice_legal_documents` should, and is expected to, return a dict. however, if called with `filetype = all`, it returns, because of `_get_invoice_legal_documents_all`, a list which breaks calling code as they expect a dict not a list, and this part of the code is not used anywhere nor tested. - remove the line causing `_get_invoice_legal_documents` to return a list. - make `download_invoice_documents_filetype` work with multiple filetypes no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221267 Forward-Port-Of: odoo/odoo#220170
Clicking a non-translatable page element in website translation mode now shows the warning only once. This avoids duplicate notifications and makes the translation editing experience clearer for users.
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 prevents parent tasks from being created without project information and also avoids showing the parent task option for private tasks where it should not apply.
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
Task checklist items now keep their checked or unchecked state when users leave the task via breadcrumbs. This prevents lost updates in project task descriptions and makes checklist tracking more dependable.
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
This fixes an issue in the website form editor where a field's default value could disappear after changing the field's position and visibility. Businesses can now edit website forms with more confidence that preset form values will be preserved.
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#220047This fix corrects how the Accounting app calculates whether an invoice has outstanding amounts. It helps prevent incorrect invoice status information from being shown or updated, supporting more accurate accounting workflows.
Original PR description
We separated the compute method for the 2 fields. The override of the compute should not compute invoice_has_outstanding anymore.
The French VAT return export now places repayment amounts from grid 26 in the correct XML field. This prevents missing or misplaced reimbursement amounts 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#90940Nanas Systems Sdn. Bhd. has added its signed Contributor License Agreement documentation. This supports legal clearance for the company’s contributions to be accepted into the Odoo project.
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