Daily updates from Odoo
Friday, February 13, 2026
36 changes · master
New functionality added to Odoo
This update introduces a new 'quick order' option within the Point of Sale (POS) system, allowing customers to place orders more quickly. The system now handles these instant orders and displays them appropriately, while also preventing changes to preparation times for quick orders.
Original PR description
Following this commit: ==== - Quick orders are now supported in pos system. - `is_instant_order` parameter is been handled in payload to fetch quick orders. - Preparation display would also be acknowledge if quick orders arrives in the preparation screen through `Quick order` tag. - For quick order , preparation time will non-editable task-5025473
This update adds the functionality to generate Aged Partner Balance Reports in the required CSV and PDF formats for the Philippine BIR (Bureau of Internal Revenue). This ensures compliance with BIR regulations and allows for consistent reporting within the company's Book of Accounts.
Original PR description
### [IMP] l10n_ph_reports: add BoA Aged Receivable and Payable Report BIR requires the Aged Partner Balance Reports with CSV and PDF export formats consistent with the rest of Book of Accounts task-[5419912](https://www.odoo.com/odoo/action-4043/5419912)
Enhancements to existing features
This update simplifies the setup of Documents and Accounting actions, primarily by moving demo invoices to a more relevant location and streamlining how server actions are executed. It also includes visual refinements and resolves a technical issue related to action order, ensuring smoother operation for users.
Original PR description
This pr first moves 2 demo invoices that used to be installed in the Taxes folder when installing Documents with demo data. It is more relevant to add those files after a user has installed…
This pr first moves 2 demo invoices that used to be installed in the Taxes folder
when installing Documents with demo data. It is more relevant to add those
files after a user has installed accounting. The folder of the demo files
is now at the root of the 'Finance' folder instead of the less relevant 'Taxes' folder.
The second commit of this pr refactors the accounting server actions
(e.g., "Create Vendor Bill") to use a single `documents_account_record_create`
action instead of a `multi` action that combined a folder move with record creation.
Third commit removes a temporary workaround was required in `ir.actions.server` to enforce
a specific execution order for these multi-actions. This is fixed structurally by adding a default
order in the base module in community.
Additional improvements:
- When a journal is changed on an `account.move`, the tags from the previous
journal are now removed from the related document.
- `_get_folder_embedded_actions` now returns a `defaultdict`, simplifying
caller code by removing the need for manual `.get()` checks.
- Removed the "Create Vendor Receipt" action.
- Visual updates: Renamed actions for brevity (e.g., "Create Vendor Bill" ->
"Vendor Bill") and the cog menu button ("Add Custom Action" -> "Edit Actions").
Task-5075610This update enhances the Odoo Studio interface, specifically for m2o fields. It now allows users to apply decorations and set conditional rules based on the 'truthiness' of related fields, providing more flexible customization options for field attributes.
Original PR description
This commit exposes the `decoration-<modifier>=<field>` in studio for m2o fields. Once a decoration is selected, the Decoration Condition property is displayed and allow users to select a field from the model to conditionally add the attribute to the field. The condition depends on the "truthiness" of the field. task-5469063
This pull request delivers several updates to the CRM interface, including a streamlined lead generation dropdown and improvements to the lead-to-ticket conversion process within the helpdesk. It also incorporates extensions for city form data, enhancing data accuracy and usability.
Original PR description
A combination of many smaller improvements to CRM. See task description and commit messages for more info Community PR: https://github.com/odoo/odoo/pull/240202 Task-5262571
This update ensures consistent naming of customers across all Odoo rental documents. The pickup receipt PDF now uses 'Contact' instead of 'Salesperson,' aligning with the recent change in the sales order PDF. This improves document clarity and professionalism for our clients.
Original PR description
The term `Salesperson` can be used on end-customer documents. Replace it with `Contact` on the pickup receipt PDF for consistency with the sales order PDF change. task-5887854 See Also: Community PR:https://github.com/odoo/odoo/pull/246918
This update allows users to select multiple ledgers simultaneously for financial reports, simplifying report generation and providing more granular data control. A default 'Local GAAP' ledger is now included, and unnecessary date headers have been removed to streamline the report interface.
Original PR description
Instead of exclusion of journals, the journal groups (ledgers) are now an inclusion of journals. On the reports, we can now select multiple ledgers at the same time, and adding an implicit local ledger 'Local GaaP' which contains all the journals that are specific to the company, and not in any other ledger. This allows to select and deselect all these journals at once. This local Gaap is selected by default when entering the report. For the Horizontal Group based on Ledgers, addition of columns corresponding to the local gaap of each selected company. I also removed the date header when there is no comparison of dates in the report interface (not in the pdf), because the date can be seen on the filters. task-5404526
This update streamlines the Helpdesk search selector by collapsing priority, SLA status, and rating filters. This change optimizes screen space, making it easier for users to quickly find the tickets they need. It's a minor improvement to the user experience.
Original PR description
In this commit, we collapsed the priority, SLA status, and rating filters to free up some space in the search selector. task-5810884
This update strengthens the connection between documents and products within Odoo Enterprise. The changes streamline how documents are associated with products, making it easier to manage related information and improve product documentation workflows. This enhancement provides a more robust and intuitive system for businesses.
This update enhances how Odoo handles requests from search engine robots (like Google). By implementing a static `/robots.txt` file, we prevent Odoo from dynamically rendering templates for these bots, improving performance and security. This aligns with best practices for website accessibility and search engine optimization.
Original PR description
Following the changes in PR \[1]\, this module extends that behavior by introducing a custom `IrHttp` implementation that leverages the new static `/robots.txt` mechanism to avoid runtime template rendering. \[1]\: https://github.com/odoo/odoo/pull/237737 task-[5095225](https://www.odoo.com/odoo/project/974/tasks/5095225)
This update enhances shift planning by allowing multiple resources to be assigned to a single shift record. Previously, each resource needed for an intervention required a separate shift, which is now streamlined for efficiency. This change simplifies team assignments and improves the overall planning process.
Original PR description
This commit converts resource_id field into resource_ids in planning.slot model to allow to assign multiple resources on the same shift since it could happen to send a whole team with some machines to an intervention, it makes more sense to assign them all in the same record instead of creating a shift for each resource needed to an intervention or any other mission to complete. task-5259036
This update strengthens Odoo's Web Studio approval process by introducing child rules for model methods. Previously, bypassing approvals was possible through certain actions. Now, additional rules can be applied to specific methods, ensuring that critical actions are always properly authorized, improving overall data integrity and security.
Original PR description
task-5344534
This update enhances Czech VAT reports by adding optional tags to the VetaD and VetaP sections. These tags align with official Czech country names, ensuring greater accuracy and compliance with reporting requirements. This change improves the reliability of the reports used for tax filings.
Original PR description
This commit adds optional tags to the exports, in the sections VetaD and VetaP. It also adds the corresponding official country names as detailed in the [documentation](https://adisspr.mfcr.cz/pmd/dokumentace/ciselniky/ukazka/zeme), since it does not always match the country names in Odoo. task-5384854
This update introduces a new hierarchical structure for selecting RAG sources, allowing users to manage entire document folders and knowledge article families. This simplifies source creation and synchronization, ensuring content is consistently updated and available for AI applications.
Original PR description
## Summary Previously, only individual files could be selected as sources. This PR introduces **source hierarchies**, allowing users to select and manage entire collections of content as RAG sources.…
## Summary Previously, only individual files could be selected as sources. This PR introduces **source hierarchies**, allowing users to select and manage entire collections of content as RAG sources. Supported hierarchies include Documents folders, and Knowledge articles with parent–child relationships. ## What’s New ### AI Agent Source: Cleanup and Improvements - Simplified the status update flow for sources, ensuring more reliable transitions between "Processing," "Indexed", "Failed" and "Incomplete" states. - Decoupled Knowledge article processing from the `ir_cron_process_sources` to improve performance and provide more immediate feedback during source creation. - Implemented cached URL fetching to reduce redundant requests and introduced standardized error templating for better troubleshooting and translation support. - Introduced sources hierarchies allowing sources' folder structure. ### Documents: Folder Support - Users can now select entire **Documents folders** as RAG sources. - All valid binary documents within selected folders are automatically extracted. - Sources are represented as a **hierarchical structure**, mirroring the folder layout. ### Knowledge Articles: Hierarchical Selection - Introduces a new wizard: **`ai.add.knowledge.articles`**, replacing the previous article selection flow. - Users can select **parent articles** and optionally include all **child articles** via a toggle. - The parent–child structure is preserved in the source hierarchy. ### Source Synchronization (Reprocess / Retry) Source hierarchies can now be synchronized across all source types: - **Documents** - Syncs hierarchy when documents are created or moved within folders. - Content is re-synced if a document is updated or its version changes. - **Articles** - Updates parent–child relationships when articles are created or moved. - Folder sources automatically collapse when parent articles no longer have children. ### UI Improvements - The document selection dialog now supports **folder selection**. - Reuses the same dialog component as the one used in the chatter for consistency. --- **Task ID:** 5153669
This update significantly enhances the Odoo Report Editor by allowing direct editing of the combined report architecture, simplifying XML modifications, and improving the user interface. The changes focus on translation support and a more intuitive workflow for customizing report layouts, leading to a more efficient and user-friendly experience.
This update streamlines the process of creating assets from vendor bills by introducing a new depreciation model and updated account fields. It simplifies asset creation for fixed assets and improves the accuracy of financial reporting, particularly for accounts related to fleet vehicles.
Original PR description
*=account_fiscal_categories_fleet,l10n_lu_reports,l10n_ro_saft This commit applies vendor bill and fixed asset improvements, mainly creating new depreciation model, new asset fields on accounts, and…
*=account_fiscal_categories_fleet,l10n_lu_reports,l10n_ro_saft This commit applies vendor bill and fixed asset improvements, mainly creating new depreciation model, new asset fields on accounts, and new process to create assets from bills. Changes: - New `account.depreciation.model` New `depreciation_model` is created, which contains the asset method, duration, and factors. Previously, the concept `asset model` existed as an asset in `account_asset` with `state` as `model`. The old asset model concept has been removed and consequently the fields and views have been removed from the `account_asset` model. - `account.account` asset changes Asset fields were removed from `account.account` and new fields were added. Previously, the account contained fields: `create_asset` and `asset_model_ids` which were used to indicate how an asset gets created when account is used in a vendor bill. These fields were replaced by `depreciation_model_id`, `asset_depreciation_account_id`, and `asset_expense_account_id`. An asset is created automatically when using account in bill only if these fields are set. These fields can only be set on accounts with type `fixed asset`. The Automation tab has been removed. - Changes to vehicle in accounts A new field `is_vehicle_account` is added to account to indicate if a vehicle is required when using account to create an asset. - New process for creating assets from bills If an account that has a `depreciation_model_id` is used, then it will automatically create and validate an asset with default depreciation model, depreciation account, and expense account as in the fixed asset account. The user has the ability to only change the default depreciation model, before creating the asset, from the invoice line. A new JS custom widget was created to display the fixed asset account, depreciation model, and vehicle in same cell in the invoice lines. These fields are required and used when creating an asset. Every invoice line can create only 1 asset even if the quantity is more than 1. The functionality of multiple assets per line has been removed. - New method A new depreciation method is added: No depreciation, to be used when asset doesn't depreciate. Depreciation model, asset, and account form views were adjusted to make some fields invisible if method is no depreciation. task-5240457
This update enhances the user experience of appointment scheduling and calendar views within Odoo. Key changes include improved reminder settings, a more intuitive Gantt chart display, and the ability to link activities to calendar events. These improvements streamline workflows and provide a better overall user experience.
Original PR description
This PR improves the UX of calendar and appointment with multiple commits: - Commit 1 improves the appointment.type form by allowing modifications of reminders when clicking on their tag. It also…
This PR improves the UX of calendar and appointment with multiple commits: - Commit 1 improves the appointment.type form by allowing modifications of reminders when clicking on their tag. It also improve the UX of the calendar.event forms by requiring resources when the appointment type is schedule based on them, changing the display of a button and adapting the code to modifications done in calendar in the community PR. - Commit 2 improves the UX of the gantt view by changing the date format on the "day" scale and fixing the hotkey of the "New" button. It also improves the calendar view by displaying the share button's messages inside toasters and adapting the code to modifications done in calendar in the community PR. - Commit 3 adapts the appointment code to allow simple and appointment calendar events to have different default alarms. - Commit 4 adds a message in the log's calendar.event when whatsapp-type reminders are sent. - Commit 5 allows appointment calendar events to have activities. Community PR: https://github.com/odoo/odoo/pull/242504 Upgrade PR: https://github.com/odoo/upgrade/pull/9344 Task-5429852
This update enhances the automatic scheduling of tasks when creating projects from project templates. Previously, overlapping task schedules were prevented, leading to potential scheduling conflicts. Now, the system allows for overlapping tasks when using a template, ensuring more flexible and realistic project scheduling.
Original PR description
When a project template has unassigned tasks that are scheduled such that they overlap each other, the auto scheduling algorithm should allow them to overlap when creating a project from that template. Task-5177182
This update enhances the map view by providing better grouping of tasks, improved Google Maps integration, and more accurate location data. It now centers the map on the company location when no tasks are present and displays geolocation information for tasks without addresses, making it easier to visualize related projects.
Original PR description
**Better support of grouping functionalities in the map view.** 2nd PR from a series of PR improving the map view (1st PR: odoo/enterprise#104618) This PR introduces: Geolocation features: - New fallback on the current company when no records available in the map view. - For records with no addresses but with geolocalisation, the geoloc is now specified on the map marker popup Google Maps features: - Modify the logic on the controller Google Maps button to only open records of expanded groups. - New per group Google maps button (only appears on hover) which opens only the group record on Google maps. Routing features: - When routing, hovering over the legs displays the time and duration of each leg. (Duration is temporarily in seconds while waiting for a widget) - Routing is now also available when the data is grouped (one route per group). - Routing when grouped now uses the group marker color, as the route color. Task#5259181
This update clarifies payment states to avoid user confusion and potential overpayments. The 'in_process' state is removed, and new 'paid' and 'reconciled' states are implemented to accurately reflect payment status and financial reconciliation. This ensures accurate financial tracking and reduces the risk of duplicate payments.
Original PR description
The current payment states naming is misleading and creates several functional issues: The in_process label fails to clearly indicate a completed payment. This confusion leads users to pay the same invoice multiple times. Accounting Misalignment: The paid state currently signifies reconciliation rather than payment completion. This naming gap, combined with an abrupt transition from draft to paid, obscures the actual financial status. Lack of Data Integrity and Visibility: Manual validation of reconciliation is too easily accessible, risking inconsistent data. Additionally, the lack of chronological sorting for outstanding payments and missing conversion rates in multi-currency contexts hinders accurate financial tracking.
Resolved issues and error corrections
This update resolves an issue preventing users from duplicating payroll rule parameters, which caused a validation error. The change modifies the system to allow duplication while ensuring uniqueness through a technical update, enabling more flexible rule configuration. This improves the usability of the payroll module.
Original PR description
Description of the issue/feature this PR addresses: . For the rule parameter, when attempting to duplicate an existing record to edit it, a validation error is raised: “The operation cannot be completed: Two rule parameters cannot have the same code.” Current behavior before PR: . Prevent creation of duplicated rule parameter Desired behavior after PR is merged: . Override copy_data() method and append _copy to duplicated rule parameters to avoid uniqueness constraints. task-5913778
This update adds a bridge module to guarantee that the To-Do module is installed when using the mail alias feature within the HR system. Previously, uninstalling To-Do could cause issues because the feature remained within the HR module. This change ensures a smoother user experience and prevents unexpected problems.
Original PR description
This commit adds the `project_enterprise_hr_todo` bridge module that ensures that To-Do is correctly installed in order to use the todo mail alias feature. Before, this requirement was not enforced so anyone uninstalling To-Do could experience some issue, as the feature would still be part the `project_enterprise_hr` module, even without To-Do installed. See odoo/upgrade#9469
This update improves the Odoo Studio interface by ensuring the 'Model Pages' tab is only visible when editing a model that's actively used and not a transient or abstract version. Previously, this tab could be enabled for irrelevant models, leading to potential confusion. This change aligns with stable releases and enhances the Studio's usability.
Original PR description
Before this commit, we could set publicly available webpages pointing to models that were irrelevant: - transient, - abstract, - sql_view: _auto = False, This was fixed at odoo/odoo#246115. This commit changes the display of the Model Pages tab in studio, as it was not possible to do so in stable. After this commit, when the current edited model is not a "concrete" one the model pages tab button is disabled. *: web_studio
This update adjusts the tests for the spreadsheet sale management feature to align with a recent update to the Odoo spreadsheet library. This ensures the tests accurately reflect the current functionality and helps maintain the stability of the sale process. The change is a technical update to the testing framework.
This update addresses a technical issue related to how Odoo fetches email data, improving the performance and stability of email-related operations within the Enterprise edition. The change removes a workaround that was impacting query counts, ensuring more efficient email processing. This ultimately leads to a smoother user experience for email functionality.
Original PR description
Update query count. https://github.com/odoo/odoo/pull/221906
This update fixes an issue where icons on delivery buttons were displaying incorrectly due to a technical error in how they were defined. The change ensures consistent and accurate icon rendering across key delivery modules like Easypost, Shiprocket, and Starshipit, improving the user experience. This resolves a visual inconsistency and ensures proper functionality.
Original PR description
*: easypost, shiprocket, starshipit The proper syntax for buttons with icons is to use the icon="" keyword instead of manually defining the font within a class attribute. When it is implemented via…
*: easypost, shiprocket, starshipit The proper syntax for buttons with icons is to use the icon="" keyword instead of manually defining the font within a class attribute. When it is implemented via the class attribute any string attribute on the button appears in some random sarif font instead of the standard odoo text font. Before / After Easypost <img width="256" height="127" alt="image" src="https://github.com/user-attachments/assets/56cae398-ea49-4961-b599-eab493efa02f" /> <img width="301" height="130" alt="image" src="https://github.com/user-attachments/assets/11c7bf47-41c3-4c18-b218-7d61831ae2cb" /> Shiprocket <img width="213" height="101" alt="image" src="https://github.com/user-attachments/assets/caaef053-7209-41e8-a0aa-46e3ba018cd9" /> <img width="217" height="116" alt="image" src="https://github.com/user-attachments/assets/940c753f-06a8-4ce0-95a9-b8c2024aa9eb" /> Starshipit <img width="365" height="141" alt="image" src="https://github.com/user-attachments/assets/861671b8-77d0-44c2-bc27-bb68d638788a" /> <img width="361" height="144" alt="image" src="https://github.com/user-attachments/assets/382deef4-8251-47fc-8ae4-66786da01506" />
This update simplifies the view editor by resetting options to null when a field's widget is changed. Previously, the system retained compatible options, which became unreliable with increasingly specialized widgets. This change improves the stability and predictability of the view editor experience.
Original PR description
/!\ Behaviour change /!\ Historically, when changing a widget on a field via studio, options were kept. This allowed for the user to circle back and keep mostly compatible options between widgets that handle the same field types. That assumption is becoming more and more fragile as field widgets become more and more specialized. After this commit, when changing the widget that handles a field, we reset the options to `null` task-4194461
This update enhances the visual consistency of the Point of Sale (POS) navbar across different Odoo modules (pos_appointment, pos_enterprise, pos_urban_piper). Specifically, it addresses inconsistent button styling, improves appearance in dark mode, and updates the delivery badge and button for a more polished user experience.
Original PR description
*: pos_appointment, pos_urban_piper Before this commit, the POS navbar had inconsistent button styling. Alongside the community commit improving the navbar and buttons hierarchy, this one focus on improving btn-light active state and border color for dark mode, and improving the delivery badge & button. requires: https://github.com/odoo/odoo/pull/248273 task-5905481
This pull request fixes a minor typo – 'Theorical' – to 'Theoretical' within the MRP Workorder module. This ensures consistent terminology across the codebase, improving clarity and preventing future errors. The change is a standard quality assurance update.
Original PR description
Rename the related occurrences in the codebase to maintain consistent terminology and help prevent similar issues in the future. task-5137717
This update resolves an issue preventing LNA (Line Notifications Available) from working correctly for IoT-connected POS printers. The change adjusts how IoT printer data is loaded, ensuring LNA functionality is properly enabled when using IoT printers. This improves the reliability of receiving notifications from these devices.
Original PR description
This commit fixes an issue where LNA was never being enabled for IoT devices in the POS due to an issue caused by the different way the IoT records are loaded in the POS. This commit also changes the LNA checkbox in the POS printer form to a related field of the IoT box's LNA checkbox when an IoT printer is used.
This update enhances the accuracy of invoice processing by shifting from OCR-based partner name matching to relying on layout IDs. Previously, incorrect OCR results could lead to inaccurate partner matches. This change significantly reduces errors and improves the overall reliability of invoice data.
Original PR description
Before this commit, we were using the partner name identified by the OCR on previous documents to help with the matching of the partner on next bills. The intended use case was the following: - User…
Before this commit, we were using the partner name identified by the OCR on previous documents to help with the matching of the partner on next bills. The intended use case was the following: - User parses a bill from "SNCB" with the OCR. - OCR identifies "SNCB" as the supplier, but this vendor is encoded as "Societe Nationale des Chemins de fer Belges" in the database, so it isn't able to match it. - After the user manually sets the proper supplier and validates the bill, it creates a link from OCR partner name "SNCB" to "Societe Nationale des Chemins de fer Belges". - From this link, the OCR knows that when it finds "SNCB" as supplier, it needs to set the vendor "Societe Nationale des Chemins de fer Belge". The issue with this kind of matching is that, if the OCR finds an incorrect vendor name (which is quite frequent unfortunately), it can match completly unrelated partners. Instead, we will now rely solely on the layout ID identified by the OCR to perform this kind of match as it is much more reliable. task-[5340130](https://www.odoo.com/odoo/project/2068/tasks/5340130)
This update automatically activates a cron job that fetches vendor bills based on IRN (Invoice Reference Number) only when the user enables automatic GST e-invoice retrieval. This change ensures that the system doesn't unnecessarily consume resources and improves performance for users who don't require this specific functionality. It's a targeted fix to optimize the process.
Original PR description
The cron to fetch the vendor bill based on IRN is disabled by default and only activates if the user changes the `l10n_in_gstr_activate_einvoice_fetch` to `automatic`. see https://github.com/odoo/upgrade/pull/9423 task-5885482
This update resolves an issue related to how product locations are managed within Odoo. The changes optimize the internal processes for retrieving location data, ensuring more accurate and efficient product tracking. This improves the reliability of inventory and sales operations.
This update adjusts the tests for the spreadsheet sale management feature to align with recent changes to the Odoo spreadsheet library. This ensures the tests accurately reflect the current functionality and helps maintain the stability of the sale process. The change is a minor fix to improve test reliability.
This update reverts a recent change to how call durations are displayed in the Odoo Enterprise system. Previously, call durations were shown in a standard numeric format (e.g., 1:23:43). This fix ensures that call durations are displayed consistently, providing users with the familiar and expected format.
Original PR description
This commit is a followup of odoo/enterprise#102439 where a new formatting of duration has been introduced. This formatting doesn't fit for the voip usecase, so this commit forces the "numeric" display, which was the one used previously. In other words, call durations will be displayed like "1:23:43" as before.
Code cleanup and technical improvements
This update streamlines how knowledge articles are loaded, enhancing their speed and responsiveness. The changes consolidate data and batch requests, reducing unnecessary overhead and improving the overall user experience. This refactoring removes custom overrides that were previously slowing down the system.
Original PR description
Remove custom overrides as requests are now batched by default in mail. task-4685447 https://github.com/odoo/odoo/pull/248311 Example: knowledge: grouped threads of the same article (even with all overrides removed) <img width="399" height="858" alt="image" src="https://github.com/user-attachments/assets/f59fd91a-4404-4e7c-9228-3308ba306d3b" />