Daily updates from Odoo
Wednesday, January 28, 2026
7 changes · master
Enhancements to existing features
This update optimizes how Odoo's account reports process data, leading to faster report generation. By grouping related queries, the Generic Balance Sheet now runs significantly quicker – reducing processing time from 1 minute 35 seconds to 36 seconds. This improvement enhances the overall user experience and system efficiency.
Original PR description
Before this commit, the 'domain' engine was never batched: one expression to evaluate caused one SQL query to be run just for it. With this commit, we group domains that could be evaluated together. Essentially, when we have domains targetting the same many2one field of account.move.line (typically account_id, with conditions like 'account_id.code' or 'account_id.account_type'), we run only one SQL query for all of them, targetting all the move lines according to the report filters. Then, we iterate on its result for each domain to evaluate. When iterating over the results, we filter the ones we keep by searching separately on each traversing model (in our example, account.account), to isolate the ones that are actually targetted by each expression. Tested on our prod. With this, opening the Generic Balance Sheet goes from 1min 35s to 36s. opw-5130725 Forward-Port-Of: odoo/enterprise#105373 Forward-Port-Of: odoo/enterprise#101725
This update enhances the system administrator alerts displayed in Odoo Enterprise. It now allows for more flexible message formatting, including multiple alerts with different severity levels, improving communication about important server maintenance and operations. This change ensures system administrators receive timely and detailed notifications.
Original PR description
Tweak #102239 to allow more flexibility and display multiple messages with different alert level.
The ir.config_parameter is sysadmin.message and should be a json loadable. The format shoud be something like this:
{
"replace": false,
"warning_type": "user",
"message": "<div class='alert alert-info'>A maintenance operation is planned on your server on <strong>2026-01-15</strong> between 14h and 15h</div>"
}
Forward-Port-Of: odoo/enterprise#105157This update ensures that all users – internal and portal – adhere to the established document signing order. Previously, internal users could override this order, leading to inconsistencies. This change improves data integrity and compliance with signing protocols.
Original PR description
Signing Order currently controls the sequence in which recipients receive signature requests, but internal users can bypass this order and sign in any sequence. For example, a second signer may sign before the first one internally. This commit applies the same signing order rules to internal users as to portal users, ensuring the document signing order is always respected. task-5442663
This update enhances the usability of ECOs by streamlining the creation process and ensuring consistent product version visibility. Additionally, a change was made to prevent document uploads and removals once an ECO is applied, improving data integrity. This work addresses minor usability issues and improves the overall product management experience.
Original PR description
Improves ECO usability by: - Prefilling ECO type during creation - Making product version consistently visible on product and BOM forms and list views - Replacing date radio buttons with a clearer date field and placeholder - Replacing “Apply on” radio buttons with a selection field prefilled by context - Showing both Product-type and BOM-type ECOs in the product smart button - Fixing incorrect ECO count on the BOM smart button Improve Product Document: - Disable document upload and removal once an ECO is applied. - This is achieved by relying on `widget.deletable`: when an applied ECO is opened, it is in readonly mode, so the related documents kanban is also readonly; as a result, `widget.deletable` evaluates to false (`!props.readonly`), which hides the remove and undo actions. Task ID: 5358428
This update enhances the user experience for the 'itsme' authentication method in Odoo Sign by providing clearer visibility into available IAP credits and streamlining the process for purchasing more. The changes include a direct link to manage credits, a more informative email notification, and visual indicators in the Sign Editor, making it easier for users to complete transactions.
Original PR description
Prior to this commit, the integration of 'itsme' in Odoo Sign lacked visibility regarding IAP credits. Users could not easily see their balance when configuring roles, and the "insufficient credits"…
Prior to this commit, the integration of 'itsme' in Odoo Sign lacked visibility regarding IAP credits. Users could not easily see their balance when configuring roles, and the "insufficient credits" email was generic without actionable steps. Additionally, the Sign Editor sidebar did not visually distinguish between authentication methods (SMS vs itsme).
This commit improves the UX for the 'itsme' flow through the following changes:
1. Role Configuration (sign.item.role):
- Updates the form view to display the current available credits when 'itsme' is selected as the authentication method.
- Adds a direct link to the IAP service to manage credits.
2. Email Notification (mail.template):
- Refactors the 'sign_template_mail_not_enough_credits' template to use clearer wording ("due to insufficient credits") for all auth methods.
- Adds a specific condition for 'itsme': if verification fails due to lack of credits, the email now includes a direct link to the IAP purchase page.
3. IAP Account View (iap.account):
- Customizes the IAP account form specifically for the 'itsme_proxy' service.
- Relocates the credit balance display to a more prominent position under the account title.
- Hides the standard boolean status badges for this specific service to reduce clutter.
4. Sign Editor Sidebar (JS/XML):
- Adds visual badges to the signer list in the sidebar to indicate the selected authentication method (e.g., specific icon for itsme).
- Updates the backend model to inject 'auth_method' data into the sidebar props.
- Ensures the itsme badge remains visible in dark mode using inline styling.
Task: 5862540This update adds a new side panel to the Gantt view, mirroring the Calendar's scheduling features. Users can now easily schedule and unschedule tasks by dragging and dropping records between the list and the timeline, streamlining project management workflows.
Original PR description
This commit introduces a side panel to the Gantt view that mirrors the functionality of the Calendar view's scheduling section. The new panel displays a list of unscheduled records and supports drag-and-drop interactions, allowing users to easily: - Schedule records by dragging them from the list onto the Gantt timeline. - Unschedule records by dragging them from the timeline back into the side panel. task-5259058
This update simplifies the process of creating new accounting journals. Previously, a confusing 'New' button on the dashboard led to a separate wizard. Now, users can access the journal creation process through the cog menu on the dashboard or directly from the journal list view, streamlining the workflow.
Original PR description
In the accounting dashboard, clicking the "New" button would open the new journal creation wizard which was confusing, the button was completely removed and can now be accessed from the cog menu, the wizard is now also applied on the journal list view task-5422121