Daily updates from Odoo
Thursday, August 28, 2025
34 changes
3 changes
Enhancements to existing features
This update adds automated checks to ensure barcode lookup correctly retrieves product details and uses them when creating products. It helps reduce the risk of issues across point of sale, inventory barcode scanning, and website product creation flows.
Original PR description
*: pos_barcodelookup, stock_barcode_barcodelookup, website_product_barcodelookup In this commit: ------------------- - Added tests for barcodelookup to check whether the data fetched and set properly. - Added tests in respective modules to check the flow and creation of the products using barcodelookup. task - 3920661 Forward-Port-Of: odoo/enterprise#92689 Forward-Port-Of: odoo/enterprise#69120
Office printer test actions now send a PDF report instead of a simpler test output. This makes test prints better reflect real business documents, helping users confirm printer setup more accurately.
Original PR description
When clicking "test" on an office printer, we now print a pdf report, making the test print more realistic.
Website generation failures are now reported back to the website service so support teams can see the related logs. This improves troubleshooting and helps resolve generation issues faster without changing the end-user website experience.
Original PR description
When an error occurs during generation, send the error back through report_ko to be able to see the logs on the WSS.
28 changes
Enhancements to existing features
The rental product page has been updated to match the broader product page redesign. This provides a more consistent and polished shopping experience for customers viewing rentable products online.
Original PR description
Mirror community changes and adapt accordingly. Needs: - https://github.com/odoo/odoo/pull/222320/ - https://github.com/odoo/upgrade/pull/8229 task-4707065
Payroll contract type lists now prioritize country-specific options when a localization is installed, followed by the standard options. This makes it easier for users in Belgium, Switzerland, India, Morocco, and the United States to pick the contract types most relevant to their local payroll setup.
Original PR description
When localizations are installed, the standard contract types are shown first. It should be the ones from the loca in first position then the standard ones. Task: 4979947
The audit report PDF export window has been made clearer and easier to use. Its title now better explains the action, and the available options appear earlier in the text so users can understand and set them more quickly.
Original PR description
This PR refines the modal used when exporting an audit report to PDF. The input toggles have been moved to the beginning of the text, and the modal's title has been updated to provide a clearer description of its purpose. Task-4989809
The project task date picker now uses an always-available icon to switch date range selection on or off without closing the picker. This makes setting start and end dates simpler and reduces the need for users to understand the underlying date field behavior.
Original PR description
Before this commit, we had to click on “Add start/end date” next to the input field. This has now been replaced with an icon in the date picker, which you can toggle easily without closing the picker. It also means that the user no longer needs to know whether it is a start or an end date. task-4613140
Users can now download certain signable documents immediately when all required information can be filled automatically, avoiding extra clicks through the signing screen. This streamlines simple signature flows while keeping exceptions such as itsme authentication and multi-signer documents on the existing process.
Original PR description
Introduced a new functionality which allows users signing documents that only contain autofillable information to skip the document filling step. Currrently, even if fields are autofillable, users…
Introduced a new functionality which allows users signing documents that only contain autofillable information to skip the document filling step. Currrently, even if fields are autofillable, users still need to click on each field for the value to appear, then click on Validate and later on Download. With this PR, under the conditions that all fields are autofillable, that there is only 1 signer and that the authentication method is not set to itsme, a new button Download appears in the dialog window which is shown when clicking to Sign a document. By clicking this new button everything happens under the hood and the (already filled) document is downloaded right away. After clicking the Download button, the document is downloaded and the view is changed to the general view of the model we started from. In the normal case where we go into the Sign app, open a template and use the download button from there we are redirected to the kanban view to the templates. In other flows like the one where we request a signature from a sales order, we are redirected to the sale order form view. In this PR, there are also some more minor changes: - The text in the buttons used to sign is changed from Sign Now to Sign - The description present when adopting a signature or initials is changed slightly to adapt to the text present in the buttons of the different views where it is displayed: "By clicking Adopt & Sign," has now become "By signing," - We add a tip on the new Download button explaining its function. Task: 4858331
Appointment configuration screens are reorganized to make setup easier and less overwhelming. Users can now start from templates when creating appointment types, share appointment links faster, and get a clearer booking flow for choosing staff or resources.
Original PR description
RATIONALE ========== While appointment contains a lot of different configuration options, it can proves to be difficult for the user not to get overwhelmed by the various options. Therefore, let us…
RATIONALE ========== While appointment contains a lot of different configuration options, it can proves to be difficult for the user not to get overwhelmed by the various options. Therefore, let us rework the appointment type form / kanban views, and modify a few options to make them more user-friendly. Also harmonize the front-end user / resource selection step and simplify its activation. Finally, allow the user to use sample templates at creation, not only as an action helper. MAIN CHANGES ============= - Form View rework, group options, reorder / rename notebook pages, make some content dynamic - Kanban Card rework: menu is removed, and only 'share' and 'configure' remain as buttons. 'Share' now directly copies a share_url for the config: selected appointment type only + any allocated users / resources - Allow Template Selection when creating an appointment type from Form, List, Kanban view - Make User Selection dedicated step always enabled when website_appointment is installed (and more than 1 resource / user + select user_resource first configuration) and do not depend on the avatars_display option anymore. Placeholder images are used instead (and smaller + design harmonized for Users / Resources) if avatars are hidden. - Sample templates are reworded - Some fields are changed to clarify their purpose. See section below. UPGRADE ======== - assign_method is split in two different selection fields: - assignment_method (auto/manual) - select_first(date/user_resource) - appointment_manual_confirmation logic is inverted into a new auto_assign field. - avatars_display is now show_avatars, a boolean field UPG PR: odoo/upgrade#8014 Task-4898893
PDF exports now include a title page for knowledge articles that have no content, instead of skipping them. This keeps the table of contents complete and lets empty articles act as clear section dividers for better document navigation.
Original PR description
Currently, the system skips printing empty articles, which can lead to an incomplete table of contents and a less organized PDF structure. To address this, we will now generate a page with the article's title for empty articles. This approach allows empty articles to serve as section dividers, enhancing the document's organization and improving navigation within the PDF. Task-4989809
Accounting and localization screens now hide fields and options that do not apply to a company’s country or region. This reduces confusion for users by showing a more relevant interface, especially around Intrastat and SEPA-related settings.
Original PR description
This **PR** enhances the user experience by conditionally hiding irrelevant elements across various accounting and localization modules (`l10n_*`), based on the user's country group or country code. This ensures a cleaner, more region-specific interface. Major changes: 1. Simplified the logic for installing SEPA modules in the `__init__` of `account_accountant`. 2. In `account_intrastat`, the `intrastat` boolean has been removed from `res.country`. Intrastat applicability is now managed via a dedicated `intrastat` country group. With this the intrastat boolean is removes from the view, thereby reducing confusion for non-intrastat companies. Also this country group is used to manage visibility for some intrastat components as well. **task**-4613288 Community **PR** - https://github.com/odoo/odoo/pull/206454 Upgrade **PR** - https://github.com/odoo/upgrade/pull/8191
The VoIP app now includes a simple calendar view for calls, making it easier to see call activity by date. This helps teams review and organize call records in a more familiar schedule-based format.
Original PR description
Task-5043948
Audit report templates now include clearer prompts showing which documents are needed for each section. Users can upload the requested files directly from the editor, making report preparation easier and reducing onboarding friction.
Original PR description
For the audit reports, we aim to provide clear guidance on which documents to upload in the editor to ensure a well-structured report. To support this, we will add alert boxes in the template indicating the required document for each section, along with a link that allows users to upload files directly. These improvements will streamline the onboarding process and make report creation more intuitive. Task-4989809
Product demand suggestions are being made more visible and consistent by moving access into the search panel and basing calculations on the purchase order warehouse. This helps buyers find recommendations more easily and reduces confusion from suggestions tied to a different warehouse.
Original PR description
Description of the issue/feature this PR addresses: The purchase suggest wizard of PO product catalog kanban view is not used enough, and not interactive with the product catalog (this PR addresses…
Description of the issue/feature this PR addresses: The purchase suggest wizard of PO product catalog kanban view is not used enough, and not interactive with the product catalog (this PR addresses only the visibility): With this PR we will make the suggest feature part of the view's search panel, making it more visible. In a following PR, we will render changes in the suggestion inputs (number of days, percent factor ... ) in the product catalog (eg. displaying suggested qty per product record, changing forecasted qty of product record ...) Current behavior before PR: Suggestions for PO products and quantities are accessed by clicking the "Suggest" button on top of the view. The wizard inputs for the recommendation includes selecting the warehouse, which can be different to the PO's warehouse. Desired behavior after PR is merged: Suggestions for PO products and quantities is accessed from the Search Panel. The wizard now uses the PO's warehouse for calculations and the user has to change the PO's warehouse to get suggestions for another warehouse. upgrade PR: https://github.com/odoo/upgrade/pull/8104 community PR: https://github.com/odoo/odoo/pull/215363 Task: [4981340](https://www.odoo.com/odoo/project/966/tasks/4981340)
Portal users can now sort their signature requests by current status, making it easier to find the most relevant or urgent documents. This improves navigation and visibility for users managing multiple signature requests.
Original PR description
This improvement adds a new sorting option in the user portal to allow sorting sign requests by their current state. This provides users with a more intuitive way to view their requests, prioritizing the most relevant or urgent ones. To support this, a new computed field state_order was added to the sign.request.item model. It determines the item's sort order based on the state. The ordering logic follows the definition order of the state selection field in the sign.request.item model. Developers should maintain this order when modifying the selection list to preserve consistent behavior. task-4978713
Employee and resource avatars have been refined in HR Gantt and Planning views. This should make schedules easier to scan and help users identify people or resources more quickly.
A new setting now directly controls whether each return type is created automatically, replacing an indirect rule based on country information. This reduces setup confusion and helps prevent returns from being generated when a business does not want them.
Original PR description
Before it was clearly confusing and error prone how the auto generation works. It was based on the field country_id on the return type. If it was set then that meant auto generated which is quite wrong as some return can have a country_id but don't want to be auto generated. Since then we added a new field auto_generated on the return type which is by default to true. most of the return are auto generated. If we don't want a return auto generated just ticking this field to false should be enough now.
SEPA direct debit payments are now confirmed when a payment is manually reconciled, even if the customer entered the wrong transfer amount or reference. This helps businesses validate mandates despite common payment mistakes, reducing manual blockers in the payment process.
Original PR description
Prior this commit: - If a customer made an error in the wire transfer amount or reference label, the associated SEPA mandate could not be confirmed. There was no way to validate the mandate in such cases. Post this commit: - SEPA payments are now confirmed upon manual reconciliation, even if the transfer amount or reference is incorrect. This ensures mandates can still be validated in such scenarios. task-4702973
Audit report template variables are now easier to read because dates follow the user's language settings and amounts include the right currency formatting. Amounts are also calculated using the company linked to the audit report, reducing the risk of showing incorrect figures when multiple companies are involved.
Original PR description
This commit enhances the formatting of template variables in audit reports: 1. Dates are now displayed according to the user's language settings. 2. Amounts now include the currency and are formatted based on the user's preferences. By default, the company currency associated with the audit report will be used. Task-4989809
The Sign app now lets internal users place a company stamp on documents, showing official details such as company name, address, and phone number. This makes signed documents look more professional and consistent while allowing edits when no company information is linked.
Original PR description
Before: * Users could not add a company stamp to documents in the Sign app. After: * Added a new `Stamp` item in the Sign app. * Internal users can drag and drop the stamp into a document to display company details such as name, address, and phone number. * The stamp is styled as a textarea: * Read-only when the partner is linked to a company. * Editable when no company or user is linked. Impact: * Provides an easy way to include official company details in signed documents. * Ensures a more professional and consistent presentation of documents. task-4819989
Call-related actions in helpdesk live chat and WhatsApp conversations now use clearer rules for when and where they appear. This makes the interface more consistent across side panels, discussion views, and chat windows, reducing confusion for users handling customer conversations.
The accounting reports module now stores the return status in the database again. This lets the fiduciary dashboard retrieve complete return information more reliably for reporting and analysis.
Original PR description
The dashboard fidu needs the state field in sql so they can fetch all the data. task-5043219
This update makes Odoo's AI setup screens easier to use, with cleaner views, required names, archive options for agents, and faster tool creation from topic pages. It also adds support for newer GPT-5 models and removes the less effective calendar event creation topic in favor of better AI topic examples.
Original PR description
- cleanup of the agents views - cleanup of the topics view - cleanup of the default prompts views - cleanup of the "usage" page of "execute code" server actions - make topic title mandatory - make "default prompt"'s rule name mandatory - add no content helper on "default prompts" views - add search model on "default prompts" - renaming of the "Interface Keys" to make them easier to identify - make agents archivable - remove "create calendar event" topic (ai_calendar module) - make it possible to quick create ai tools from the ai topic form view - merge the 2 interface keys that are both linked to the mail composer - add support for gpt-5 and gpt-5 mini Task-5015090
This change standardizes an internal WhatsApp field name to better match Odoo naming conventions. It is a low-impact technical cleanup that helps keep the codebase consistent without changing user-facing behavior.
Original PR description
**Purpose of this PR**: Renaming selfMember to self_member_id task-[5000747](https://www.odoo.com/odoo/project/1519/tasks/5000747)
Users can now define a custom CFOP on Brazilian operation types and apply it globally to a sales order or invoice, while still allowing line-level overrides. This improves control over Brazilian electronic invoicing without changing tax calculation behavior.
Original PR description
We allow the user to set a custom CFOP on `l10n_br.operation.type`. This allows the to set a global CFOP on a record (`account.move` or `sale.order`) and also to override that per line through the existing `l10n_br_goods_operation_type_id` m2o fields on the parent and line models. Because it doesn't affect tax calculation we limit the change to just EDI. Our general approach is to do tax calculation and save the response in `l10n_br_edi_avatax_data` to resubmit it for EDI (the EDI request is essentially a superset of the tax calculation response). This approach doesn't work here because they keep returning the CFOP they determine, not the one we send. Therefore we patch the place where we save the tax calculation response to add the right CFOPs. Task-4947957
Website editors now get a smoother experience when creating pages and adjusting helpdesk website menus. This small improvement aligns Helpdesk with the updated website editor flow, making menu setup more intuitive and reducing friction for content teams.
Original PR description
This commit makes a small adjustment in website_helpdesk following the related community PR, which improves the menu editor to make page creation and menu editing easier and more intuitive for website editors. task-4422810
This update improves internal test helpers for text insertion in the HTML editor by better matching browser behavior. It helps ensure editor-related features are tested more accurately, reducing the risk of regressions for users.
Original PR description
Simulate BR removed by the browser in the unit tests.
The Italian tax XML export now correctly separates quarterly submissions into three monthly sections instead of one combined block. Exported filenames are corrected, and the VAT threshold used for the VP7 line is updated to match the new requirement.
Original PR description
Description of the issue this commit addresses: The XML export should contain three "Modulo" sections when the report is submitted quarterly but currently only ever sends one big chunk of data. Also the name of the exported file is wrong. --- Desired behavior after this commit merged: The exported file adapts to whether it is submitted monthly or quarterly and the name of the file issue is addressed. --- Community PR: https://github.com/odoo/odoo/pull/216887 task-4826511 Forward-Port-Of: odoo/enterprise#93181 Forward-Port-Of: odoo/enterprise#86642
Generated audit reports now include a nested outline that follows the table of contents instead of listing every section at the same level. This makes reports easier to browse and helps users find the right section more quickly.
Original PR description
Currently, the outline of the generated audit report is flat, with all entries at the same level. This commit updates the algorithm to produce a hierarchical outline that mirrors the structure of the table of contents, significantly improving document navigation. Task-4989809
This update adds automated checks for point-of-sale IoT hardware flows, including device setup and payment terminal handling with Six. It helps reduce the risk of regressions in connected checkout hardware and payment integrations without changing day-to-day user workflows.
Original PR description
*: pos_iot, pos_iot_six In this commit: ------------------ - Loaded data for `iot.box`, `iot.device`, and `iot.channel` to test the complete IoT flow from setup to core device functionalities. - Added payment method records and validated the payment terminal integration using Six. task- 4945645 Related PR: https://github.com/odoo/odoo/pull/220801 Forward-Port-Of: odoo/enterprise#93109 Forward-Port-Of: odoo/enterprise#91117
Accounting reports now show their header as soon as the header details are available, instead of waiting for the full report data to finish loading. This makes reports feel more responsive and preserves header changes while the report content continues loading.
Original PR description
When opening any accounting report, we are waiting for the report to load before showing its header. This makes it so we are displaying the header when we have the information for it and then displaying the report once we receive its information. task-4826507
3 changes
Enhancements to existing features
Point of Sale now groups rapid local data updates before syncing them to the browser database. This reduces repeated background work and can make synchronization smoother when many records change quickly.
Original PR description
Before this commit, each change to `records` triggered a call to `syncDataWithIndexedDB`, which could result in multiple calls to IndexedDB sync. After this commit, the synchronization function is wrapped with a debouncing mechanism, ensuring that rapid updates are grouped together. opw-5025589 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update changes onboarding screen titles so they can be included in translation files. It helps businesses provide a more complete localized experience for users in different languages.
Original PR description
Since `name` attribute is not translatable in XML views and even can not be added to TRANSLATED_ATTRIBS, `string` must be used instead of `name` attribute, in order to make the text exportable to `po` file. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now treats ZATCA's duplicate submission response for B2C invoices as confirmation that the invoice was already received. This reduces uncertainty after timeout issues and helps prevent invoices from being incorrectly left as unsent.
Original PR description
ZATCA introduced a new response code (409) to handle duplicate invoice submissions for B2C. This is helpful because when the submission timesout, we are left unsure whether ZATCA successfuly received the invoice or not. The next time Odoo tries to send the same invoice, Zatca will respond with a 409 error if it was received earlier. In which case, we mark the invoice as successfully sent. A similar flow applies for B2B, with a response code of 208 for duplicate invoices. However, for B2B, ZATCA accepts the duplicate with a warning instead of an error, So the invoice gets marked as sent in Odoo, and no changes need to be done there. task-id: 4745275 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223913 Forward-Port-Of: odoo/odoo#223754