Daily updates from Odoo
Wednesday, June 18, 2025
12 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
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
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)
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
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
IoT 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
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
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.
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