Friday, May 9, 2025
13 changes · master
Enhancements to existing features
Users can now build a pivot table in a spreadsheet directly from an Odoo model, without first opening or relying on an existing pivot view. This makes spreadsheet analysis more flexible and available for models that do not have a predefined pivot view.
Original PR description
With this commit, we allow the user to create a pivot from an Odoo model, without the need to go through a pivot view to insert it in odoo. It allows to create a pivot even if there is no pivot view in the model. Task-4128705
Spreadsheet pivot tables in Documents now support improved sorting, making it easier for users to organize and analyze business data. This helps teams quickly find patterns, compare values, and work more efficiently with reports.
Odoo now checks that payment provider notifications match the expected transaction amount and currency before processing them. This helps prevent incorrect payment, refund, or capture updates when provider data does not align with the original transaction.
Original PR description
After making a payment/refund/capture/... request to a payment provider, it sends back some notification data allowing to process the corresponding transaction in Odoo. The purpose of this change is to ensure that the amount and currency included in the notification data match the ones of the transaction. If there's a mismatch, an error is thrown and the transaction isn't processed. task-3797660
Resolved issues and error corrections
This fix corrects how AI chat sessions are closed when multiple records are processed. It helps prevent incorrect handling of conversations, improving reliability for users interacting with AI features.
Original PR description
Use record instead of self when looping on self
Miscellaneous changes
The error occurred because multiple `iap.extracted.words` records matched the search filter for `user_selected_box`, and the code tried to access `.word_text` directly on the multi-recordset, which expects a singleton. Error: `ValueError: Expected singleton: iap.extracted.words(35683, 35697)` Solution: - Added `('word_text', '=', text_to_send['content'])` to the search domain to ensure only matching record is returned. sentry-6547557298 Forward-Port-Of: odoo/enterprise#84624 Forward-
Original PR description
The error occurred because multiple `iap.extracted.words` records matched the search filter for `user_selected_box`, and the code tried to access `.word_text` directly on the multi-recordset, which expects a singleton.
Error:
`ValueError: Expected singleton: iap.extracted.words(35683, 35697)`
Solution:
- Added `('word_text', '=', text_to_send['content'])` to the search domain to ensure only matching record is returned.
sentry-6547557298
Forward-Port-Of: odoo/enterprise#84624
Forward-Port-Of: odoo/enterprise#83878Spreadsheet charts inserted from Odoo views now preserve the separate setting that controls where running totals start. This prevents charts from showing misleading cumulative results when users move them into spreadsheets.
Original PR description
We never took the 'cumulated_start' option of an Odoo chart into account and instead relied on 'cumulative' but the options are not linked neither one implied by the other. Task-4701303
Before, `l10n_ar_edi` had only live test cases. This means that if there is an error in a PR or forward port, no tests would catch it as the were marked `external_l10n` and not ran. Using both `l10n_ke_edi_oscu` and and `l10n_br_edi_pos` recent mock setup as an example, this PR aims to mock the soap requests sent in the module. Notes: - As of now this is only one individual test case. More tests will come as there is time, but having 1 will prevent errors from happening again. - Within th
Original PR description
Before, `l10n_ar_edi` had only live test cases. This means that if there is an error in a PR or forward port, no tests would catch it as the were marked `external_l10n` and not ran. Using both…
Before, `l10n_ar_edi` had only live test cases. This means that if there is an error in a PR or forward port, no tests would catch it as the were marked `external_l10n` and not ran. Using both `l10n_ke_edi_oscu` and and `l10n_br_edi_pos` recent mock setup as an example, this PR aims to mock the soap requests sent in the module. Notes: - As of now this is only one individual test case. More tests will come as there is time, but having 1 will prevent errors from happening again. - Within this module, when the first record within an EDI journal is created, it will try to pull the sequence from the database, and if it can't find a suitable last sequence, it will query the API. This means that any onchange on the first journal entry that will recompute the name or sequence leads to the `_get_last_sequence` function being called and making an API request as the sequence isn't stored in the database yet. The point of this appears to be convenience when transfering from another system to odoo and pulling the latest invoice number they had. The main downside of this feature is that creating the first record now has around 11 API calls returning the same value due to different onchanges on the record. The main calls come from `_compute_name` in the base account module but the rest are from other methods that use the sequence or call `_compute_name` (like `_onchange_l10n_latam_document_type_id`) As this PR is only intended to write tests for the module, the test file matches what occurs in the front-end but future PRs can look into if there are improvements that can be made on stable to simplify this. task-4714096 Forward-Port-Of: odoo/enterprise#84824 Forward-Port-Of: odoo/enterprise#83553
Here we don't really care about the state, we replaced it by just checking that there is only one payment and to the "agrolait" partner since it has a valid mandate. build_error-163134 Forward-Port-Of: odoo/enterprise#84005
Original PR description
Here we don't really care about the state, we replaced it by just checking that there is only one payment and to the "agrolait" partner since it has a valid mandate. build_error-163134 Forward-Port-Of: odoo/enterprise#84005
There's been quite a lot of refactoring of demo-data and stuff so now the setup may have been changed in the background Here we don't really care about the state, so we can replace it by just checking that there is 2 payments and to the "agrolait" partner and "china_export" partner build_error-163133 Forward-Port-Of: odoo/enterprise#84007
Original PR description
There's been quite a lot of refactoring of demo-data and stuff so now the setup may have been changed in the background Here we don't really care about the state, so we can replace it by just checking that there is 2 payments and to the "agrolait" partner and "china_export" partner build_error-163133 Forward-Port-Of: odoo/enterprise#84007
### Before this commit: - Dragging and dropping apps on the home screen did not reflect their new order until the page was refreshed. ### After this commit: - The home screen immediately displays the updated app order after a drag-and-drop, without requiring a page reload. Task: 4664362 Forward-Port-Of: odoo/enterprise#82752
Original PR description
### Before this commit: - Dragging and dropping apps on the home screen did not reflect their new order until the page was refreshed. ### After this commit: - The home screen immediately displays the updated app order after a drag-and-drop, without requiring a page reload. Task: 4664362 Forward-Port-Of: odoo/enterprise#82752
#### [FIX] account_accountant: reco wizard: exchange rate rounding In the related community commit we improved the reconciliation behavior with regards to exchange rate and rounding issues. See there for more details. For one of the tests there we manually created the write-off line with the correct amount. Here we add a test to check that the wizard computes the right amounts for the write-off line / entry. opw-4438542 #### [FIX] account_accountant: reco wizard: show company amou
Original PR description
#### [FIX] account_accountant: reco wizard: exchange rate rounding In the related community commit we improved the reconciliation behavior with regards to exchange rate and rounding issues. See there…
#### [FIX] account_accountant: reco wizard: exchange rate rounding In the related community commit we improved the reconciliation behavior with regards to exchange rate and rounding issues. See there for more details. For one of the tests there we manually created the write-off line with the correct amount. Here we add a test to check that the wizard computes the right amounts for the write-off line / entry. opw-4438542 #### [FIX] account_accountant: reco wizard: show company amount The reconciliation wizard may create a write-off line / entry. Roughly speaking this happens in case - the amount of the input lines does not sum to 0 - and the "Allow partials" option is not ticked The write-off line can be in foreign currency. Currently the wizard only displays the amount in foreign currency but not the amount in company currency. So currently the company currency amount can not be checked before reconciling. After this commit the wizard also displays the amount in company currency. opw-4623933 Forward-Port-Of: odoo/enterprise#84826 Forward-Port-Of: odoo/enterprise#82865
BUR-REE and inhouse id can not coexist in the xml scheme Forward-Port-Of: odoo/enterprise#84797
Original PR description
BUR-REE and inhouse id can not coexist in the xml scheme Forward-Port-Of: odoo/enterprise#84797
Now, before generating a return, we compute the deadline of that return. If the return is before the account opening date, we do not generate it. We also only keep return with a deadline within a year from now. In continuation of https://github.com/odoo/enterprise/pull/81569 Forward-Port-Of: odoo/enterprise#84655
Original PR description
Now, before generating a return, we compute the deadline of that return. If the return is before the account opening date, we do not generate it. We also only keep return with a deadline within a year from now. In continuation of https://github.com/odoo/enterprise/pull/81569 Forward-Port-Of: odoo/enterprise#84655