Daily updates from Odoo
Thursday, July 24, 2025
13 changes · saas-18.4
Enhancements to existing features
The IoT homepage now shows how long the Odoo service has been running, and on supported systems it also shows the operating system uptime. This makes it easier for support teams and users to assess device stability without needing remote command-line access.
Original PR description
Before this commit, the only way to check how long the IoT box had been running was to SSH into it and run a command. After this commit, the uptime of both the Odoo service and the OS is available in the homepage. On Windows only the Odoo service time is shown. task-4954737 <img width="651" height="600" alt="image" src="https://github.com/user-attachments/assets/f3144545-0696-4dd9-937b-0e82e196def3" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update helps Turkish e-invoices meet GİB requirements by using the customer reference field as the registered tax office name in Nilvera submissions. Users are warned, and then blocked where required, if an e-invoice customer is missing this information before sending an invoice.
Original PR description
### Description of the issue/feature this PR addresses This PR adds a validation to ensure that E-Invoice partners in Turkey have the `reference` field filled with their registered tax office name,…
### Description of the issue/feature this PR addresses This PR adds a validation to ensure that E-Invoice partners in Turkey have the `reference` field filled with their registered tax office name, as required by GİB regulations. ### Current behavior before PR Partners marked as E-Invoice customers can be used in invoicing without a value in the `reference` field, which may lead to non-compliant UBL documents. ### Desired behavior after PR is merged Once the reference field is filled, it is sent via the UBL, as it is passed to tax_scheme_vals. The account move send wizard issues a critical warning for partners that should have the tax office name in the reference field. If this warning is ignored and the customer on the invoice has a TR e-invoicing status of Nilvera, a validation error is raised, prompting the user to complete the required reference field on the customer. Task-4886128 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217582 Forward-Port-Of: odoo/odoo#215772
Website search now avoids an unnecessary database count when the number of results is already known. This reduces extra processing and can make website, blog, and forum search pages respond more efficiently without changing what users see.
Original PR description
Issue ----- Currently, we call `model.search()` and `model.search_count()` back-to-back, the second of which is unnecessary if there is no limit on the query. Solution ----- If we have no limit, directly take the length of the previously returned results to avoid an extra query. opw-4882609 Forward-Port-Of: odoo/odoo#220014 Forward-Port-Of: odoo/odoo#218252
Employee record access has been clarified so regular users see public employee information, HR officers can view employee records without payroll details, and HR administrators keep access to payroll and configuration options. This helps ensure sensitive payroll information is only available to the appropriate HR administrators.
Original PR description
Employee : No right : You see employee public Officer : You see hr.employee for everyone but no payroll tab Admin : You see hr.employee for everyone + payroll tab + configuration menu Task: 4900703 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Peppol document retrieval now handles large invoice volumes in smaller batches to avoid scheduled jobs timing out. This improves reliability for businesses with high transaction volumes by ensuring document processing can continue automatically when more work remains.
Original PR description
For database with big invoice volume, it is necessary to be able to retrieve documents in smaller batches otherwise crons will timeout due to the 15 minutes limit. Add a retrigger mechanic to the possibly heavy crons. opw-4925532 Forward-Port-Of: odoo/odoo#220001 Forward-Port-Of: odoo/odoo#218383
This update improves how the color picker and related popovers behave in the Odoo editor. It should make choosing and applying colors more reliable for users building or customizing pages.
The Point of Sale app now has better internal testing tools, making it easier to validate store services, models, and individual screen components before release. This helps improve reliability for future PoS updates, with a small related asset fix in the HTML editor.
Original PR description
Improved test hoots in PoS to test model and service functions. It is now possible to access the `pos_store` via `getService(“pos”)`. This will automatically load mocked data and information on the various models. Components can also be mounted independently of the rest of the application, so that their functions can be tested. For the moment, only `point_of_sale` models are loaded, but the implementation is designed to be patched from other PoS modules. --- A missing asset has been added to the html_editor module. Forward-Port-Of: odoo/odoo#218854
This update adds newly recognized Peppol participant identifier codes used for electronic invoicing, especially for France, the United Arab Emirates, and Latvia. It helps businesses using Odoo stay aligned with the latest Peppol requirements and improves compatibility when exchanging invoices electronically.
Original PR description
Add new relevant codes from the Peppol code list. In particular new codes for FR, AE and LV. Source: https://docs.peppol.eu/edelivery/codelists/v9.2/Peppol%20Code%20Lists%20-%20Participant%20identifier%20schemes%20v9.2.json opw-4932979 Forward-Port-Of: odoo/odoo#219969 Forward-Port-Of: odoo/odoo#218419
This update makes the IoT Box image easier to troubleshoot and recover by improving access to system logs and restoring default Raspberry Pi sudo behavior. It also fixes startup update commands and increases default logging detail so issues are easier to diagnose.
Original PR description
This commit contains the following small changes: - No longer require a sudo password for pi user (reverting to default Raspberry Pi OS behaviour). This is because if Odoo couldn't start there was no way to fix it if you didn't have the current password. - Expose /var/log/ folder instead of just /var/log/odoo via nginx. This is useful because then we can see e.g. the nginx access logs. - Fix rc.local git checkout on reboot. This wasn't working because the commands were not being run as the odoo user. - Use INFO log level by default instead of WARNING. task-4954737 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#220164
The Oman localization now separates supplier invoice base amounts from customs VAT for import taxes. This helps businesses record import VAT more accurately and align tax reporting with Oman VAT treatment.
Original PR description
To align with Omanian VAT treatment of imports, split the 5% EX tax into two: - "5% EX ONLY B" captures supplier invoice base (0% tax, affects base only). - New "5% EX ONLY" captures customs VAT (100% tax incl., with VAT Input account). Also removed VAT Input account & tax grids "+6b_T" from "5% EX ONLY B". task-id: 4909498 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217193
Payroll access rules were adjusted so employees without payroll rights no longer see the Payroll app, payroll officers can access employee payroll information, and payroll administrators can manage payroll configuration. This clarifies responsibilities and helps ensure sensitive payroll areas are shown only to the appropriate roles.
Original PR description
Payroll No right : You don't see payroll app Officer : Employee officer + payroll tab Admin : Employee admin + payroll app config. Task: 4900703
Website administrators can now open the website generator directly from the website settings. This makes importing or generating a website available as a standard settings action, instead of only during onboarding.
Original PR description
Added a button in the website settings that redirects to the website generator configurator. The goal is to have a standard way to import a website without necessarily it being part of the onboarding flow. closes odoo/enterprise#88334
This update improves internal testing tools for Point of Sale-related modules, making it easier to validate store data, services, and individual interface components. It helps development teams catch issues earlier across appointment, restaurant, IoT, payment, and delivery integrations without changing day-to-day user workflows.
Original PR description
Improved test hoots in PoS to test model and service functions. It is now possible to access the `pos_store` via `getService(“pos”)`. This will automatically load mocked data and information on the various models. Components can also be mounted independently of the rest of the application, so that their functions can be tested. For the moment, only `point_of_sale` models are loaded, but the implementation is designed to be patched from other PoS modules. Forward-Port-Of: odoo/enterprise#90234