Friday, September 5, 2025
19 changes · master
Enhancements to existing features
The employee view now shows contract information more clearly by hiding unhelpful placeholder labels and visually flagging expired contracts. This helps HR users quickly spot contract status issues without extra clutter.
Original PR description
- Hide the "Indefinitely" label - Hide "No Contract" values - Highlight contracts in red when the end date has already passed - Remove vertical padding from the <footer> section task-5030504
Journal Items now visually highlight overdue due dates in red when the item has not been reconciled. This helps accounting users quickly identify entries that need follow-up and reduces the chance of missed overdue items.
Original PR description
Current behavior before PR: In the Journal Items list view, all entries show their due date (date_maturity) in the same way. Even if the due date has already passed and the item is not reconciled, there is no highlight to warn the user. Desired behavior after PR is merged: After this change, the Journal Items list view will show the due date (date_maturity) in red (decoration-danger) when the due date is earlier than today and the item is not reconciled. This makes it easier for users to quickly see which journal items are overdue. Enterprise PR: https://github.com/odoo/enterprise/pull/92877 task-5026396 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Several country-specific accounting localizations now explicitly include the shared electronic invoicing component needed for Peppol tax category and exemption data. This helps those countries manage required invoice information consistently without adding extra country-specific bridge modules.
A configuration setting for extracting invoice tax lines is being moved into the core Accounting app. This prepares the feature to be managed more centrally and supports future work after the release freeze.
Original PR description
[IMP] account: move extract single line to account This commit move the field extract_single_line_per_tax from the module account_invoice_extract to the module account This is done before the freeze to complete the task after task-5047859
Invalid PDF files in Mail attachments are now detected and given a generic unknown-file thumbnail instead of repeatedly trying to generate a preview. This reduces unnecessary processing and prevents broken or slow attachment previews for users.
Original PR description
Before this PR, we would try to create a thumbnail for an invalid PDF file every time they are loaded. This PR detects invalid PDFs and assigns the "unknown" icon as a thumbnail. task-5062174
This update adds internal safeguards so timesheet-related screens can better handle users leaving list or kanban views. It also allows the timesheet tab to be hidden in specific situations, helping keep task screens focused when timesheets are not needed.
Original PR description
## [IMP] web: add hooks in kanban view ## [IMP] web: whitelist some modules for linting task-4284216
Cambodia EMV QR payment settings now show the correct Proxy Type choices. This lets users select the appropriate Bakong account type instead of seeing an empty selection, improving setup accuracy for QR payments.
Original PR description
- Added missing `available_field` for "Proxy Type" field's `dynamic_selection` by setting `country_proxy_keys`. - Previously had no selection. Now it has "None","Bakong Account ID (Corporate Merchant)", and "Bakong Account ID (Solo Merchant)" Task-5054800
Companies using Peppol can now store additional information returned by the Peppol service without requiring future database changes. This helps Odoo adapt faster to new service details, improve the user experience, and respond to incidents more easily while also tracking when the information was last updated.
Original PR description
Add a JSON field on res.company to store freeform metadata returned by the Peppol server. This allows new keys to be added over time to improve UX or handle incidents without schema changes. The IAP endpoint returning this metadata should be additive-only. Also track the last update time. task-4498045
Manufacturing users adding by-products to a Bill of Materials will now see new entries placed at the bottom of the list instead of the top. This makes the ordering more intuitive and reduces small workflow annoyances when maintaining production recipes.
Original PR description
**Description of the issue/feature this PR addresses:** - New BoM by-products were always added to the top, which isn't convenient. Therefore, `editable` was modified to add to the bottom instead. Task: 5016519 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Payroll menu now appears only for users who have both employee and contract-related access. This keeps payroll navigation hidden from people who only need employee contract access, reducing confusion and limiting visibility to the right audience.
Original PR description
as the contract menuitem is thier in the employees app it is not needed to have access to the payroll until you get access on the work entries. - Make the payroll menu appear only when a person has both contract and employee groups. Task: 4543411
The departure holiday attest wizard now shows only employees with a recorded departure reason, making the selection process clearer and less error-prone. Guidance about remuneration has been moved to the net amount help text, so payroll users can find the explanation directly where it is needed.
Original PR description
- Update wizard UX by limiting employees on those who have departure_reason set. - move the remuneration explination to the help of the net amount Task: 4582758
The Belgian payroll accounting test suite was updated to align with the newer public holiday model. This helps keep payroll validation reliable as holiday handling changes, reducing the risk of regressions in Belgian payroll accounting.
Original PR description
Task: 4791808
Carousel titles have been updated so dashboard content is presented more clearly and consistently. Related spreadsheet document tests were adjusted to keep quality checks aligned with the updated behavior.
A setting related to how invoice extraction groups tax lines has been moved from the invoice extraction area into the core accounting module. This prepares the system for future work while keeping the business behavior unchanged for users.
Original PR description
[IMP] account_invoice_extract: move extract single line to account This commit move the field extract_single_line_per_tax from the module account_invoice_extract to the module account This is done before the freeze to complete the task after task-5047859
Mandatory personal information fields in salary contract forms now show an asterisk next to their labels. This helps applicants and employees quickly see which details must be completed, reducing confusion and incomplete submissions.
Original PR description
Added a '*' next to personal information field labels when they are marked as mandatory (`is_required`). Task ID: 5033319
The checkout testing flow was updated to match a recent address selector redesign. This helps keep automated quality checks reliable without changing the customer-facing checkout experience.
Original PR description
During the redesign of the address selector, the "Add address" button was moved out of `o_portal_address_row`. This commit updates the test accordingly. task-4904868 Requires: - https://github.com/odoo/odoo/pull/220610
IoT device records can no longer be reassigned from one IoT box to another by users. This helps keep printer and device registrations consistent now that each IoT box maintains its own detected device records.
Original PR description
Now that we register printer records on every iot box (even if they are already detected by another iot box), we prevent users from moving devices from an iot box to another.
Updates several Latin American localization features to read document usage directly from invoices and invoice lines rather than journals. This keeps reporting and electronic invoicing behavior accurate now that the setting is calculated dynamically.
Original PR description
The aim of this commit is to use the l10n_latam_use_documents field directly
from account.move{.line} instead of the related journal_id.
It is necessary since it is now a computed field..The Sign app has been updated to prepare for sending signature requests through multiple delivery channels in the future. This groundwork should make it easier to expand how customers and employees receive signing invitations without changing the current signing flow.
Original PR description
This PR prepares the sign module for future support of sending sign requests through multiple channels. task-4985322
Original PR description
Peppol countries need to be able to define data for the `ubl_cii_tax_category_code` and `ubl_cii_tax_exemption_reason_code` fields defined in `account_edi_ubl_cii`. These countries don't have specific `l10n_xx_edi` modules, they all use `account_peppol` for sending invoices. Also, `account_edi_ubl_cii` is already auto-installed. So, to define data for those fields, instead of making useless bridge modules, we make `account_edi_ubl_cii` a dependency of those locs. task-none