Daily updates from Odoo
Friday, July 17, 2026
7 changes · saas-19.4
Enhancements to existing features
Peruvian e-invoicing now includes the product classification codes required by SUNAT's upcoming validation rules. This helps businesses avoid rejected e-invoices for affected goods when the new requirements take effect.
Original PR description
SUNAT is updating its validation rules 2026-08-01, adding three mandatory annexes (25.1, 25.2, 25.3) to Product Catalog N25. E-invoices for these goods are rejected when the required UNSPSC code is not available in the database. Most of the required codes already exist and are active. The rest are handled here: two missing UNSPSC codes were added to the shared catalog, while the fourteen codes that exist but are inactive and the SUNAT-only code 11111111 (which is not part of the UNSPSC standard) are activated from the Peru localization instead. Doing the Peru-specific part in the l10n_pe_edi install hook and upgrade script, the way l10n_mx_edi and l10n_ke_edi_oscu do for their own codes, keeps these activations out of databases that do not use the Peruvian localization. Task-6366907 Forward-Port-Of: odoo/enterprise#124200 Forward-Port-Of: odoo/enterprise#123577
The journal creation wizard in Accounting now supports navigation with keyboard arrow keys. This makes the setup flow easier and faster to use, especially for users who prefer keyboard-based navigation or need improved accessibility.
Original PR description
This commit aims to allow for navigation through the journal create wizard via keybaord arrows. Related Odoofin PR: https://github.com/odoo/odoofin/pull/502 task-5796200 Forward-Port-Of: odoo/enterprise#105541
Bank reconciliation now highlights draft statement lines in blue, making them quicker to identify during review. This helps users distinguish unfinished items at a glance and reduces the chance of overlooking draft entries.
Original PR description
This commit will put the text in blue when the statement line is in draft to be able to see quickly which lines are in draft. task-6327308 Forward-Port-Of: odoo/enterprise#124418 Forward-Port-Of: odoo/enterprise#121775
The payment form no longer shows the Payment Identifier field because it does not provide useful information for users. This keeps the payment screen cleaner and helps users focus on relevant payment details.
Original PR description
- The Payment Identifier field has been permanently hidden from the payment form view, as it does not provide actionable or useful information to the end user. community pr - https://github.com/odoo/odoo/pull/266072 task- 6237870 Forward-Port-Of: odoo/enterprise#118183
Following the introduction of role-based activity assignments, this commit reinforces the feature with test coverage and frontend cleanups. Key additions and improvements: - Backend Testing: Added unit tests covering edge cases, including user archiving reassignments, role deletion constraints, and dynamic role/user computations during activity scheduling. - Frontend Testing: Introduced Hoot tests to validate the systray "To Assign" counter and the assignment flow within the Acti
Original PR description
Following the introduction of role-based activity assignments, this commit reinforces the feature with test coverage and frontend cleanups. Key additions and improvements: - Backend Testing: Added unit tests covering edge cases, including user archiving reassignments, role deletion constraints, and dynamic role/user computations during activity scheduling. - Frontend Testing: Introduced Hoot tests to validate the systray "To Assign" counter and the assignment flow within the Activity Assign popover. - UI Consistency: Replaced hardcoded inline styles in the Activity Assign popover with standard Odoo UI utility classes. - JS Architecture: Centralized thread retrieval logic into the frontend Activity model for better encapsulation and component decoupling. Related to Task-6292889 (https://github.com/odoo/odoo/pull/269609) Task-6197665
Test lints should be deterministic so retrying them doesn't make sense. While lints are not the slowest, pylint can take 10~15mn in later branches, and with retrying that's half an hour (and some) to get a failure, which is all that in wasted staging and build time. Forward-Port-Of: odoo/odoo#276600
Original PR description
Test lints should be deterministic so retrying them doesn't make sense. While lints are not the slowest, pylint can take 10~15mn in later branches, and with retrying that's half an hour (and some) to get a failure, which is all that in wasted staging and build time. Forward-Port-Of: odoo/odoo#276600
Move French e-invoicing technical statuses out of the main invoice UI and into the chatter. The PPF status is kept available in debug mode for troubleshooting, while regular users get a concise chatter summary with the PA status, PPF status, and any returned errors. Duplicate Lifecycle XML attachments are no longer posted in the chatter. Task-6273270 Forward-Port-Of: odoo/odoo#276770 Forward-Port-Of: odoo/odoo#269465
Original PR description
Move French e-invoicing technical statuses out of the main invoice UI and into the chatter. The PPF status is kept available in debug mode for troubleshooting, while regular users get a concise chatter summary with the PA status, PPF status, and any returned errors. Duplicate Lifecycle XML attachments are no longer posted in the chatter. Task-6273270 Forward-Port-Of: odoo/odoo#276770 Forward-Port-Of: odoo/odoo#269465