Daily updates from Odoo
Wednesday, December 24, 2025
8 changes · master
Resolved issues and error corrections
This update fixes a calculation error in the product reporting module for Peru (l10n_pe). The initial product value was incorrectly set to zero, leading to inaccurate out-move reporting. This change ensures that product values are correctly calculated, reflecting the actual cost and improving reporting accuracy.
Original PR description
Since we create a product value with the initial cost of the product we need to adapt this test. Since it creates the product during the setup at date of today. It will register the current value of the product as 0. When you deliver it will take the current cost so 0. Thus the out move won't have any value. Forward-Port-Of: odoo/enterprise#102791
This update strengthens our point-of-sale testing process by ensuring that ticket generation tests accurately simulate real-world scenarios. The tests now correctly initialize tickets and validate them against printer models, leading to more reliable test results and improved product quality. This addresses a previous issue where tests were not fully representative of the actual ticket generation workflow.
Original PR description
Previously, ticket-generation tests relied on manual render calls, bypassing initialization logic and missing key method flows. This update refactors the test utilities to mimic real-life execution: tickets are now initialized via the main generation methods, and the final printed ticket is validated through the printer model. Task-5391327 Related: https://github.com/odoo/odoo/pull/238824
This update improves the customer experience by adding the delivery OTP directly to the receipt. Previously, the receipt only displayed the delivery address, creating confusion for customers. This change ensures customers have immediate access to the OTP needed for delivery.
Original PR description
Before this commit: --------- - Delivery OTP was not shown on the receipt. - Receipt only displayed delivery address without any OTP. After this commit: ------------------- - Display “Delivery OTP ” below the delivery address on the receipt. Task-5048040
This update fixes a minor inconsistency in the documentation for our phone system features. The previous documentation incorrectly referenced a method that was never actually used. This change ensures the documentation accurately reflects the current codebase, improving clarity for our support team and developers.
Original PR description
A mention to `_voip_get_phone_field` appeared in [1] but this seems to never have existed. In any case, `_phone_get_number_fields` was used by the codebase in the end and should thus be the one mentioned. [1]: https://github.com/odoo/enterprise/commit/52b3065993c41c6b7c65dda586a66fdd865b3afd Forward-Port-Of: odoo/enterprise#102804
This update fixes an issue where opening invalid account return checks could display all `account.move.line` records, even when only one or zero matching records existed. The change ensures that the correct number of records are displayed, preventing unnecessary data loading and improving reporting accuracy.
Original PR description
Before this PR, opening invalid records from account return checks could show all `account.move.line` records when there were 0 or 1 matching record(s). Technical Reason: In `_get_records_action` domain is only applied when there are multiple records, so without a domain, all records are opened. With this PR, the domain is passed through the method arguments, and also action will be none if there are no records. task-5427746 Forward-Port-Of: odoo/enterprise#102424
This update corrects a previous change that incorrectly included legal reserves in the Belgian Balance Sheet reports. This change was unnecessary as legal reserve requirements have been removed since 2024. This reversion ensures accurate reporting for Belgian businesses.
Original PR description
In #95062, the BE Balance Sheet was changed to include Legal Reserves. However, since this is not needed since 2024, this change can be reverted. no-task Forward-Port-Of: odoo/enterprise#102766
This update fixes a security vulnerability where Portal and Internal users could create private knowledge articles without the necessary permissions. The fix ensures that users only have access to create articles when they have the appropriate 'Create' access rights, improving data security and control. UI changes have also been implemented to hide creation buttons for users without the correct permissions.
Original PR description
How to Reproduce : 1. Remove 'Create' access on the 'Knowledge Article' model for Portal and Internal users. 2. Now log in as a Portal. 3. Try to create a new private article. 4. Log in as an…
How to Reproduce :
1. Remove 'Create' access on the 'Knowledge Article' model for Portal and
Internal users.
2. Now log in as a Portal.
3. Try to create a new private article.
4. Log in as an Internal user.
5. Try to create a new private article.
Both Internal and Portal users can still create private articles even after
'Create access' is removed.
Article creation logic in `knowledge.article` was bypassing the usual access
rights because of `sudo` (mainly to add the creator as a member, since creation
rights on the member model are not granted). This allowed users to create
private articles even without create access.
This commit introduces:
1. Model-level access check in `create`. Sudo the creation of articles only when
the user has create rights.
2. UI imp to hide the '+' button in the sidebar and the `New` button in
the topbar when the user doesn't have create access.
3. New test cases to verify that model-level access rights are respected when creating an article.
4. Removed 'create=1' from article embedded list view as it was always displaying 'New' button
irrespective of create rights.
Now it displayed based on create rights.
task-4916280
Forward-Port-Of: odoo/enterprise#102299
Forward-Port-Of: odoo/enterprise#93034This update ensures that inactive accounts are no longer included in reports, aligning with a change in how inactive status is tracked within the system. Previously, the system incorrectly displayed inactive accounts, which has now been resolved to improve report accuracy and data consistency. This change was made to streamline reporting processes.
Original PR description
In replacing the deprecated field with the special `active` field the account_codes prefix engine no longer displays values for accounts that are inactive.
This disables the active test in:
- computing the domain for accounts
- auditing the value (since the domain is `('account_id.code', 'in'...)`
opw-5226153
Forward-Port-Of: odoo/enterprise#101540
Forward-Port-Of: odoo/enterprise#100885