Wednesday, July 23, 2025
13 changes · 17.0
Resolved issues and error corrections
This fix makes an automated website test wait for an image to finish loading before checking it. It reduces random test failures and helps keep the website module's quality checks stable without changing customer-facing behavior.
Original PR description
The goal of this commit is to avoid potential undeterminism that could occur in the `drop_404_ir_attachment_url` test (introduced by [this commit]). Before this commit, an error was thrown if the image was not loaded at the time the test checks the `naturalWidth` and `naturalHeight` property of the image. This could lead to undeterministic error as nothing ensures that the image is loaded at that time. To solve the problem this commit first waits for the image to be loaded before accessing the `naturalWidth` and `naturalHeight` property of the image. Side note: even if the source of the image is of type `data:` it is not directly loaded. [this commit]: https://github.com/odoo/odoo/commit/fbc6a697c1adf67ee8a90c49b0150d6ca170e081 task-4931144
Saving a blog post after removing all content no longer triggers a system error. Instead, the editor detects the empty content and shows a clearer validation message, helping users avoid failed saves and reducing support noise.
Original PR description
Currently an error occurs when we try to save a blog post with no content. Steps to replicate: - Install the `website_blog` module. - Navigate to the website, go to the Blogs section, and create a…
Currently an error occurs when we try to save a blog post with no content. Steps to replicate: - Install the `website_blog` module. - Navigate to the website, go to the Blogs section, and create a new blog. - Click to open the newly created blog. - Remove any existing content (e.g., placeholder text like 'Start Typing...'). - Type `/column` and click on the 2-column option. - Click on the columns that appear — you’ll see a delete icon. - Delete all the columns, click Save and check the terminal. Error: `ParserError: Document is empty` The error occurs when all content in the blog is deleted, resulting in empty HTML content. During saving, `html.fromstring(lang_value)` [1] is called with `lang_value` being effectively empty, which leads to a `ParserError`. [1] - https://github.com/odoo/odoo/blob/28c3b9cf10488536dce5a4927fdbe8fcd6e5a839/addons/web_editor/models/ir_ui_view.py#L126 This commit fixes the problem by catching the `ParserError` and raising a `ValidationError` when the HTML content is empty. sentry-5081806749 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an extra error from appearing when the mail plugin cannot download an image for a newly detected company. Instead of crashing while recording the failure, the system can log the issue properly, making the process more reliable for users.
Original PR description
When logging a failed image download for a new company,
A traceback will appear.
[1]- https://github.com/odoo/odoo/blob/2317fec604907280aa89c52cfcaeb9adc30e5d04/addons/mail_plugin/controllers/mail_plugin.py#L360
https://github.com/odoo/odoo/blob/2317fec604907280aa89c52cfcaeb9adc30e5d04/addons/mail_plugin/controllers/mail_plugin.py#L342-L344
here, ``new_company_info`` is dictionary, but at [1] the code incorrectly accesses
``name`` as an attribute.
So, it will lead to the below traceback.
Traceback:
```
File "/home/odoo/src/odoo/addons/mail_plugin/controllers/mail_plugin.py", line 359, in _create_company_from_iap
_logger.warning('Download of image for new company %s failed, error %s', new_company_info.name, e)
AttributeError: 'dict' object has no attribute 'name'
```
sentry-6554480256
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThe web editor can now hide or disable image transformation controls in places where they do not work, such as PDF reports. This prevents users from applying formatting that would be ignored, reducing confusion and helping reports render more predictably.
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
This fixes an issue where certain website or report templates could omit an item when a conditional section appeared alongside a comment. The change helps ensure pages, emails, and reports render all expected content consistently.
Original PR description
Forward-Port-Of: odoo/odoo#212159
Monetary values shown in animated number widgets now use proper currency formatting instead of plain whole-number formatting. This makes CRM kanban figures such as recurring revenue clearer and more accurate for users.
Original PR description
Previously, the AnimatedNumber component only used formatInteger for all values, even when displaying monetary values in CRM kanban views. This led to incorrect formatting when the value was a…
Previously, the AnimatedNumber component only used formatInteger for all values, even when displaying monetary values in CRM kanban views. This led to incorrect formatting when the value was a currency Solution: - Add formatCurrency import from @web/core/currency - Modify the format method to check for props.currency - If currency exists, use formatCurrency with proper currency formatting - If no currency, keep using formatInteger as before With this change, monetary values in AnimatedNumber (such as MRR in CRM kanban) will be displayed with the correct currency format. Description of the issue/feature this PR addresses: Current behavior before PR: <img width="1911" height="888" alt="Screenshot 2025-07-18 at 9 09 06 AM" src="https://github.com/user-attachments/assets/fba5cdfc-c1a8-4ca1-ac5a-744f5ae56ffc" /> Desired behavior after PR is merged: <img width="317" height="329" alt="Screenshot 2025-07-18 at 9 11 01 AM" src="https://github.com/user-attachments/assets/8082e091-d643-4b34-85d3-510d2e992b47" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A sales test was adjusted to correctly reflect products invoiced based on ordered quantities. This helps prevent false build failures when localization and manufacturing features are installed together, improving reliability of automated checks.
Original PR description
steps to reproduce: 1- install l10n_ke_edi_oscu_mrp 2- run test test_discount_and_untaxed_subtotal changing the invoice policy to 'order' in the test refer to this PR for more details: https://github.com/odoo/enterprise/pull/90252 build_error-70728
Uploading attachments from the chatter in Documents no longer creates temporary progress cards or rows in the main kanban or list views. This keeps the workspace cleaner and avoids confusing users with upload indicators that should only relate to the chatter action.
Original PR description
Step to reproduce: - In Documents, open the chatter either on a folder or a document. - Upload an attachment through the chatter. - You will see the upload kanban card / list row showing the progression. There should be no visual in kanban/list views showing the progression. Task-4863051
This fix ensures the Indian GSTR1 report can be created during automated testing without being blocked by permission restrictions. It helps keep report validation reliable and prevents avoidable build failures for the India localization reports.
Original PR description
steps to reproduce: 1. Install l10n_in_reports module. 2. Run the test `TestReports.test_hsn_schema_change_gstr1_json`. this is required to avoid permission issues when creating the GSTR1 report in the test. build_error-223245 Forward-Port-Of: odoo/enterprise#89116
This fix updates CRM Enterprise test coverage to match a recent change where CRM activity actions load in two steps. It also verifies that archived and active records are included correctly, helping prevent regressions in CRM activity views.
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
Starshipit shipping requests now include the second address line when it is provided. This helps ensure delivery labels and carrier requests use the customer’s full address, reducing the risk of delivery issues.
Original PR description
Current behaviour: --- When using Starshipit, street2 is not included in the payload sent to the API. Expected behaviour: --- Street and Street2 should be both included if street2 is set, separated by a space. Steps to reproduce: --- 1. Install delivery_starshipit 2. Create starshipit Shipping Method 3. Create an Australian partner 4. Make sure street2 is set 5. Make a new sale order 6. Set the Australian partner 7. Set a product and click on "Add shipping" 8. Set starshipit as the method to use 9. Confirm and validate the delivery 10. Only the first street is sent opw-4907475
The Sign app now safely handles signature requests that are not in a shared state by leaving their share link empty. This prevents error messages when users or integrations view request details, improving reliability without changing normal signing workflows.
Original PR description
### Issue Commit [58425a0](https://github.com/odoo/enterprise/commit/58425a0022c79f2c45f23fdd5a5476d8c20a887e) introduced a new field `share_link` in `sign.request` that gets computed for requests…
### Issue Commit [58425a0](https://github.com/odoo/enterprise/commit/58425a0022c79f2c45f23fdd5a5476d8c20a887e) introduced a new field `share_link` in `sign.request` that gets computed for requests that are in the 'shared' state. However this compute method fails for requests not in the 'shared' state leading to a traceback error. This commit fixes it by setting the default as False for the sign.request records that do not have state='shared' so the traceback error is handled. This can be reproduced in v17 and above by: 1. Open any sign.request record that isn't in the shared state 2. Enable Developer Mode 3. Using the debug icon, click on view record data The traceback will be visible here which mentions that the compute method failed to assign It can also be re-produced by using an xml-rpc / json-rpc ORM call to search_read the sign.request records that does not have state = 'shared' ### Before https://github.com/user-attachments/assets/24c07f2a-2398-44b4-8969-30abb576876a ### After https://github.com/user-attachments/assets/e92b1212-5405-4b98-ba41-c81b2ac547d7 [opw-4864159](https://www.odoo.com/odoo/project/49/tasks/4864159) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Studio report editing now prevents image transformation options that cannot appear correctly in generated PDFs. This avoids misleading previews and helps users create reports whose PDF output matches expectations.
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