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 $249.00 USD; request a quote for a scoped proposal.

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.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
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.
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
One-click 'reset to default' that deletes the stored preference and restores the original `<list>` arch order
Graceful handling of removed or renamed fields — stale columns are ignored, unknown columns fall back to default position
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 2–4 weeks from confirmed scope. You receive the full installable source, so nothing is a black box. Pricing starts from $249 (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.
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.
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.
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.
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.
Buy the license on ecosire.com and download the Smart List Column Reorder module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Smart List Column Reorder, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| Source-code ownership | Full source + git repo handover | Yes, you own what you paid to build | Often obfuscated or license-locked | |
| Fit to your models | Allowlist of exactly the models you choose | Fully bespoke, at bespoke cost/time | Applies broadly with limited targeting | |
| Version coverage | Built & tested for 17.0/18.0/19.0, Community + Enterprise | Whatever you commission and test | Varies; may lag new major versions | |
| 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 |
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.
Typical delivery is 2–4 weeks 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.
Pricing starts from $249 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.
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.
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.
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.
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.
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.