Daily updates from Odoo
Tuesday, May 5, 2026
35 changes · master
New functionality added to Odoo
This update introduces a preview of the DMFA report within the Odoo Enterprise application. This allows users to quickly review the report's formatting and content before generating the final report, improving accuracy and reducing potential errors. It's a small enhancement to the payroll reporting process.
Original PR description
Task: 6067446
Enhancements to existing features
This update adds more thorough tests for the longpolling functionality within Odoo Enterprise. Specifically, the tests now verify how the system handles network errors, ensuring a more reliable response when connectivity issues occur. This improves the overall stability and robustness of the IoT integration.
Original PR description
This commit adds tests for the `onMessage` method of the longpolling JS class, and in particular tests the recently added behaviour where the polling request returns an 'unreachable' result when a network error occurs.
This update automatically removes 'Request' documents when the related record (like a Lead) is deleted. Previously, these documents lingered uselessly after a record was removed, creating confusion. This change improves data cleanliness and efficiency.
Original PR description
Scheduling an "Upload Document" activity for a record (e.g., a Lead) creates a "Request" document that is linked to that record. Previously, the request document would remain after the record was deleted, leaving it meaningless without its related record. With this change, the request is automatically archived (moved to the Trash) when its related record is removed. Note that if a file has already been uploaded for the request, no further action is taken here: the fulfilled document request will be deleted if the record does not inherit from `documents.unlink.mixin` if we delete the record "owning" the attachment of the document; otherwise the document request will be moved to the Trash. Task-5259439
This update prevents students and PFIs from being assigned BIK (Bank Identification Numbers) that are not permitted under Belgian tax regulations. This ensures compliance with local tax laws and reduces the risk of errors related to incorrect BIK assignments.
Original PR description
Hiding the BIKs that cannot be given to students or PFIs. task-6172231
This update enhances the user experience by adding options to set date fields as read-only and control their alignment directly within the form view. This provides greater flexibility and accuracy when entering date information, streamlining data entry processes.
Original PR description
Before: - Read-only and alignment option was not available for date field in form view. After: - Read-only and alignment option is now visible for date field in form view. this will allows users to set date fields as read-only and control their alignment directly from the form view. task-6179970
This update adjusts the tax report handlers to align with recent changes in the tax tag system used within Odoo. This ensures accurate reporting of taxes, reflecting the latest tax regulations and improving the reliability of financial data. It's a necessary update related to a broader change in the tax tag definitions.
Original PR description
Before this pr: - The tax tags used in the report_grid_map in custom tax report handlers are codified. After this pr: - So now we are updating the report_grid_map according to the change in the tax tags. Related Com PR: https://github.com/odoo/odoo/pull/255802 Task-6008302
This update adjusts the COA and TB report templates to align with Mexican government reporting specifications. This ensures accurate and compliant financial reporting for Mexican businesses using Odoo Enterprise. The changes were made to improve consistency and meet regulatory requirements.
Original PR description
Reordered COA and TB attributes to be more according on what government expects on those reports task-5422228 Forward-Port-Of: odoo/enterprise#115374
Resolved issues and error corrections
This update eliminates a distracting popup message that appeared when opening the Point of Sale (PoS) module, specifically when reading scale weight data. The fix prevents a frustrating user experience and ensures smoother PoS operations. This resolves a minor usability issue.
Original PR description
This PR removes the unwanted popup "can't reach iot box on local network" before opening PoS when reading scale weight
This update prevents referral-only users from accessing the Reporting tab within the Referrals app. Access to this tab is now restricted to users with recruitment management permissions, streamlining the reporting process for authorized personnel. This change improves data security and usability.
Original PR description
This commit hides the Reporting tab in the Referrals app from users with referral only access rights, and only show it to users with recruitment access. TaskID-6133065
This update restores a previous system for tracking changes made to employee payslips. Now, when a user edits a payslip line, a detailed log is created showing all affected lines. This enhances transparency and simplifies auditing of payroll adjustments.
Original PR description
purpose: We want to reintroduce the same way of logging payslip lines changes as previously done by the removed payslip edit wizard - changed the log in chat to include all affected lines by the user's change task-id: 6144266
This update fixes a technical issue that previously displayed confusing error messages when generating tax reports. Now, users will receive a helpful message guiding them to set up a certificate if one isn't already configured, preventing tracebacks and improving the user experience. This ensures reports can be successfully submitted to authorities.
Original PR description
Description of the issue this commit addresses: When sending the tax report or ec sales list xbrl file via the wizard to the authority, if no certificate has been set, a traceback shows up. This happens because some processes try to use the certificate without checking its existence. Desired behavior after the commit is merged: When sending via the xbrl wizard, if no certificate has been set up, an error offering the user to go to the certificate set up shows up and no traceback. task-6065382 Forward-Port-Of: odoo/enterprise#115907 Forward-Port-Of: odoo/enterprise#112951
A small typo in the quality module caused newly created quality alert records to be incorrectly grouped as 'None'. This fix replaces the incorrect '&' character with the correct '|' character, ensuring records are properly assigned to their intended stages. This resolves a potential data grouping error.
Original PR description
Issue: ------- While adapting the 'Domain' in the PR https://github.com/odoo/enterprise/commit/07b34a2e927347ca5c839ec632808adb02703e1f there occurred a typo where '|' got replaced with the '&' and causing the records getting grouped in 'None' when creating. Solution: ------------ To replace '&' with '|' to get the records grouped under the correct stage. Steps to reproduce: ----------------------- 1. In v19.0, in quality module try to create a quality alert record. 2. Just like that the newly created record will be under 'None'. Reference Image: <img width="1105" height="407" alt="image" src="https://github.com/user-attachments/assets/4c9c33be-ec06-4f06-8245-54dbe4473bc0" /> OPW - [6074016](https://www.odoo.com/odoo/project/70/tasks/6074016) Forward-Port-Of: odoo/enterprise#113108
This update ensures our accounting system accurately reflects the latest Ecuadorian withholding tax regulations (Resolución N.º NAC-DGERCGC26-00000009) for 2026. The changes involve updating unit tests to align with these new tax percentages, ensuring compliance and accurate reporting.
Original PR description
In accordance with the implementation of the new withholding tax percentages according to "Resolución N.º NAC-DGERCGC26-00000009" for Ecuador, following internal implementation guidelines by TRESCLOUD. Unit tests are updated to be based on the new withholding percentages. BP #110343 Forward-Port-Of: odoo/enterprise#112957 Forward-Port-Of: odoo/enterprise#110712
This update fixes a validation error that occurred when creating correction payslips in Odoo. It ensures that each correction payslip is correctly linked to a structure, allowing for accurate payroll processing. This improves the reliability of the payroll system when adjustments are made.
Original PR description
Ensure `structure_id` is set when creating correction payslips to avoid validation errors. Group payslips by structure before creating pay runs for corrections/reverts, and set the payrun period from the minimum to maximum payslip dates. Fix condition in "Payslip period does not match payrun" to exclude correction payslips (they may span multiple months). task: 6089082 Forward-Port-Of: odoo/enterprise#115405
This update fixes an issue where copying a user also duplicated their assigned tasks, leading to shared task assignments. The change ensures that tasks are uniquely associated with each user, preventing conflicts and simplifying task management. This improves data consistency and reduces potential errors.
Original PR description
Duplicating a user also duplicates all their task assignments because task_ids on res.users is missing copy=False. The new user ends up sharing the same tasks in project_task_user_rel, so removing a task from either user affects both. Forward-Port-Of: odoo/enterprise#114270 Forward-Port-Of: odoo/enterprise#114028
This update adds logging of Amazon's unique request IDs for SP-API responses. Previously, this information wasn't captured, making it harder for support teams to troubleshoot issues with Amazon orders. This enhancement streamlines support investigations and improves order processing efficiency.
Original PR description
Each response from Amazon's SP-API includes a request identifier used by their support team for debugging. This identifier was not previously logged, making support investigations more difficult. Forward-Port-Of: odoo/enterprise#115929 Forward-Port-Of: odoo/enterprise#114483
This update resolves a crash that occurred when users attempted to fetch device information in the HR Attendance module. The issue stemmed from a missing server URL configuration, which has now been addressed by displaying a user-friendly error message prompting them to set the correct URL.
Original PR description
Version: - saas-19.3 Steps to reproduce: - Install the hr_attendance_zkteco module - Go to Settings → Device/Terminal - Click on “Fetch Terminal” Issue: - A traceback error occurs. Cause: - The server URL is not set in settings, so the server value is empty and causes an error. Fix: - Show a user error if the server URL is not configured, asking the user to set it before fetching the terminal. Task-6144254 Forward-Port-Of: odoo/enterprise#114561
This update ensures that 'Final Consumer' records are correctly created as individuals, not companies, within the Odoo system. The change was triggered by a recent update to how the 'is_company' field is calculated. The fix includes correcting test assertions to reflect this accurate creation process.
Original PR description
After changes on is_company field to be computed, Final Consumer was being created as a company. Although this is wrong, tests were not asserting correctly on how anonymous documents should be created. This commit fixes this by forcing the value to False and correcting the tests. task-6149751 Forward-Port-Of: odoo/enterprise#115560
This update resolves a minor issue in a test related to the HR payroll module's user interface. The change ensures the test accurately reflects updates made to the CSS styling, preventing potential errors in how the toggle field is displayed. This ensures consistent and reliable functionality for users.
Original PR description
Updates the `rule_selection_exclusive_toggle_boolean` test to account for the changes made in https://github.com/odoo/odoo/pull/262543. The test now correctly anticipates the widget sharing the same CSS rules as its base widget. task-3378044
A recent update to the Odoo Enterprise system introduced a new Dutch returns module (l10n_nl_returns) without the necessary translation files. This update corrects this issue, ensuring accurate and complete translations are available for users in the Netherlands. This prevents potential errors or confusion when using the module.
Original PR description
This [commit](a6a8d121bbf2044793df5211c5bdb18859a62152) introduced a new module in a stable version (19.0) without the required key in the `.weblate.json` file. This commit aims at fixing that to ensure translations are handled correctly. Forward-Port-Of: odoo/enterprise#115753
This update resolves a problem where payroll exports to the Mexican SAT were being rejected due to incorrect data formatting. Specifically, when a payslip only includes non-taxable payments, the system was including a 'TotalPercepciones' field that the SAT requires to be absent. This change ensures compliance with Mexican tax regulations.
Original PR description
When a payslip contains only OtrosPagos (no perceptions), the SAT rejects with NOM36 because TotalPercepciones must not exist per the nomina12 XSD. This is a valid scenario under LISR articles 93 and 94, where certain payments (e.g., viáticos, becas, fondo de ahorro patronal) do not constitute taxable salary income. Apply the same 'or None' pattern already used for TotalDeducciones, so format_float(None) returns None and the attribute is omitted from the XML. Forward-Port-Of: odoo/enterprise#115923
This update ensures that EC Sales Reports generated for Swedish companies are exported to KVR in whole numbers, as required by Swedish tax regulations. Previously, the reports included decimal values, which were incorrect for reporting purposes. This fix corrects the export process to guarantee accurate data transfer.
Original PR description
**PROBLEM** EC Sales Report in Sweden needs to be reported with integer values. **STEP TO REPRODUCE** 1. Install l10n_se 2. On the se company, create a invoice with lines with EU tax and confirm it. 3. Go to Accounting/Reporting/EC Sale List and export to KVR. 4. Notices the KVR uses numbers with decimals places. opw-6045289 Forward-Port-Of: odoo/enterprise#116056 Forward-Port-Of: odoo/enterprise#114292
This update resolves a technical issue preventing the IoT printer test button from functioning correctly. The fix corrects a coding error that was preventing the system from properly identifying the printer, ensuring the test print functionality now operates as intended.
Original PR description
In the refactoring in odoo/enterprise#113545, a mistake was made where the `printer.iot_device_id` was used instead of `printer.iot_device_id.id`, causing an error when calling `searchRead`. This commit fixes the issue by restoring `.id`. Forward-Port-Of: odoo/enterprise#115039
This update corrects a bug where closed Helpdesk tickets were sending out emails with the ticket's database ID instead of its reference number. Previously, the 'Ticket Closed' email template used the wrong identifier, leading to inconsistent references for customers. This change ensures all email communications accurately reflect the ticket reference.
Original PR description
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the…
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the "Helpdesk: Ticket Received" mail template; Observe that the correct reference (100) is used. (Open the full composer to use "Load template") 4. Now send a message using the "Helpdesk: Ticket Closed" mail template and Observe that it displays the database ID (e.g., 1) instead of the reference. Cause: ------ `new_ticket_request_email_template` uses the ticket reference(`object.ticket_ref`) correctly. https://github.com/odoo/enterprise/blob/d39e291ba89ad018ba6f5f9591d280a834822f27/helpdesk/data/mail_template_data.xml#L18-L19 However, the `solved_ticket_request_email_template` uses the database ID (`object.id`) instead of the actual ticket reference (`object.ticket_ref`), leading to inconsistent references in customer communications. related commit: 3ed5273 Solution: --------- Update `solved_ticket_request_email_template` to use `object.ticket_ref` instead of `object.id` opw-6087466 Forward-Port-Of: odoo/enterprise#115946 Forward-Port-Of: odoo/enterprise#113932
This update resolves an issue where the ECO list incorrectly showed related ECOs from child BoMs. The change ensures that the ECO smart button only displays ECOs directly linked to the current BoM, improving the user experience and data accuracy for BOM management.
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- Create a BoM (id=1):
- Create an ECO → This creates an archived BoM (id=2)
- Access BoM (id=2)
- Create another ECO → This creates an archived BoM (id=3)
- Go back to the original BoM (id=1)
→ The ECO smart button count is 1 (correct)
Click on it
Problem:
It loads all ECOs linked to both the parent and child BoMs. It should only display the ECOs directly linked to the current (parent) BoM.
opw-4653598This update fixes an issue where the Shopee account authorization process was failing when a shop already existed. Now, the system correctly reuses authorization tokens to fetch access tokens for multiple shops associated with an account, streamlining the onboarding experience for users connecting to multiple Shopee shops.
Original PR description
When authorizing a Shopee shop, a user has the choice to either connect to a Shopee Shop, or connect to a Shopee Account and grant access to multiple shops of the account. In the later scenario, the authorization code returned by Shopee OAuth should be used once to fetch the access tokens, and the tokens should be copied to all shops authorized by the account. However, when the shop already existed, the access token was fetched again, raising an error because the authorization code had already been used. opw-6166585 Forward-Port-Of: odoo/enterprise#116000
This update fixes an issue where the Belgian payroll system incorrectly parsed birthdates due to a 'numéros bis' format in the NISS number. The change normalizes the month value by using a modulo 20 calculation, ensuring accurate date recognition and preventing errors in employee records.
Original PR description
The NISS month field can be increased by 20 or 40 for "numéros bis". This caused invalid date parsing. Use modulo 20 to normalize the month before constructing the birthday. task-6144297 Forward-Port-Of: odoo/enterprise#114485
This update resolves a visual design problem in the Documents and Spreadsheet modules, specifically related to copy-paste functionality. The issue was caused by a change in the Odoo system (m3) that removed certain styling rules. This commit manually re-added the necessary Bootstrap classes to restore the original design appearance.
Original PR description
…h BS Because of m3, some rules have been deleted. This commit restores them by manually adding Bootstrap classes. Steps to reproduce: Here is a way to trigger a traceback - Open the browser console - Type: "odoo.__WOWL_DEBUG__.root.notification.add(new Set())" Forward-Port-Of: odoo/enterprise#116118
A recent update allowing report searching on the homepage caused a technical error (traceback) for users on the Indian Company setup. This fix addresses a problem with how the system retrieves report information, ensuring a smooth search experience. The change improves stability and usability for all users.
Original PR description
Steps to reproduce: 1. Install l10n_in_reports and switch to Indian Company. 2. Go to homepage and try to type something and search on the search box. A traceback will appear. Cause: In recent updates, it is now possible to search report varients through the search menu, so while fetching varients while preparing search results, this leads us to `_is_available_for` method. The cause lies in how `.get()` is being used. `_get_external_ids` returns `id: []` if no external id is linked to it, and here we do `external_ids.get(report.id, [None])[0]` and this will always give us [] if no external id is there. hence trying to access the 0th element causes traceback. This commit fixes that by safely evaluating to `[None]`. Forward-Port-Of: odoo/enterprise#114342
This update fixes an issue where the softphone tour wasn't functioning properly after a new user opened the softphone. The team adjusted the demo data to simulate a missed call, which now correctly triggers the tour to display the keypad tab as intended. This ensures new users have a smooth onboarding experience with the softphone.
Original PR description
Commit [1] made the softphone to show recent tab when there are missed calls. Commit [2] changed the demo data to contain 1 missed call. As a result, now when you open the softphone for the first time, you will see recent tab instead of the keypad tab before. This breaks the country_selector_tour which assumes you will see keypad tab when open softphone. [1]: c995b7df3fc6ff541dc65d8b28661ab03f4a8c08 [2]: f16faa029220ca7152289180c4de78783bab03be Forward-Port-Of: odoo/enterprise#116180
Features or functions removed from Odoo
This update removes the 'search knowledge article' button from the settings view. This simplification streamlines the user interface, making it easier for users to navigate and manage knowledge articles. This change improves overall usability and reduces potential confusion.
Original PR description
The "search knowledge article" button is no longer required in the settings view and has been removed to simplify the interface. task-6143234
This update removes a redundant color field from stage definitions within the Helpdesk, CRM, and Project modules. This change was implemented because the 'rotting widget' was used, rendering the color field unnecessary. This optimization improves system performance and reduces potential complexity.
Original PR description
We used the rotting widget in the stage field, so the stage color field is unused, as explained below in the commit. https://github.com/odoo/odoo/commit/cd9ed578803605550135cb6fd6d4c267b433abbc task-5485507
This update removes outdated code related to the 'Deferred' object within the AI module of Odoo Enterprise. This change is part of a larger task to improve code quality and maintainability. By removing these deprecated elements, the system becomes more stable and aligned with current best practices.
Original PR description
[Part of task-5262203](https://www.odoo.com/odoo/1519/tasks/5262203) Community: https://github.com/odoo/odoo/pull/262263
Code cleanup and technical improvements
This update streamlines how Odoo retrieves and manages mail data. The team has consolidated previous routes into a single, more efficient route, `/mail/store`. This change simplifies data fetching and allows for better management of writeable data parameters, ultimately improving performance and stability.
Original PR description
This refactor merges the two routes `/mail/action` and `/mail/data` into a single route `/mail/store` that returns store data for given fetch parameters. Now, fetch parameters that require a read-write cursor are simply those that are in the set `WRITE_FETCH_PARAMS`, which is extended by modules that add write-capable fetch_param handlers. task-4685426 https://github.com/odoo/odoo/pull/262725
This update refactors the testing process for WhatsApp reactions within the Odoo Enterprise module. The changes ensure that reaction updates are properly tracked and stored, improving the reliability of the WhatsApp integration's test suite. This ensures accurate reporting and functionality for users.
Original PR description
Enterprise counter-part. task-4676393 task-4676466 https://github.com/odoo/odoo/pull/262057