Every child record, inline — without leaving the list.
One2many Sublist lets your team expand any list-view row to review its one2many children as a live sub-table — right there, no form view required.
The problem
Reviewing a record's related lines today means opening its form view, one record at a time — repetitive context-switching for accountants reconciling journal entries or sales staff auditing quotations. The handful of existing sublist add-ons make it worse with documented widget-loading failures and inconsistent column labels.
The solution
One2many Sublist adds a reliable, arch-driven list-view class that expands any row inline into a read-only sub-table of its one2many children — complete with expand-all, sorting, column visibility, and duplicate detection, and no per-field setup required.
Everything you need to review nested records
Every capability below is implemented in the module.
Inline expand and collapse
Click the chevron on any row to reveal its one2many children as a sub-table, with zero per-field setup required.
Works on any one2many field
Driven entirely by view arch attributes, so it renders on sales lines, journal items, purchase receipts, or any other one2many relation out of the box.
Expand-all and collapse-all
One click opens or closes every sublist on the page, removing the need to toggle rows one by one.
Configurable pagination
Long sublists page automatically at an admin-configurable threshold, with Show more, Show all, and Show less controls.
Duplicate detection and filtering
Matching child rows are highlighted with a warning badge, and a one-click filter isolates duplicates for quick resolution.
Column visibility and per-column sorting
A column menu lets users hide fields they do not need, and clicking any header sorts the sub-table by that column.
Sticky headers and row numbers
Sub-table headers stay visible while scrolling, and each child row is numbered for easy reference across long lists.
Avatar columns and row selection
User and partner columns show avatars automatically, and selected rows are highlighted for clear visual tracking.
Configurable default page size
Administrators set the default sublist page size once from Settings, applied across every model that uses the widget.
How it works
Add the widget
Set js_class="o2m_sublist" on any list view's one2many field — no Python required.
Expand a row
Click the chevron, or press Enter or Space, to reveal that record's children inline.
Filter and sort
Use the column menu, per-column sort, and duplicate filter to focus on what matters.
Review at a glance
Scan totals, avatars, and sticky headers across every expanded row without leaving the list.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
It works with any one2many field generically — just set js_class="o2m_sublist" on the field in your list view arch. No per-model or per-field Python is required.
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.
One2many Sublist
An inline sub-table that expands any one2many field right in the list row, with pagination, column visibility, per-column sorting, sticky headers and expand-all — no form view required.
Buy on Odoo App Store