Daily updates from Odoo
Friday, February 14, 2025
15 changes · master
Enhancements to existing features
Documents now supports easier card selection in Kanban views, including Alt-click selection and continued Ctrl-click support in Documents. This also makes Kanban actions more consistent with list views, including options such as inserting selected records into spreadsheets.
Original PR description
For Documents:
This commit reimplements the way Documents handle record selection. Since it
is now supported to select Kanban cards globally, we can now move some implemented
logic where it makes sense (KanbanRecord, KanbanController).
We can now also select cards by clicking on them with the 'Alt' key pressed, since
this is the main key being chosen for the feature to work on most kanbans ('Ctrl' key
cannot be used, since it opens records in new tabs). For Documents, we have decided
to continue supporting 'Ctrl' for the moment.
Code has been cleaned and simplified. Visual consistency with all kanbans has been
given, by slighlty adapting the look of the cards.
General changes:
Kanban has the same actions available as in List view. This includes "Insert in Spreadsheet".
The code has been shared accross both views, thanks to a hook dedicated with core functionalities.
task-4318322Invoice reports now better support global invoices that combine multiple POS orders. This helps businesses using UrbanPiper integrations present consolidated order information more clearly and accurately on invoices.
Original PR description
In this commit: ------------------- - We adapted the report for the case of global invoices which will have multiple POS orders. task: 4256209 Related PR: https://github.com/odoo/odoo/pull/186723
Users can now add Knowledge articles to the templates gallery, making reusable content easier to find and duplicate. The gallery also includes permission-aware delete options, so administrators can remove templates and article owners with write access can remove articles from the gallery.
Original PR description
This commit adds a new button to the Knowledge kebab menu, allowing users to add articles to the templates gallery. This feature improves usability by making it easier for users to locate their templates and create copies. To ease template management, a delete button has been added next to each article and template in the gallery. The button is displayed only to users with the appropriate permissions: - Deleting a template requires administrator privileges. - Deleting an article from the templates gallery requires "write" access to the article. Task-4247544
Profit and Loss reports can now show financial budget columns alongside horizontal grouping, making it easier to compare grouped results against budgets. Budget values are placed clearly at the end of the report and remain aligned even when reports use multiple header levels.
Original PR description
Previously, the Profit and Loss report could not display both a horizontal groupby and financial budget columns simultaneously. This commit resolves that limitation by ensuring the budget columns (base, amount, and percentage) are displayed at the end of the report, separate from the horizontal groupby columns. Key improvements: - Budget columns are positioned after the horizontal groupby, avoiding mixing them within grouped columns. - If the horizontal groupby spans multiple header layers (e.g., with analytic filters), budget columns now utilize rowspan to ensure proper alignment. - This allows for cleaner reports where both groupby and budget filters can be visualized together. Note: The percentage column does not include the horizontal total, but this approach still enhances the ability to analyze horizontal values against the budget. task-4456510
Product image retrieval by barcode now uses the Barcode Lookup service instead of the previous Google-based approach. The image-fetching workflow has been consolidated into the existing Product Barcode Lookup app, reducing separate module maintenance while keeping product enrichment available.
Original PR description
Before this commit: ================== - Before this commit to fetch images of existing products using barcode we used Google API. - To fetch images of existing products we have a module product_images. After this commit: ================== - To fetch images of existing products we are using barcodelookup.com API. - Removed product_images module - Integrated image fetching logic with existing product_barcodelookup module task -4005612
International payment files now use a clearing number in the ISO 20022 bank information where required. US payment and payroll payment flows have been aligned to this same field, improving consistency and helping banks process payment files correctly.
Original PR description
For international payments, the clearing number is required to be set under ClrSysMmbId node in ISO20022 XML file. Odoo: https://github.com/odoo/odoo/pull/186972 task-4307862
Appointment invite creation now checks for an identical simple setup and reuses the existing invite link when possible, reducing duplicate records. The invite form is also clearer for choosing users or resources, helping staff avoid confusing options.
Original PR description
When opening the appointment invite modal, we now attempt to find a "identical configuration". We only account for simple use cases, aka not multi-appointments, not user/resource specific. If we find an identical configuration, then the "Copy Link & Close" button of the modal will just copy the existing code instead of creating a new record. When the user changes anything to the configuration, we re-generate a new random code Task-4280698
Quality teams can now define a failure destination for any type of quality control, not just checks on individual move lines. This helps route failed products, moves, or full operations to the right inspection or repair location more consistently.
The Appointment app now shows a helpful prompt in the Gantt view when no calendar events are found, letting users share an appointment link or create a booking directly. This makes it easier to generate bookings from an empty schedule and clarifies resource-based booking details.
Original PR description
This commit adds the action helper in the Gantt view when no calendar event is found. Users can click the button present in Action Helper and share the appointment to get some bookings. Task-4138356
Bank reconciliation can now match payments with draft invoices and bills, helping users avoid creating duplicate documents when payments happen before accountant review. This makes month- or quarter-end workflows smoother for businesses that process bills before they are formally posted.
Original PR description
Since users cannot view draft invoices/bills on the bank recon screen, duplicates may be created. To avoid this, and to simplify the process for users who might pay on draft bills, we allow the reconciliation of bank statement lines with draft invoices & bills. Task-4286245
Users can now correct OCR results on imported bank statements by selecting a balance field and clicking the correct value directly on the document preview. This extends an existing bill correction workflow to bank statements, helping reduce manual retyping and improve statement accuracy.
Original PR description
After a bank statement has been OCRed, we allow the user to make corrections by simply clicking one of the balance fields and then clicking the correct amount by clicking on the boxes overlay of the imported file. This is a feature that was introduced first for bills, and is now made available to bank statements as well. A new mixin has been written to factorize as much as possible between the two models. Upgrade PR: https://github.com/odoo/upgrade/pull/7010 Upgrade Util PR: https://github.com/odoo/upgrade-util/pull/182 task-id 4260464
A new list view helps users review bank transactions that the provider has marked as duplicates directly in the duplicate transaction wizard. This makes it easier to identify and handle potential duplicate entries during online bank synchronization.
Original PR description
This commit will add a new list view in the wizard of duplicate transaction for transaction that are marked as duplicated by the provider in the transaction details. task-4345739
Appointment pages and website snippets now have refreshed default card styling plus new Picture and List layouts, giving businesses more attractive ways to present booking options. Demo images and descriptions are shared across appointment modules, making previews and sample content more consistent without requiring extra website appointment dependencies.
Original PR description
### Make demo img available in appointment sub-modules Prior to this PR, demo data images were located in `website_appointment`, and this module was mandatory if we wanted to use these demo images.…
### Make demo img available in appointment sub-modules Prior to this PR, demo data images were located in `website_appointment`, and this module was mandatory if we wanted to use these demo images. After this PR, these images are moved to the main `appointment` module to be available in it and its sub-modules. ### Add image & description demo data This PR adds image & description demo data to match the `website_appointment` snippet previews. ### Allow to customize avatar number Prior to this PR, the maximum number of avatars displayed in the `appointment_booking_resource_description` template was set to 6. After this PR, we can now customize the amount of avatars displayed, simply by defining the `avatars_max_count` variable, to match the layout where this template is called. ### Removes unnecessary option for s_appointments Prior to this PR, it was possible to define the height of the column wrapping the main content of `s_appointments`. As this content is dynamic, this option is not necessary and is removed. ### Review the card layout This PR reviews and enhances the default card layout used in the appointment snippet and appointment website page. ### Introduce new snippet layouts This PR introduces the "Picture" and "List" layouts for the appointment snippet. task-4317830 --- Requires: - https://github.com/odoo/odoo/pull/190946 --- Review default snippet layout: | Before | After | |--------|--------| |  | <img width="1343" alt="Capture d’écran 2024-12-18 à 12 55 34" src="https://github.com/user-attachments/assets/1b63448c-559f-4d9b-94c2-8f8a0e853c03" /> | Introduce two new snippet layouts: | Picture Layout | List Layout | |--------|--------| | <img width="1351" alt="Capture d’écran 2024-12-18 à 12 56 17" src="https://github.com/user-attachments/assets/a20eb199-1a42-4abe-9e23-4e386e4d9142" /> |<img width="1337" alt="Capture d’écran 2025-01-29 à 13 01 23" src="https://github.com/user-attachments/assets/0a1e4b7c-84a3-466d-80ce-11a437ba094c" /> |
The Sign app interface has been refined to make the sidebar and document fields clearer and more polished. The update also improves color handling in dark mode, helping users work more comfortably and consistently across display settings.
Original PR description
This commit refines the design of the sidebar and fields and adapts the colors for dark mode for the Sign module. task-4552049
Brazilian AvaTax users can now override a product's purpose of use directly on sales orders and invoices when the sale context requires a different tax treatment. This helps businesses handle cases like B2B versus B2C sales without creating duplicate products.
Original PR description
In some cases the purpose of use will change based on the exact conditions of a sale (e.g. the partner, ...). An example is if you do b2b and b2c sales, the b2b sale's purpose will be "resale" and the b2c sale's purpose could be "use or consumption". To avoid users having to duplicate their products we provide an optional override on sale.order and account.move. task-4520757