One widget for every Many2One field in Odoo
Give customers, vendors, products, and contacts a visual identity everywhere they appear — inside the field and in the search dropdown — so staff stop guessing between near-identical names.
The problem
Many2One fields render as plain text dropdowns everywhere in Odoo. When a sales rep opens an order line, a buyer picks a vendor, or an agent selects a contact, they read a list of near-identical names with no visual anchor — and occasionally pick the wrong one. Existing icon apps only cover one record type each, so covering customers, vendors, and products means buying and maintaining several separate modules.
The solution
A single reusable widget you attach to any Many2One field. An admin picks, per target model, whether to show the record's image, a colored initials badge, or a Font Awesome icon — with a live preview before saving. Every configured field then shows its icon both in the populated value and beside every candidate in the search dropdown, and blank images always fall back to a generated avatar so no row ever looks empty.
Everything you need to add icons to any field
Every capability below is implemented in the module.
Universal Many2One Widget
One widget usable on any Many2One field — customers, vendors, products, contacts, categories, and beyond — instead of a separate app per record type.
Icon Inside The Field
The selected record's icon shows directly inside the populated field, giving instant visual confirmation of the choice.
Icons In The Search Dropdown
Every candidate in the autocomplete list shows its icon while you search — the exact moment mis-selection happens is now visual.
Record Image Source
Draws the record's own picture — contact avatar or product image — so no duplicate icon upload is ever required.
Initials Avatar Source
A colored initials badge for models with no image field, so every record still gets a distinguishing mark.
Font Awesome Icon Source
Map any Font Awesome glyph and color — countries as flags, categories as tags — for models that have no image at all.
Guaranteed Non-Empty Fallbacks
Blank images automatically fall back to a generated colored-initials avatar, so a row never renders empty.
Admin Mapping With Live Preview
A dedicated configuration screen lets an admin pick the icon source per model and preview the exact rendered result before saving.
Ready-To-Use On Sales, Purchase & Contacts
Ships already applied to the sales order customer and product lines, the purchase order vendor, and the contact form's country field.
How it works
Open Icon Mappings
Go to the Icon Widget app and open the Icon Mappings list.
Choose A Source Per Model
Pick record image, initials avatar, or a Font Awesome icon for the target model.
Preview Before Saving
The live preview panel renders an actual record with the current settings.
See Icons Everywhere
Every form and dropdown using that field updates instantly, no restart needed.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Any Many2One field in Odoo. Add the widget="m2o_icon" attribute to a field in any view, then configure its source once in Icon Mappings — contacts, vendors, products, categories, and any other relation all work the same way.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Many2One Icon Widget
One widget that puts record images, initials avatars or Font Awesome icons inside any Many2One field and its search dropdown, with guaranteed fallbacks and a live-preview mapping screen.
Buy on Odoo App Store