Daily updates from Odoo
Friday, April 25, 2025
17 changes · master
New functionality added to Odoo
Knowledge users can now create and share direct links to specific headings in an article. Clicking the new link icon next to a heading copies the link, updates the browser address, and lets recipients jump straight to that section with a brief highlight.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/189424 --- PURPOSE Users often create content with multiple sections marked by headings (especially in Knowledge). To ease the navigation and sharing,…
Community PR: https://github.com/odoo/odoo/pull/189424 --- PURPOSE Users often create content with multiple sections marked by headings (especially in Knowledge). To ease the navigation and sharing, each heading should be treated as an anchor that users can get and share with others. Users can easily obtain a link to any heading by simply clicking a anchor button next to the title. This link can then be used to navigate directly to the corresponding section. SPEC - Next to each heading, add the anchor button (with opacity, see icon - see https://fontawesome.com/v4/icon/link) - By clicking to the anchor button, a link is copied into the user's clipboard, we update the URL of the browser too and we auto-scroll to this content - The url contains a random hash to access the heading - If anyone else with the right access clicks on this link, they are redirected to the content and the heading is highlighted a few ms Enable the feature for knowledge only at this stage. task-3595680
Users can now create geographic charts in spreadsheets using Odoo data grouped by country or state. This makes location-based trends easier to visualize and compare directly inside business reports.
Original PR description
This commit adds the possibility to create a geo chart with odoo data. The option is only available when the data is grouped by `res.country` or `res.country.state`. Task: [4661689](https://www.odoo.com/web#id=4661689&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Enhancements to existing features
The signing experience has been polished with a cleaner template sidebar and fixes around envelope handling. This should make preparing signature documents easier and reduce confusion for users working with sign templates.
Point of Sale now restores users to the last page they were using after a browser refresh, while keeping the current session state intact. This reduces disruption for cashiers and staff using POS-related flows across country-specific and add-on modules.
Original PR description
*: l10n_br_edi_pos, l10n_de_pos_res_cert, l10n_it_pos, pos_appointment, pos_blackbox_be, pos_iot, pos_preparation_display, pos_restaurant_preparation_display, pos_settle_due, pos_urban_piper This commit adds a new service to the POS that allows to persist the router on all POS pages. When refreshing the page, the router will be restored to the last visited page, and the current state of the POS will be preserved.
The spreadsheet filter editor now groups and sorts available fields more logically, showing the most relevant filter fields first and then ordering options by name. This makes field selection faster and easier for users configuring spreadsheet filters.
Original PR description
With this commit, fields in the filter editor side panel are now ordered first by type (global filter type, then relation fields), and then by name. This change improves the user experience when selecting fields in the filter editor side panel. Task: 4707731
Chilean companies can now download a special copy of an invoice that includes the additional informational box required for yielding-related use cases. This makes it easier to meet local documentation needs without manually editing or recreating invoice copies.
Original PR description
In Chile, industries need to have a copy of the invoice with an additional informational box. This commit add this functionality by providing an action report to print a copy of the invoice with the additional box. Task-4074167 Runbot : https://runbot.odoo.com/runbot/bundle/master-l10n-cl-copy-invoice-yielding-roto-357106
Planning role configuration is easier to review and maintain, with clearer service visibility and improved resource display using avatars. New services created from a role now inherit the relevant planning defaults, helping teams reduce manual setup and keep sales planning data consistent.
Original PR description
_*=sale_project_forecast Enhance the list and form views of the planning role: - In the list view: - Added services with hidden. - In the form view: - Used the Avatar widget in the resource field. - Added services after the resource field. - When creating services on the fly, set default role and active plan services. - In the kanban view: - Used the Avatar widget in the resource field. - When the services set on role, the role will by-default set on services. task:4461520
This update aligns Odoo's IoT device handlers with a newer loading structure so connected payment terminals, measurement devices, and fiscal devices continue to work on Linux and Mac computers. It helps maintain compatibility across point of sale, localization, and quality control IoT integrations after the underlying IoT driver path changed.
Original PR description
Adapt IoT handlers paths following change from handlers loading in `hw_drivers/handlers` instead of `hw_drivers/iot_handlers`, see community PR: https://github.com/odoo/odoo/pull/205679
This update adjusts several country-specific accounting and e-invoicing features so they continue to work correctly with stricter VAT number validation. It helps reduce validation errors and keeps local reporting, imports, and invoice processing aligned with updated VAT rules.
When no IoT boxes are found on the local network, users now see a countdown before the system tries again automatically. This reduces manual retry effort and makes the connection process clearer during setup.
Original PR description
This PR adds a countdown shown to the user when no iot boxes were found on a local network. When the countdown reaches 0 it tries to look for iot boxes on local network again. The mechanism repeats until the interval is cleared after some time
VoIP users now see useful action buttons when searches in contacts, recent calls, or activities return no results. These buttons guide users to relevant next steps, such as creating a missing contact, making the workflow clearer and faster.
Original PR description
In voip, you may search for different things through different tabs. For example, you may search for recent calls in the recent tab, or for specific contacts in the contacts tab. When there is not matching result, there should be a button that guides you to a some page that may be relevant to your search. For example, if you can't find a specific contact in the contacts tab, you may have a button to direct you to create that contact as it seems like you don't have it on your list. This commit introduces those guide button on the following tabs: `contacts`, `recent_calls`, and `activities`.
This update adds the ability to use and test paper-muncher within the base area. It helps teams validate this capability more reliably before wider use, reducing risk when enabling related document-processing workflows.
Belgian accounting users get guided submission steps for VAT listings, EC sales lists, and Intrastat goods returns. This helps businesses prepare and submit required Belgian declarations more consistently from within Odoo.
Original PR description
This commit aims to add a bunch of additional features for belgian returns. - A new wizard for the VAT listing on submission - A new wizard for the EC sales list on submission - An intrastat return type with its wizard for submission this commit is just an extension of this pull request: https://github.com/odoo/enterprise/pull/81569
Digest emails now include online appointment counts and social media performance indicators such as engagements and clicks. This gives teams a broader recurring snapshot of customer activity and marketing performance without needing to open separate reports.
Original PR description
[IMP] social: add/improves digests social: #Engagements, #Clicks KPIs added Note that we use raw sql queries for: - kpi_nbr_of_engagement_value because the field company_id on social.live.post is computed and we cannot group by on it with the ORM API - kpi_nbr_of_clicks_value as the field click_count on social.post is computed [IMP] appointment: add digests Add the number of online appointment in digests. Co-authored-by: jbn-odoo Co-authored-by: pydu Parent-task-2705154 Task-2647241
Planning Analysis reports now show only data from the companies selected in a user's active multi-company context. This helps businesses avoid cross-company visibility in reports and keeps analysis aligned with the user's current company selection.
Original PR description
After this commit, the Planning Analysis reports will only display data from the companies selected in the user’s multi-company context. Previously, both reports showed data across all companies, ignoring the user’s active company selection. task-4644806
Resolved issues and error corrections
This change restores support for Adam weighing scales that had been removed too early. It helps existing customers who still use these scales continue operating and upgrade without losing hardware compatibility.
Original PR description
This reverts commit f1b1062e0417f6a6a8a6137dbf1bf1c64523c2be. The Adam scales were deprecated prematurely while we still had clients using them. To allow the future upgrades and scales support for these clients we revert the deprecation Related community PR: https://github.com/odoo/odoo/pull/207259
Today's call activities now exclude items linked to records the user is not allowed to view. This prevents access errors and lets users continue seeing the activities they can legitimately work on.
Original PR description
If an activity is created for a record that the responsible user does not have access to, trying to fetch "today's activities" would result in an access error. This commit adapts the get_today_call_activities code to filter out activities associated with a record that the current user does not have access to.