Daily updates from Odoo
Tuesday, January 27, 2026
19 changes · master
Enhancements to existing features
This update automatically populates employee sex and birthday information based on the NISS (Belgian National Identification Number). The 9th digit of the NISS determines sex, and the first 6 digits (YYMMDD) are used to calculate the birthday, handling century conversions automatically. This streamlines data entry and improves accuracy for Belgian HR records.
Original PR description
- Added an onchange to fill `sex` and `birthday` from `niss`. - 9th digit of NISS determines sex (even → female, odd → male). - First 6 digits of NISS (YYMMDD) determine birthday with automatic century handling. Task-5432128
This update clarifies the HR Payroll section by renaming the 'Personal Information' area to 'Statutory Information' and reorganizing the fields based on usage. This change enhances user experience and makes it easier to find relevant statutory data.
Original PR description
Purpose: - The purpose of this change is to improve clarity and usability by better reflecting the nature of statutory-related fields and organizing them in a more logical order. This PR includes: - Renamed the 'Personal Information' section to 'Statutory Information'. - Reordered fields within the Statutory Information section from most frequently used to least used for better readability and user experience. task-5452904
Resolved issues and error corrections
This update resolves an issue where users lacking specific access rights within Odoo could not submit VAT declarations through the Intervat module. By adding sudo permissions, this change ensures all users can successfully complete the submission process, regardless of their access level. This enhances user experience and compliance.
Original PR description
Add few sudo() for vat declaration, to be sure users without access rights to res.company or certificate.certificate can still make a submission. task-5470492 Forward-Port-Of: odoo/enterprise#105395 Forward-Port-Of: odoo/enterprise#103647
This update corrects an issue where FedEx labels were incorrectly displaying addresses containing special characters (like accents or non-English characters). The code has been updated to ensure all address components are converted to ASCII, resulting in accurate label formatting for all shipping addresses. This improves the reliability of shipments using FedEx.
Original PR description
Issue ----- Fedex does not handle special characters in addresses, so passing an address such as "Rue de Libération 15" will show as "Rue de Lib...ration 15" on labels. ----- Ticket: opw-5419724 Forward-Port-Of: odoo/enterprise#104979 Forward-Port-Of: odoo/enterprise#104265
This update resolves an issue where the tax code (9) was missing from Datev exports for expense payments using 19%I tax. The fix addresses a technical problem with how payment amounts are processed, ensuring accurate tax code reporting in the Datev data. This ensures consistent and compliant reporting to the accounting system.
Original PR description
Currently, when using 19%I tax in vendor bills, the tax code (9) is shown correctly in the BU-Schlüssel section of the datev export. This however is not the case for expense journal entries. Steps to reproduce: - With DE Company setup - Create an Expense as follows: - Included taxes: 19% I - Paid by: Company - Create report > Submit to Manager > Approve > Post Journal entries - Open General Ledger and export Datev Data Issue: Tax code will be missing from the exported entry. This occurs because, when processing payment move lines, amounts and accounts are aggregated, losing track of the source tax. opw-5388791 Forward-Port-Of: odoo/enterprise#105435 Forward-Port-Of: odoo/enterprise#102548
This pull request addresses critical errors identified during automated testing of the planning and timesheet grid modules. The changes fix timezone inconsistencies that were causing test failures, ensuring accurate reporting and scheduling functionality. Resolving these issues improves the reliability of the Odoo Enterprise platform.
Original PR description
Solves https://runbot.odoo.com/odoo/runbot.build.error/238011 https://runbot.odoo.com/odoo/runbot.build.error/238022 https://runbot.odoo.com/odoo/runbot.build.error/238023 https://runbot.odoo.com/odoo/runbot.build.error/238024
This update corrects a technical inconsistency where employee payroll settings were incorrectly marked as editable. The change ensures that fields marked as read-only in the version record are consistently read-only for the employee record, maintaining data integrity and preventing unintended modifications to payroll information. This resolves a prior issue flagged by automated testing.
Original PR description
There was an inconsistency on readonly for fields between version and employee. This removes "readonly=False" on employee for fields that are readonly on the version. Runbot error: 230983 Forward-Port-Of: odoo/enterprise#105414 Forward-Port-Of: odoo/enterprise#100575
This update corrects a problem where inputs weren't appearing on payslips. The fix adds the necessary domain to each relevant model, ensuring that inputs are correctly associated with payslips. This improves the functionality of the payroll system.
Original PR description
When trying to add Inputs for a payslips none appear as the domain was incorrect and only showed salary inputs for use in the employee. This is fixed in this commit by adding to the domain en each specific model. task-5486091 Forward-Port-Of: odoo/enterprise#105160 Forward-Port-Of: odoo/enterprise#103986
A bug preventing feeds from opening in the Social Twitter module has been resolved. This update addresses a technical incompatibility between the new QWeb engine feature and the existing view rendering process, ensuring feeds now open correctly. This resolves a disruption for users accessing social media feeds.
Original PR description
**How to reproduce:** - Install the social_twitter module - Enable Demo Mode - Open a Feed **Before this commit:** A traceback occurs and the feed fails to open. **Technical reason:** Introduced by this commit: https://github.com/odoo/enterprise/commit/99d583d5d6362504b4e838c7825fe9ca8d2b342c This commit introduced the parametric t-call feature for server-side QWeb engine. However, we use `ViewCompiler` to render views (here `KanbanCompiler`), which does not support parametric t-call, leading to the traceback. **After this commit:** The feed opens correctly with no traceback. Task-5707050
This update resolves a bug in the holiday scheduling Gantt chart that was introduced during a previous refactoring. The fix ensures that holiday intervals are calculated correctly, preventing inaccurate display of employee time off. This improves the reliability of the holiday calendar.
Original PR description
The bug was introduced following this refactor PR: https://github.com/odoo/odoo/pull/229706 This commit fixes the issue by computing correctly the interval with the correct type Runbot build error: https://runbot.odoo.com/odoo/runbot.build.error/238017 task-5788459
This update corrects a technical error in the l10n_au_hr_payroll module that was causing a warning message to appear incorrectly on the TFN dashboard. The fix ensures that the dashboard accurately reflects TFN status information, preventing potential confusion for payroll users. This resolves a data inconsistency.
Original PR description
Steps to reproduce: ------------------- 1. Install l10n_au_hr_payroll. 2. Enable multi-company and switch to an AU company. 3. Change an existing employee’s company to the AU company ([employee…
Steps to reproduce:
-------------------
1. Install l10n_au_hr_payroll.
2. Enable multi-company and switch to an AU company.
3. Change an existing employee’s company to the AU company
([employee created more than 28 days ago](https://github.com/odoo/enterprise/blob/7adab8bfdccf5f0e97eb2894e065b63ea8200d20/l10n_au_hr_payroll/data/hr_payroll_dashboard_warning_data.xml#L31)).
4. Under the payroll tab, set the TFN Status to:
"Employee applied for TFN but didn't receive it yet, less than 28 days ago".
5. Open Payroll.
Issue:
--------
A traceback occurred:
```
Error: NameError("name 'invalid_employees' is not defined")
```
Cause:
------
The evaluation code computes `warning_count` using
an undefined `invalid_employees` variable.
Solution:
---------
Define `invalid_employees` before using it to compute
`warning_count` and `warning_records`.
**NOTE:**
The [upgrade script](https://github.com/odoo/upgrade/blob/ed5bc3fd99ef6fba4bc7162934df36396ae9fc3f/migrations/l10n_au_hr_payroll/saas~18.4.1.0/end-migrate.py#L30) is already available from version 18 to 19.
opw-5459998
Forward-Port-Of: odoo/enterprise#103777This update prevents unnecessary email reminders for timesheet approvals. The system now only sends reminders when there are actual timesheets awaiting approval, ensuring users aren't overwhelmed with notifications. This change optimizes the approval workflow and reduces email clutter.
Original PR description
prevent cron from sending approver reminder if no timesheet assigned to approver Send the reminder email if: - there are timesheets to validate - AND if the user is set as either the manager or timesheet approver of an employee with timesheets left to be validated - OR if the said employee has no manager or timesheet approver set Task-3624610 Forward-Port-Of: odoo/enterprise#103911 Forward-Port-Of: odoo/enterprise#52355
This update fixes an issue where the 'Inventory Reason' entered during barcode inventory counts wasn't being recorded. Now, when completing an inventory count via the Barcode app, the specified reason is correctly saved and visible in the inventory history. This ensures accurate tracking of inventory adjustments.
Original PR description
## Issue When completing an *Inventory Count* from the Barcode app, the *Inventory Reason* requested to the user is not registered anywhere. ## Steps to reproduce 1. Install the *Barcode* app…
## Issue
When completing an *Inventory Count* from the Barcode app, the *Inventory Reason* requested to the user is not registered anywhere.
## Steps to reproduce
1. Install the *Barcode* app (`stock_barcode`)
2. In the *Barcode* app, click *Count Inventory*
3. Add a product and set a quantity for it
4. Click *Confirm* (do not scan to confirm)
5. Write an *Inventory Reason* and click *Apply Now*
6. Go to Inventory > Reporting > Moves History
- **The _Inventory Reason_ given in step 5 does not appear anywhere**
If the inventory adjustment is done through Inventory > Operations > Physical Inventory, the user can also provide an *Inventory Reason*, but this time, it will appear in the *Moves History* in the *Reference* (`stock.move.line.reference`) column.
## Cause
Since https://github.com/odoo/enterprise/commit/3efea75a88120519ef4be1a41c8faa7278bc332c, the value provided by the user is never passed to the Python side.
opw-5423934
Forward-Port-Of: odoo/enterprise#104763This update fixes a potential issue where the system didn't correctly process weight readings from the scale, particularly when using the 'read_once' action. Now, the system reliably handles all weight readings, ensuring accurate data capture and reporting for IoT scale data.
Original PR description
This commit adjusts the callback when a new weight is received from the scale to also handle the case where it is the response to the `read_once` action. In this case, the `status` key is `success`. Forward-Port-Of: odoo/enterprise#105324
This update fixes a bug where tax return names and status indicators weren't correctly translated when a new language was installed in Odoo. The solution automatically generates translations for all existing tax return names upon language installation, ensuring consistent and accurate translations across all supported languages. This improves the user experience for international users.
Original PR description
**Commit 1:** [FIX] account_reports: translation of account returns states Steps to reproduce: - Open the tax returns - Set an account opening date to generate some returns - Add another language to…
**Commit 1:** [FIX] account_reports: translation of account returns states Steps to reproduce: - Open the tax returns - Set an account opening date to generate some returns - Add another language to the database and select it -> The states of the returns (the little bubble in the kanban cards) aren't translated even though the translation is present in the pot and po files. **Commit 2:** [FIX] account_reports: translation of date in returns title Steps to reproduce: - Have 2 languages on the db - Generate the tax returns by going to Accounting/Tax Returns and set the opening date - Switch to the second language -> The period displayed in the name of each return isn't translated **Commit 3:** [FIX] account_reports: translate account returns name after lang installation Steps to reproduce: - Generate the tax returns by going to Accounting/Tax Returns and set the opening date - Install another language -> The names of the returns aren't translated in the new language. Solution: When installing a new language, generates the translation of the title for all existing returns task-5421659 Forward-Port-Of: odoo/enterprise#102559
This update ensures that new partners created during shared sign requests automatically use the signer's name instead of their email address. This improves data consistency and makes it easier to identify signers within the system. It resolves an issue where new signers were created with only their email as a name.
Original PR description
Version: - saas-18.2 Steps to reproduce: - Create a shared sign request. - Open the shared signing link and complete the signature process. - During signing, a new partner gets created for the signer if not already exists. Before: - When the user signs the shared sign request and a new partner is created, the partner name is not set and email is used as name. After: - Now, when a user signs a shared sign request and a new partner is created, the system automatically sets the partner name using the signer name. task-5776339 Forward-Port-Of: odoo/enterprise#105271 Forward-Port-Of: odoo/enterprise#104869
This update ensures that LNA (a key technology) is consistently used for IoT devices across all Point of Sale systems, including Kiosks. Previously, LNA was only active in the POS, limiting functionality. This change improves the overall performance and reliability of IoT-enabled Kiosk POS operations.
Original PR description
Before this commit, LNA was being used for IoT devices in the POS but not in the Kiosk when `point_of_sale.use_lna` was enabled. After this commit, LNA will also be enabled for IoT devices in the Kiosk. task-5874663 Forward-Port-Of: odoo/enterprise#105520 Forward-Port-Of: odoo/enterprise#105460
This update enables users to create returns for previously archived accounting periods without needing to reactivate or overwrite existing archived returns. This provides greater flexibility in managing returns and simplifies the reporting process. A new test case has been added to ensure the functionality works as expected.
Original PR description
Archived returns are ignored when manually creating returns, allowing a new return to be created for the same period without reactivating or overwriting the archived one. Also a test case has been added for the same task-5440965 Forward-Port-Of: odoo/enterprise#102928
This update fixes a visual inconsistency in the Helpdesk dashboard by extending the conditional formatting and aligning border styles to match other Odoo dashboards. This ensures a more uniform and professional appearance for users accessing the Helpdesk data.
Original PR description
## Description - The Top Customers pivot shows 10 rows, but the conditional format covered only 9. Extend the CF range so the last row is formatted. - Adjust border ranges so the helpdesk dashboard matches the styling used in other dashboards. Task: [5448434](https://www.odoo.com/odoo/project/2328/tasks/5448434) Forward-Port-Of: odoo/enterprise#103793 Forward-Port-Of: odoo/enterprise#103019