Thursday, August 14, 2025
7 changes · saas-18.4
Enhancements to existing features
Draft invoices no longer show outstanding credit or debit messages when the related payment widget is already hidden. This keeps the invoice screen consistent and reduces confusion for users reviewing invoices that are not yet posted.
Original PR description
Before this commit: --- Draft invoices can be reconciled with payments via the Bank Reconciliation screen, but the Outstanding Payments widget is hidden to avoid confusion. However, outstanding credits/debits messages were still displayed on draft invoices, leading to inconsistency. In this commit: --- Updated the form to hide outstanding credits/debits messages when the invoice is in draft, making the behavior consistent. Before: --- <img width="1258" height="298" alt="image" src="https://github.com/user-attachments/assets/376b3799-e721-4bd6-bf9c-cb56ca02bb5f" /> After: --- <img width="1258" height="257" alt="image" src="https://github.com/user-attachments/assets/374e33d5-c406-44c1-9309-40c124b45451" /> task-4987833 Forward-Port-Of: odoo/odoo#221680
Employee profile images now keep the same size while creating and after saving an employee record. This avoids a visual jump between the placeholder avatar and the default saved image, making the HR form feel more polished and consistent.
Original PR description
Problem: the employee image avatar placeholder when creating a new employee is larger than the default image when saving the record. This commit adds a max width for the employee avatar image so that the default image is the same size as the placeholder before saving the record. task-4879346 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The eInvoicing format dropdown now uses clearer, country-aware labels when configuring customer invoicing settings. This makes it easier for users to choose the right format without needing to understand technical names, reducing confusion across several localizations.
Original PR description
Renamed the selection labels for invoice_edi_format field to make them easier to understand based on the user's country context when choosing format inside customer's account tab. This improves the usability of the dropdown when selecting an eInvoicing format, especially for users in localizations where the technical name was unclear or confusing. 4889699 shzi Forward-Port-Of: odoo/odoo#220397
This update makes duplicating Italian electronic invoicing document types more user-friendly. Instead of immediately triggering an error because the copied record has the same code, the form view now helps users adjust the duplicate properly.
Original PR description
In https://github.com/odoo/odoo/commit/3e557745f16c33ab3c1b5984d6297913a8849024, we added a contraint to avoid same code. The "issue" with that is that the Duplicate option instantly raises the constraint. It's not really user-friendly. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222611 Forward-Port-Of: odoo/odoo#218933
This update adds standardized helper methods for finding employee contract versions and selecting the right contract for a date range. It helps HR-related features use contract data more consistently, reducing duplicate logic and the risk of inconsistent results.
Original PR description
Problem ---------- Normalize the way to retrieve contracts of employees Objective ---------- Create 2 helper functions : `_get_contract_versions` To retrieve for each employee, a list of versions recordset, one for each contract, ordered by date_version. Make the function flexible by adding date_range to filter the search. And additional domain option. `_get_contracts` It uses the previous function. To retrieve for each employee a single version recordset as contracts Add the option to retrive the first before date_start or latest version within the daterange task-4984245
Creating a payroll pay run is now quicker because users choose only the start date with a simple date picker instead of a date range popup. The end date is still calculated automatically and remains editable when manual adjustments are needed.
Original PR description
To ensure a smoother UX, the `daterange` widget has been replaced, as `date_end` is already calculated based on the selected `date_start`. Previous behavior: When creating a pay run and selecting `date_start`, a date range popup was displayed. This required two clicks, even though `date_end` was already auto-filled. New behavior: A simple date picker is used for `date_start`. The `date_end` remains editable so it can still be updated manually if needed. Task: 5005903
Network IoT devices will now have records even when another IoT Box has already detected them. This makes it easier to troubleshoot device ownership and understand which IoT Box is linked to each device.
Original PR description
We used not to create records for network IoT devices if they were already detected by another IoT Box on the database. This is making the debugging more complex, and doesn't make sense anymore as we show the IoT Box owning the device in many2x fields.