Daily updates from Odoo
Wednesday, June 18, 2025
20 changes · master
Enhancements to existing features
Users can now share signing templates with multiple recipients by email directly from the sharing wizard, instead of manually setting up a separate mailing process. The sharing flow is clearer because templates are only shared when the user confirms the action, and the share link is copied automatically for convenience.
Original PR description
## Purpose Currently, we only allow users to either directly send template to a specific partner or share via link if we want to send template to multiple recipients at once. However, we still need to set up a mass mailer to be able to send the link to the recipients. ## Specification In the share wizard, add an option to share the template via email. Task: 4332060
Odoo now provides clearer installation guidance when required external components are missing, including the relevant apt install command. This helps administrators resolve setup issues faster across affected apps and reduces delays during deployment or maintenance.
Original PR description
Community: https://github.com/odoo/odoo/pull/214190
Brazilian POS users can now resend failed NFC-e orders in batches instead of handling each order one by one. This helps businesses recover faster after EDI service outages, with background processing and user notifications when the batch is complete or needs attention.
Original PR description
Brazil's EDI servers are known to go down for hours or days on end, so companies will continue to sell goods and eventually send all of the invoices off to the servers when return back online. Right now, the only way to do that for a POS order is to go to them one by one and hit `Send NFC-e`. This PR adds a new action to the list view of POS Orders that will mark orders as ready to be sent off to the EDI servers. As each order takes a chunk of time to send, this job is passed off to a new scheduled action based off of the Send and Print batch wizard. Records will be processed in batches and once they are completed the cron will notify the user that originally triggered it to let them know if everything was successful or if there are new errors to investigate. task-4688982
Documents now shows easier-to-recognize thumbnails and previews for text, JSON, XML, and WebP files. This helps users identify file contents faster without opening each document, while keeping CSV files distinct because they can be converted to spreadsheets.
Original PR description
Introduce thumbnail for documents with the following MIME type: `text/*`, `application/json`, `application/xml`. Textual* thumbnails are not genered by the client as `jpeg` and stored on the server,…
Introduce thumbnail for documents with the following MIME type: `text/*`, `application/json`, `application/xml`. Textual* thumbnails are not genered by the client as `jpeg` and stored on the server, but instead they are mounted using `iframe`, with the new route `/documents/thumbnail_textual` as the source. This route fetches the first 4KB of the content and returns it wrapped in a `pre` tag inside a template. Textual* previews are now also wrapped in `pre`, like thumnbails, to allow better formatting and consistency. Includes JS tests for the client thumbnail service, particularly for `image/webp`. Python test to check `thumbnail_status` assignment for various MIME types: - client_generated (pdf/webp) - present (jpeg/png/etc.) - False (html/csv/doc/text/json/xml/etc.) Python test to check route `thumbnail_textual` returns textual content correctly: only binary, with attachment and correct permissions. NOTE: - `.csv` files do not have previews or thumbnails because users can convert them into spreedsheet, and we want to make that clear. - `.json` preview is now wrapped inside of `pre` because we try to use the browser json formatter - some changes are made to `documents_client_thumbnail_service` following the review on pr [59268](https://github.com/odoo/enterprise/pull/59268) * Textual files, for now, refer to `text/*`, `application/json`, `application/xml`, `application/documents-email` task-4236987
When users schedule work from the Gantt view, the selection dialog now automatically narrows results to match the group they clicked. This makes planning faster and reduces the chance of assigning or selecting the wrong item.
Original PR description
This commit ensures that the SelectCreateDialog opened when scheduling a task in the Gantt view is automatically filtered based on the local group values of the selected cell(s). task-4826605
Batch and wave transfer screens now include keyboard shortcuts for common actions such as opening the map, validating transfers, and accessing quality checks. This helps warehouse users complete frequent tasks faster with less mouse navigation.
Original PR description
Added keyboard shortcuts in Batch & Wave transfer - "Map" : alt + G - "Validate" : alt + V - "Quality Checks" : alt + shift + Z Task Id : 4672389
The Sign app now offers a clearer, more reliable flow for downloading original and signed envelope documents, including grouped downloads and better document naming on certificates. Users also get a cleaner template editing experience, improved sidebar interactions, and more dependable navigation across all documents in an envelope.
Original PR description
This commit introduces a few improvements to the User Interface (UI) and User Experience (UX) of the Sign application after introducing the envelop feature in 18.3. The main focus is on improving the…
This commit introduces a few improvements to the User Interface (UI) and User Experience (UX) of the Sign application after introducing the envelop feature in 18.3. The main focus is on improving the document download flow, refining the sidebar interactions, and enhancing the signer experience. ### Documents' Download Flow: - Handled download of original (source) documents used in templates and envelopes. - Handled download of the envelope signed completed documents (separately and as one zip file) - Added the signed document names to the certificate. ### Template Kanban Optimization: - Removed the “Use the layout of fields on a new PDF” modal and related logic. - Introduced a “Duplicate” option. - Moved the “Delete” option under a new “Configuration” submenu, which is visible only in debug mode. ### Template Editor & Fields: - Refined the sidebar design to improve signer and field management UX. - Automatically focused and selected placeholder content when adding a signer. - Improved styling and background highlight to indicate selected items. #### Fixed selection field behavior: - Field now shows toast instead of inline error for empty choices. - Duplicate options are auto-merged; explicit error displayed if merging fails. - Adjusted UI not to close the field popup when no valid options exist. ### Navigation - Enhanced document navigator to properly manage viewing all the documents (even the ones with no sign items) task-4743889 Co-authored-by: Abdelrahman Fawzy [abdh@odoo.com](mailto:abdh@odoo.com) Co-authored-by: Ahmad Almaghraby [alah@odoo.com](mailto:alah@odoo.com)
The AI module now has a dedicated way to store and read vector data, which is used for AI-powered features such as embeddings. This reduces custom database handling and makes future AI functionality easier to maintain and extend.
Original PR description
This commit introduce a new `Vector` field for the AI module. Before, the module was defining the vector column by manually adding the sql queries (see `ai.embedding` module). This commit solves that issue by introducing a new orm field `Vector` which takes care of the creation and read of columns of type vector. task-4763397
Grouped list, kanban, and Gantt-style views are updated to use a newer data loading method that can fetch grouped information more efficiently. This should reduce unnecessary server requests and keep related accounting, field service, and planning views aligned with the platform-wide improvement.
Original PR description
This commit adapts the code for the new `web_read_group` API. See the community commit. https://github.com/odoo/odoo/pull/133224
Automatically created reconciliation rules are now hidden by default in the list view, so users see the rules they created themselves first. A separate filter lets users view automatically generated rules when needed, reducing clutter while keeping those records accessible.
Original PR description
Follow-up to 687e237 which introduced automatic reconciliation rule creation. This commit adds a domain on the account.reconcile.model action to hide models that were created automatically, using a new `created_automatically` field added in master. This ensures only user-defined rules appear in the list view. task-4783623
This update adds standard AIU products for Colombian electronic invoicing, helping businesses in sectors like construction and engineering correctly report administration, contingency, and profit charges. It also improves invoice handling so required AIU notes and operation type guidance are applied more reliably for compliance.
Original PR description
AIU (Administration, Contingencies, and Profit) is used to keep track of costs and sales tax in service contracts like construction or engineering. Any indirect admin expenses, unforseen costs, or…
AIU (Administration, Contingencies, and Profit) is used to keep track of costs and sales tax in service contracts like construction or engineering. Any indirect admin expenses, unforseen costs, or profits for the contractor is included in this data. As this is a common requirement the three products are created as data records and will be available to all customers using our EDI service. The UBL specifications state that for AIU invoices we must include a specific string in the note section of the e-invoice on all product lines. To accomplish this, the operation type field had to be made into a stored compute field that uses the pre-established compute as a default value based on type of move. Due to this change, to keep the default behaviour the mandate module has changed from setting the operation on a compute to instead show a warning if the right operation type is not properly set as it is cleaner and does not recompute the value every time a line is edited. task-4611282 Upgrade PR: https://github.com/odoo/upgrade/pull/7873
The document signing flow now returns information in a consistent format across standard Sign and itsme signing. This reduces unexpected behavior and helps keep signing pages more reliable for users.
Original PR description
**Before:**
- The get_document_qweb_context some time return dict or sometime Qweb rendered
template.
**After:**
- After this commit always return a dictionary
{'rendering_context': {}, 'rendered_template': XX}
task-4784288IoT Box setup now supports using a database-generated pairing token again. This lets businesses connect IoT Boxes to an Odoo database even when the database cannot reach the internet, improving reliability for offline or restricted-network environments.
Original PR description
As we removed the pairing token to ease the pairing process by automating it, we can't pair an IoT Box with a database there is no access to the internet (automated pairing depend on odoo.com). We then added back the pairing token, generated by the database, to provide to the IoT Box Homepage. Task: 4844687
Accounting users can now download a ready-made spreadsheet template directly from the import screen for vendor bills and credit notes. This makes it easier to prepare files in the expected format and reduces import mistakes.
Original PR description
This commit adds a button to download the template on the import screen for vendor bills and credit notes. task-4875863
The UAE payroll Instant Pay salary structure has been updated to better match local payroll requirements. This should make instant salary payments more accurate and easier to manage for businesses operating payroll in the UAE.
Original PR description
This PR improve the "Instant Pay" salary structure to better align with payroll requirements in the UAE. task-4701062
Payroll batch management has been redesigned around Pay Runs, making it easier to view run details alongside the related payslips. Users can now browse Pay Runs in a kanban-style view and create them through a guided two-step flow for setup and employee selection.
Original PR description
Problem ---------- Change the UX of payroll batches. Objective ---------- Batches are now Pay Runs. No more form view in full size. Pay Run information is displayed above the list of payslips when they are filtered by a specific pay run. All pay runs are accessible from a vertical kanban view. To create a new kanban, there is a wizard in 2 steps. One to select the dates, structure_id, etc. of the pay run And the other to select the employees that fit the constraints Solution ---------- All action buttons, smart buttons and fields of the form are used to display the pay run card. The form arch is fetched and compiled in the kanban view and list view of payslips. The wizard of pay run creation is the form view of payrun. The wizard to select employees is the employee list view. See : odoo/upgrade#7861 task-4568268
Employee skills information is now better integrated with appraisals, making it easier to use skills data during performance reviews. The update also limits employee access to bank account views and improves payroll-related test data handling.
The spreadsheet filter side panel has been refined to make its layout cleaner and easier to use. This small visual improvement helps users work with spreadsheet filters more comfortably without changing functionality.
Original PR description
This commit finetunes the layout of the filter side panel. task-4864014
Empty views now give users clearer guidance by offering a reset filters option when filters are hiding all results. Screens that rely on sample data also show a clear banner, making it easier for users to understand what they are seeing across several apps.
Original PR description
\* = appointment, documents, esg, hr_appraisal, sign, web_cohort, web_gantt, web_grid Before this commit, the web.ActionHelper was only an XML template. In order to add new features to it, it is now a Component. This commit adds: - A button to reset filters and on the helper when there is at least one facet in the searchModel and there is no data corresponding. - A ribbon widget displayed when sample data is used in the helper. - An ActionHelper component centralizing the two previous features. task-4648766
Users can now refuse documents accessed through shareable signing links, not only documents sent directly to them. When a public user refuses a document, Odoo asks for their name and email so the refusal can be properly attributed and recorded.
Original PR description
Before this commit, when refusing a document as a public user, it was not possible to identify the user, we only asked for the refusal reason and that was it. Also, there was no way to refuse a shared document, only sent ones. After this commit, we now can refuse shared documents, and they keep created for allowing other users to refuse them, including public users. When the public user is refusing it, we ask for their name and email for identifying them (and creating a partner from it). task-4635602