Monday, May 26, 2025
18 changes · saas-18.3
Enhancements to existing features
The tax return dashboard now presents return deadlines more clearly and adjusts the Tax Return button styling when there are no pending returns. This makes it easier for users to understand what needs attention and reduces visual emphasis on actions that are not currently needed.
Original PR description
improves the visual of the kanban card of the return journal by specifying clearer date deadlines for returns, and making the "Tax Return" button secondary if not more returns to do at the moment. task-4792156
Resolved issues and error corrections
The Dutch SBR tax report now handles cases where no closing entry exists without crashing. This keeps report generation stable after changes to the tax return process.
Original PR description
After the introduction of the new tax return process, `None` may now be returned as a closing entry, instead of an empty `recordset`. The SBR report may traceback if no closing entry is found.
Miscellaneous changes
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
Original PR description
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
ESG Initiative pages now keep the correct web address instead of showing a generic tasks link. This prevents crashes when users copy the link to another browser or enter and leave Studio, making the ESG workflow more reliable.
Original PR description
Have esg_project installed Got to ESG => Act => Initiatives Check the url Before this commit, the url was /odoo/tasks. This posed a number of issues: - Copying this URL in another browser crashed because the context of this action was lost - Entering then leaving studio crashed too, for the same reason. After this commit, the path of the action is correct and reloading it in another browser works correctly. runbot-error-198568
The test process for importing French FEC accounting files now reads the full file every time, avoiding occasional failures with larger files. This improves build reliability without changing user-facing functionality.
Original PR description
The JS unit test of the FEC parser was having a flaky build error because for reading files, the test was using `.getReader().read()` which would read only one chunk from the stream, causing incomplete files to be processed for large files. This commit makes the unit test use `response.arrayBuffer()` instead to guarantee the processing of the complete files all the time. build_error-161014
A display issue in accounting reports was fixed so the submission date now appears as expected in the Kanban view. This helps users quickly see when returns were submitted without opening each record.
Original PR description
The submission date is never visible due to incorrect record access in Kanban view. used `record.date_submission.raw_value` Instead of incorrect direct usage.
Importing a Winbooks ZIP file with empty data files no longer causes an error. This prevents accounting users from being blocked when an export contains no partner records to import.
Original PR description
Currently, an error is produced when importing a **Winbooks** `.zip` file that contains empty `.dbf` data files. **Steps to reproduce:** - Install the `accountant`, `l10n_be` and…
Currently, an error is produced when importing a **Winbooks** `.zip` file that contains empty `.dbf` data files. **Steps to reproduce:** - Install the `accountant`, `l10n_be` and `account_winbooks_import` module. - Change the default company to **BE Company CoA**. - Navigate to accounting settings and Under **Accounting Import** click to **import** button. - Click **Import WBK** button and upload [this](https://drive.google.com/file/d/1wsLin2kOvlZvl0HcrzUafgRxPOVxPrcS/view?usp=sharing) file. **Error:** `AssertionError` Here, an error occurs because `partner_data_dict.values()` at [1] returns an `dict_values` object, which may be empty. This value is passed directly to `ResPartner.create(...),` but the ORM method requires a list or tuple, by an assertion added at [2]. [1] - https://github.com/odoo/enterprise/blob/9d51f5171b3c2478599dde1ce991c90fa6fed32b/account_winbooks_import/wizard/import_wizard.py#L126 [2] - https://github.com/odoo/odoo/blob/6ef8565053352e4f679d26032e5485474fda62ce/odoo/orm/models.py#L4309 This commit resolves the issue when files are empty and no partner data is available for import. Sentry - 6611894804
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
Original PR description
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
Original PR description
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
This was green before this commit, matching the community badge color. Enterprise is red, which is the prettiest and most well-known color for badge, but due to being unavailable in bundle it was shown as green rather than red. Discuss public page also lacked it, which this commit fixes too. Forward-Port-Of: odoo/enterprise#86378
Original PR description
This was green before this commit, matching the community badge color. Enterprise is red, which is the prettiest and most well-known color for badge, but due to being unavailable in bundle it was shown as green rather than red. Discuss public page also lacked it, which this commit fixes too. Forward-Port-Of: odoo/enterprise#86378
Related to https://github.com/odoo/odoo/pull/210767 Forward-Port-Of: odoo/enterprise#86045 Forward-Port-Of: odoo/enterprise#85952
Original PR description
Related to https://github.com/odoo/odoo/pull/210767 Forward-Port-Of: odoo/enterprise#86045 Forward-Port-Of: odoo/enterprise#85952
**Steps to reproduce:** - Install `sale_commission_linked_achievement` module - Enable Commissions in settings - Go to Sales > Commissions > Commissions - Group By Sales Team - Error `psycopg2.errors.UndefinedFunction: operator does not exist: text = integer` is triggered **Issue:** When generating a raw query with a untyped `NULL` value (`NULL AS team_id`) in a `WITH` subquery, PostgreSQL infers the type as `text` (instead of default `unknown`) when the clause is done. This leads to a
Original PR description
**Steps to reproduce:** - Install `sale_commission_linked_achievement` module - Enable Commissions in settings - Go to Sales > Commissions > Commissions - Group By Sales Team - Error…
**Steps to reproduce:**
- Install `sale_commission_linked_achievement` module
- Enable Commissions in settings
- Go to Sales > Commissions > Commissions
- Group By Sales Team
- Error `psycopg2.errors.UndefinedFunction: operator does not exist: text = integer` is triggered
**Issue:**
When generating a raw query with a untyped `NULL` value (`NULL AS team_id`) in a `WITH` subquery, PostgreSQL infers the type as `text` (instead of default `unknown`) when the clause is done. This leads to a comparison error when joining results during the `group_by` operation.
`ON ("sale_commission_report"."team_id" = "sale_commission_report__team_id"."id")`
Explanation in PostgreSQL source code:
```
* If all the inputs were UNKNOWN type --- ie, unknown-type literals ---
* then resolve as type TEXT. This situation comes up with constructs
* like SELECT (CASE WHEN foo THEN 'bar' ELSE 'baz' END); SELECT 'foo'
* UNION SELECT 'bar'; It might seem desirable to leave the construct's
* output type as UNKNOWN, but that really doesn't work, because we'd
* probably end up needing a runtime coercion from UNKNOWN to something
* else, and we usually won't have it. We need to coerce the unknown
* literals while they are still literals, so a decision has to be made
* now.
```
This can be reproduced manually by doing :
```
WITH example AS (
SELECT NULL AS team_id
)
SELECT pg_typeof(team_id) FROM example;
pg_typeof
-----------
text
(1 row)
```
**Fix:**
Explicitly cast the `NULL` value to the proper type using `NULL::INTEGER` to ensure it is treated as an integer during the comparison.
The issue was introduced here : https://github.com/odoo/enterprise/commit/80beef2077c3b4fa7ee6e20dd2f9400a7d1d2273
And, as the `sale_commission_linked_achievement` will be removed, as well as the `Sales Team` grouping, it should disappear with this : https://github.com/odoo/enterprise/commit/b1e41f9b23aa62bfd6f9be1feb1059b3507f2ce5
opw-4765421
Forward-Port-Of: odoo/enterprise#85399
Forward-Port-Of: odoo/enterprise#85097Issues: i) When coming from another app (Fleet, Project, etc.), the control panel does not correctly display the subfolders. ii) The “All” folder should always be displayed. Technical Reason: i) Correctly set folder_id as False for documents whose parent folder is inaccessible, ensuring a clean and accurate folder hierarchy in the search panel. ii) It was intended, add a condition when coming from other modules 'All' should not display. After this commit: i) Correctly
Original PR description
Issues:
i) When coming from another app (Fleet, Project, etc.), the control panel
does not correctly display the subfolders.
ii) The “All” folder should always be displayed.
Technical Reason:
i) Correctly set folder_id as False for documents whose parent folder is
inaccessible, ensuring a clean and accurate folder hierarchy in the
search panel.
ii) It was intended, add a condition when coming from other modules 'All'
should not display.
After this commit:
i) Correctly display folders in hierarchy in a search panel when coming from other modules.
ii) 'All' folder should always be displayed.
Task-4669259
Forward-Port-Of: odoo/enterprise#84244PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86
Original PR description
PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86213
* Hide smart buttons when there are no elements and include `in process` payments to the collections smart button. * Consider all payments linked to a mandate as Collections not only the ones have journal entries * Log in the payment chatter the inclusion/exclusion of the payment in a batch. * Validate only in process payments task-4531618 Forward-Port-Of: odoo/enterprise#86006 Forward-Port-Of: odoo/enterprise#80494
Original PR description
* Hide smart buttons when there are no elements and include `in process` payments to the collections smart button. * Consider all payments linked to a mandate as Collections not only the ones have journal entries * Log in the payment chatter the inclusion/exclusion of the payment in a batch. * Validate only in process payments task-4531618 Forward-Port-Of: odoo/enterprise#86006 Forward-Port-Of: odoo/enterprise#80494
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward
Original PR description
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward-Port-Of: odoo/enterprise#84692
…tems When using OSS, the user has to put the OSS tag on the product. This test ensures the OSS tag is well propagated from the product to the accounting items representing the invoice line plus the generated tax lines. task_id: 4789153 Forward-Port-Of: odoo/enterprise#85859 Forward-Port-Of: odoo/enterprise#85381
Original PR description
…tems When using OSS, the user has to put the OSS tag on the product. This test ensures the OSS tag is well propagated from the product to the accounting items representing the invoice line plus the generated tax lines. task_id: 4789153 Forward-Port-Of: odoo/enterprise#85859 Forward-Port-Of: odoo/enterprise#85381
In this commit we fix the website_sale_renting_select_wrong_period tour that can cause undeterministic errors. Forward-Port-Of: odoo/enterprise#83700 Forward-Port-Of: odoo/enterprise#83568
Original PR description
In this commit we fix the website_sale_renting_select_wrong_period tour that can cause undeterministic errors. Forward-Port-Of: odoo/enterprise#83700 Forward-Port-Of: odoo/enterprise#83568