- Home
- Apps
- SaaS Tools
- Smart List Column Reorder
Illustrative previewA build-to-order Odoo module that adds drag-and-drop column reordering to any list view and remembers each user's chosen layout across sessions.
ECOSIRE designs, builds, installs, and supports it for your Odoo 17/18/19 database after a scoping call.
What is Smart List Column Reorder?
A build-to-order Odoo module that adds drag-and-drop column reordering to any list view and remembers each user's chosen layout across sessions. ECOSIRE designs, builds, installs, and supports it for your Odoo 17/18/19 database after a scoping call. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Every operations, sales, and accounting team lives inside Odoo list views, yet the column order is fixed by whoever wrote the XML <tree>/<list> definition. A dispatcher wants the delivery date first; an accountant wants the amount and tax columns adjacent; a salesperson wants the stage before the customer. Out of the box, Odoo only lets a user hide or show optional columns through the view's options menu — it does not let them drag a column to a new position, and any tweak an admin makes to the base view applies to everyone. The result is daily friction: horizontal scrolling to reach the one field that matters, screenshots annotated with "can we move this column," and studio edits that quietly break on the next upgrade.
Smart List Column Reorder is a module we build to close that gap cleanly. It hooks into the OWL list renderer so that column headers become drag handles: a user grabs a header, drops it where they want, and the layout updates immediately — no page reload, no developer involvement. The chosen order is persisted per user and per model (optionally per action/view) in a small backing model such as smart.list.column.pref, written through the standard ORM with create/write and read back when the list mounts. Because persistence is scoped to res.users, one person reordering the Sales Orders list never disturbs a colleague's view. We wire access with ir.model.access.csv plus a record rule so users can only read and write their own preference rows, and we expose a small "reset to default" control that deletes the stored preference and falls back to the original view order.
Technically, the work sits mostly in the web client: an OWL/JS patch of the list header component for the drag interaction, a JSON-RPC round trip to save the new column sequence, and a compute-light Python model to store it. We keep the base view XML untouched — no studio overrides, no brittle field re-ordering in the <list> arch — so your existing views, reports, and automations are unaffected and future Odoo updates apply normally. The behavior degrades safely: if a stored column no longer exists (a field was removed) it is ignored, and unknown columns simply render in their default slot. We can optionally add admin-defined "locked" columns that users may not move, group-level default layouts pushed to a team, and an export of a user's layout so a new hire can inherit a proven configuration. It is built and validated against Odoo 17.0, 18.0, and 19.0, and works on Community and Enterprise (Enterprise's extra list widgets are respected, not overridden).
Delivery is build-to-order: after a short scoping call we confirm exactly which models get the behavior, whether you want per-view or per-model scoping, and any locked/team-default rules, then we build, code-review, and test the module on a staging copy of your database before install. Typical delivery is one working week from confirmed scope. You receive the full installable source, so nothing is a black box. Pricing starts from $999 (indicative, single-company base scope); the number of target models, per-view versus per-model scoping, team-default and locked-column rules, and multi-company deployment increase the quoted scope. We provide a fixed quote after the scoping call.
What you get
- Installable module source code for your Odoo version (17.0, 18.0, or 19.0), including `__manifest__.py`, models, security files, and OWL/JS assets
- Installation and configuration on your environment, including the target-model allowlist and any team-default/locked-column rules
- Technical documentation covering the data model, security rules, and how the OWL header patch works
- End-user guide plus a live training session for the teams who will use the reordering
- Post-go-live support window for defect fixes and questions
- UAT on a staging copy of your database with a documented rollback plan before production install
- Git repository handover with full commit history and tagged release
- Signed-off scope document listing exactly which models, views, and rules were built
Who this is for
Operations & dispatch leads
Teams that live in high-volume list views (deliveries, manufacturing orders, tickets) and need the most decision-critical column first without horizontal scrolling, set individually per operator.
Finance and accounting managers
Users who want amount, tax, due-date, and journal columns arranged in their own reading order across invoice and payment lists — without an admin editing the shared view for everyone.
Odoo administrators and internal IT
Owners of the database who want the flexibility of user-controlled layouts without Studio overrides that break on upgrade, and who need clean security scoping and source-code ownership.
Sales operations teams
Reps and managers who reorder pipeline, quotation, and customer lists to match their workflow, and want new hires to inherit a proven column layout on day one.
How Smart List Column Reorder Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Column reordering | Live drag-and-drop on list headers | Possible, but you specify and pay for the exact interaction | Usually drag-and-drop, but fixed to the vendor's assumptions | Not available — order fixed in view XML |
| Per-user persistence | Saved per user (and optionally per view) via a scoped ORM model | Only if you scope it in; often overlooked | Sometimes per user, sometimes global depending on the app | None — no user-level column memory |
| Security scoping | `ir.model.access.csv` + record rule so users see only their own layout | Depends entirely on the developer's diligence | Rarely documented; may store globally | N/A — no stored preferences |
| Upgrade safety | Base view XML untouched; no Studio overrides | Varies; ad-hoc arch edits can break on upgrade | Depends on how the vendor patched the renderer | Safe, but only because nothing is configurable |
| Source-code ownership | Full source + git repo handover | Yes, you own what you paid to build | Often obfuscated or license-locked | N/A |
| Fit to your models | Allowlist of exactly the models you choose | Fully bespoke, at bespoke cost/time | Applies broadly with limited targeting | N/A |
| Version coverage | Built & tested for 17.0/18.0/19.0, Community + Enterprise | Whatever you commission and test | Varies; may lag new major versions | Ships with every version but non-configurable |
| Support & delivery | Scoping call, staging UAT, rollback plan, post-go-live window | Depends on your internal team's capacity | Ticket-based support of variable quality | Standard Odoo support only |
Frequently Asked Questions about Smart List Column Reorder
Is this an existing app I can download and install today?
No. Smart List Column Reorder is built to order. After a scoping call we build, code-review, and test the module against your Odoo version and your specific target models, then install it. You receive the full source code — it is not a black-box download.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The exact timeline is fixed in your quote and depends on how many models get the behavior, whether you need per-view scoping, and extras like team-default or locked-column rules. Simple single-model scope lands toward the shorter end.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base scope. The number of target models, per-view versus per-model scoping, team-default and locked-column rules, and multi-company deployment increase the quoted scope. We give you a firm fixed quote after the scoping call — the from-price is a starting point, not the final figure.
Will one user's reordering affect other people's lists?
No. Column order is persisted per user (keyed on `res.users`) and protected by a record rule so each person can only read and write their own preferences. If you want a shared team default, we can add a group-level layout that seeds new users while still letting them personalize afterward.
Does this modify my existing views or risk breaking upgrades?
No. We deliberately leave your base view XML untouched — the behavior lives in the OWL list renderer and a small preference model, with no Studio overrides or `<list>` arch rewrites. That keeps your views, QWeb reports, and automated actions unaffected and lets standard Odoo updates apply normally.
What about support and updates after go-live?
Every build includes a post-go-live support window for defect fixes and questions, and a git repository handover so your team owns the code. Because you hold the source, you can maintain it yourselves or engage us for a support/maintenance arrangement, including forward-porting to a newer Odoo major version later.
Does it work on Odoo Community as well as Enterprise?
Yes. It is built and regression-tested against Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. On Enterprise we respect the extra list widgets and optional-column behavior rather than replacing the renderer, so nothing you already rely on is lost.
Related Modules

Silent Direct Printing
A build-to-order Odoo module that sends reports, labels and receipts straight to any network, USB, WiFi or Bluetooth printer with zero browser print dialog — plus rule-based auto-printing on record events. ECOSIRE scopes, builds, installs and supports it for your stack.

Social Catalog and Shopping Sync for Odoo
A build-to-order Odoo module that turns your product catalog into a live, rule-driven feed for social commerce channels, keeping price, stock, variants, and imagery in sync from Odoo. ECOSIRE scopes, builds, installs, and supports it for your database.

Social Facebook
A build-to-order Odoo module that connects your Facebook Pages to Odoo for scheduled publishing, comment and message handling, and native page analytics. ECOSIRE scopes, builds, installs, and supports it — this is a made-to-order engagement, not an off-the-shelf download.
Smart List Column Reorder
A build-to-order Odoo module that adds drag-and-drop column reordering to any list view and remembers each user's chosen layout across sessions. ECOSIRE designs, builds, installs, and supports it for your Odoo 17/18/19 database after a scoping call.
- Drag-and-drop column reordering directly on OWL list-view headers, applied live with no page reload
- Per-user persistence of column order via a dedicated ORM model (e.g. `smart.list.column.pref`) keyed on `res.users`
- Optional per-view/per-action scoping so the same model can hold different layouts in different menus
- Layout saved over JSON-RPC on drop, then rehydrated when the list component mounts
