Skip to main content
iVentureTeam

im_livechat.one2many_names

New in Odoo 19, im_livechat.one2many_names flattens a one2many into a single line of display names, joined with locale-aware separators, for the livechat session kanban cards.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 25, 2026Updated August 25, 20265 min read
Technical nameim_livechat.one2many_names
Field typesone2many, many2many
Viewskanban
Moduleim_livechat, installed with Website Live Chat
Used in core2 occurrences in the im_livechat module, both on discuss channel kanban cards
VersionsOdoo 20.0, Odoo 19.0
No-code setupNo. Module-prefixed helper widget with no Studio path.
Alternativesmany2many_tags, x2many_buttons, one2many

What the Names list widget does

Kanban cards have no room for an embedded list, so when the livechat team wanted each session card to lead with the customers involved, they wrote this widget: it takes the records of an x2many field and prints their display names as one formatted line. The joining is done by formatList from Odoo's localization core, so an English user sees Alice, Bob, and Carol while other locales get their own separators and conjunctions.

The entire widget is one getter. It extends ListX2ManyField, the variant that renders x2many fields as plain text, and replaces its formatted value with the mapped display names. The registration adds a relatedFields hook injecting display_name, which is what makes the child names available without the kanban view loading anything explicitly.

What this means for your team

For support managers scanning the livechat sessions board, the widget answers who was in this conversation without a click: the visitor and every agent who participated, straight on the card. The same board powers the Looking for Help queue, where seeing the customer name before grabbing a session is the difference between context and cold starts.

Beyond livechat, the widget is a pattern worth copying whenever a kanban card should mention related records by name rather than count them: attendees on a session card, participants on a case, signatories on a contract. A count says 3 records; a name list says which three, and for triage screens that specificity is usually the more useful of the two.

Working examples

The core pattern: names on a kanban card

<t t-name="card">
    <field class="fw-bolder"
           name="livechat_customer_history_ids"
           widget="im_livechat.one2many_names"/>
    <span>Date: <field name="create_date"/></span>
</t>

Both core usages look like this, on the session history kanban and on the Looking for Help board. The child records' display names arrive automatically thanks to the registration's relatedFields.

Why relatedFields is the right way to load child columns

The relatedFields hook is the interesting engineering. Widgets on x2many fields can declare which columns of the relation they need, and the model loader merges those into the fetch. By declaring display_name at registration time, the widget guarantees its data regardless of the view, the same mechanism many2many_tags uses for its color field. Custom widgets that read child data without declaring it work only when some other widget happened to load the column, a bug class we have documented on several core widgets; this one does it right.

Worth noting for reuse: the widget reads records from the field's list object, which respects the loaded page. An x2many with hundreds of children would print only the loaded slice's names, a non-issue on livechat cards where the participant count is small, but a real consideration before pointing it at large relations.

Version compatibility

VersionStatusNotes
Odoo 20.0In developmentNot released, but the development-branch file is byte-identical to 19.0 at the time of writing.
Odoo 19.0VerifiedVerified against the shipped source. First release with the widget.
Odoo 18.0Not availableWidget does not exist.
Odoo 17.0Not availableWidget does not exist.
Odoo 16.0Not availableWidget does not exist.

Upgrade note. The widget is new in 19.0 and unchanged since, so there is nothing to migrate. Recreating the pattern on 18 or earlier means subclassing that version's x2many text variant and injecting display_name yourself.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026, and the development branch keeps moving until feature freeze, so this section is provisional and re-verified after release.

For this widget the report is short: the file on the development branch is byte-identical to 19.0, registration, component, and relatedFields hook included. Even the broader Owl props migration sweeping most field widgets has not touched it at the time of writing. Views using it should carry to 20 unchanged.

Common problems and fixes

SymptomCause and fix
Missing widget warning and a default x2many renderingThe widget ships with im_livechat; the module is not installed on this database. Install Live Chat or copy the 13-line widget into your own module under your own name.
Names shown but you need them clickableThe widget renders plain text by design; there is no navigation. Use many2many_tags or an embedded list if users must open the child records.
Only some of the linked records' names appearThe widget prints the loaded record page of the x2many, not necessarily the full relation. Keep it on small relations, or raise the field's fetch limit in the view.
Separator style looks different for some usersformatList follows each user's locale for separators and the final conjunction. Expected behavior; it is a localization feature, not a bug.
Options set on the field do nothingBare registration: no options are declared or extracted. There is nothing to configure; fork the widget for different behavior.

Names list widget vs the alternatives

WidgetBest forKey difference
im_livechat.one2many_namesShowing who is on a record, inline on a kanban cardNames as one locale-formatted text line, fully read-only
many2many_tagsNames that should be visually distinct and removableInteractive pills with search and creation
x2many_buttonsJumping to the related recordsRenders names as buttons that navigate, capped with a counter
one2manyFull child record managementEditable grid, far too heavy for a kanban card

The choice is a display decision: names as prose with this widget, names as pills with tags widgets, counts with buttons, or a real editable grid. Only this one costs zero clicks and zero vertical space beyond a text line.

Frequently asked questions

What does the im_livechat.one2many_names widget do?+
It renders a one2many or many2many field as a single line of text: the display names of the linked records joined with locale-aware separators by Odoo's formatList helper. Odoo 19 uses it on livechat session kanban cards to show the conversation's participants.
Why does the widget name contain a dot?+
Module-specific widgets are conventionally registered with their module as a prefix, here im_livechat.one2many_names, to avoid clashing with generic names. The full dotted name must appear in the XML, and the widget only exists where Live Chat is installed.
Can I use im_livechat.one2many_names outside livechat views?+
Technically yes, on any x2many field in a database with Live Chat installed, since the widget declares no supported types. For custom modules the cleaner route is copying the 13-line component and registering it under your own name, removing the dependency.
Does the view need to load display_name for the widget to work?+
No. The registration declares display_name through relatedFields, so the model loader fetches it automatically for the linked records. That is the same mechanism many2many_tags uses to guarantee its color data.
Can users click the names to open the records?+
No. The widget is deliberately read-only prose with no links or popovers. If navigation matters, x2many_buttons renders each related record as a clickable button instead.
Is im_livechat.one2many_names available before Odoo 19?+
No, it is new in 19.0. On earlier versions the livechat kanbans showed other fields, and recreating the effect requires a small custom widget.
Will Odoo 20 change this widget?+
The development branch file is byte-identical to 19.0 at the time of writing, untouched even by the framework-wide props migration. As always, that is provisional until Odoo 20 ships in late September 2026, and this page will be re-verified then.

Kanban cards that carry the right context

Thirteen lines of JavaScript turned a livechat board from counts into names. We build exactly this kind of small, high-leverage view customization, custom widgets, card layouts, and triage boards, for Odoo 16 through 19.

Book a free consultation

How this page was produced

This page was verified by reading one2many_names_field.js on the Odoo 19.0 branch, confirming its absence from 16.0 through 18.0 and its byte-identical state on the public development branch, and checking both core usages in the livechat discuss channel kanbans. The screenshot was captured on a clean Odoo 19 database with Live Chat installed. Corrections via our contact page are welcome.