| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 2323 |
| Technical Name |
cml_web_list_manager |
| License | LGPL-3 |
| Website | https://kaypi.pe |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 2323 |
| Technical Name |
cml_web_list_manager |
| License | LGPL-3 |
| Website | https://kaypi.pe |
cml_web_list_manager gives administrators full control over list view column layouts in Odoo 17. Create named configurations per model, view and security group, then let users apply them with one click from the column manager sidebar — without touching technical settings or XML views.
- ✅ Centralized Configuration — define column layouts from Settings, scoped by model, view and security group
- ✅ Show / Hide Columns — control which fields are visible or hidden per configuration
- ✅ Drag & Drop Reorder — set the exact column order per configuration in the sidebar
- ✅ Rename Labels — override the default field label with a custom name per configuration
- ✅ Restrict by Security Group — mark individual columns as visible only for specific groups
- ✅ Dynamic Fields — add columns that are not in the original view arch, loaded on demand
- ✅ Multi-company Support — configurations can be scoped per company
- ✅ RBAC — List View Manager group controls who can create and edit configurations
- ✔ Community
-
✔
Enterprise
On-premises - ✔ Odoo.sh
- ✘ Online
Native Odoo column controls are per-user and reset on each session. cml_web_list_manager makes column layouts a centralized admin decision — persistent, role-aware and applied automatically for every user.
🏛 Centralized admin control
Define column layouts once in Settings and they are enforced for the right users automatically — no XML editing, no technical mode, no per-user configuration needed.
🔒 Role-based column visibility
Restrict individual columns to specific security groups. A cost price column visible only to managers, a margin column only to sales leads — all within the same configuration, applied to the same view.
📋 Dynamic fields without XML
Add any model field as a column — even if it is not in the original view arch. Dynamic columns are fetched on demand and injected at runtime with no view customization required.
✏ Custom labels per configuration
Override field labels with business-friendly names per configuration. The technical field name stays untouched — only the column header display changes for the users who receive that layout.
📁 Multi-model, multi-view scoping
Create separate configurations per model, per view and per company. Each list view in each app can have its own layout rules — without any configuration bleeding into other views.
⚡ Zero-dependency install
Depends only on web. No extra Python libraries, no third-party JS bundles.
Works on Community, Enterprise on-premises and Odoo.sh.
Watch the full flow — create a configuration, reorder columns, restrict by group and apply in one click.
1. Overview
cml_web_list_manager lets administrators define column layouts for any list view in Odoo 17, scoped by model, view and security group. When a user opens a list view, the module automatically applies the configuration that matches their group — no technical mode or XML editing required.
Typical admin flow
- Go to Settings → Technical → List View Configurations.
- Create a configuration for the model and view you want to control.
- Open the list view and click Manage list view from the optional columns dropdown.
- In the sidebar, arrange columns, rename labels and set group restrictions.
- Click Apply — the configuration is saved and active for the assigned group.
2. Backend Configuration
Configurations are managed from Settings → Technical → List View Configurations. Each record defines the scope — model, view, security group and company — and contains a column list with the desired layout.
- Name — a descriptive label for the configuration.
- Model — the Odoo model this configuration applies
to (e.g.
sale.order). - List View — optionally restrict to a specific view ID; leave empty to apply to all list views of the model.
- Security Group — the group that receives this layout; leave empty for a global fallback.
- Company — optional multi-company scope.
- Active — inactive configurations are ignored.
3. Manager Sidebar
The sidebar is the main interface for configuring the column layout of a specific list view. It is opened from the optional columns dropdown by clicking Manage list view.
Sidebar sections
- Columns — lists all current columns with their visibility state (Visible / Hidden), source badge (Native / Dynamic) and action buttons.
- Available fields — searchable list of fields not yet in the column list, ready to be added as dynamic columns.
Footer actions
- Reset view — discards all changes and removes the saved configuration, reverting to the native view.
- Cancel — closes the sidebar without saving.
- Apply — saves the configuration to the database and reloads the list.
4. Show / Hide Columns
Each column in the sidebar shows a Visible or Hidden badge. Clicking the eye-toggle on a column item switches its visibility state — visible columns appear in the list, hidden columns are removed but remain in the configuration for easy re-enabling.
- Hidden columns are grayed out in the sidebar so the full layout is always visible at a glance.
- The visibility state is saved per column in
cml.list.view.config.column. - Changes only take effect after clicking Apply.
5. Reorder Columns
Drag and drop column items in the sidebar to set the exact order they will appear in the list view. The sequence is saved in the configuration and applied automatically when the view loads.
- Grab the drag handle (⋮⋮) on the left of any column item and drop it in the desired position.
- Both visible and hidden columns can be reordered — hidden columns keep their sequence for when they are re-enabled.
- A placeholder indicator shows where the column will land during drag.
6. Rename Labels
Override the default field label with a custom name for this configuration. The renamed label is shown in the column header for all users who receive this configuration.
- Click the Rename button (pencil icon) on a column item to open the rename popover.
- Type the new label and confirm — the column header updates in the preview immediately.
- The original field label is preserved in the model; only the display label changes for this configuration.
- Clear the custom label to restore the original field name.
7. Restrict by Security Groups
Mark a column as visible only for users in specific security groups. Users outside those groups will not see the column even when the configuration is applied to them.
- Click the lock icon on a column item to open the group restriction popover.
- Search and add one or more security groups — they appear as removable tags.
- A column with no groups set is visible to all users who receive the configuration.
- This is independent of Odoo's field-level access rights — it only controls column visibility in the list.
8. Dynamic Fields
Add columns that are not part of the original view arch. Dynamic fields are fetched from the model on demand and injected into the list without modifying any XML view.
- Browse available fields in the Available fields section and click Add to view.
- Supported types: boolean, char, date, datetime, float, integer, many2one, monetary, selection, text.
- Dynamic columns are marked with a Dynamic badge in the sidebar.
- Values are loaded in batch via a separate RPC read — Odoo's
web_search_readdoes not include them automatically. - If a dynamic field is removed from the model, the column is silently skipped on next load.
Installation steps
- Place
cml_web_list_managerin your custom addons path. - Update Apps List from the Apps menu.
- Install List View Manager.
- Assign users to the List View Manager group in Settings → Users to allow them to create and edit configurations.
- To upgrade after an update:
./odoo-bin -c your_odoo.conf -d your_database -u cml_web_list_manager --stop-after-init
❓ Can regular users edit the configuration?
No. Only users in the List View Manager group can create and save configurations. Regular users see the applied layout but cannot modify it.
❓ What happens if no configuration matches a user?
The native Odoo list view is shown without any modifications. The module only acts when an active matching configuration exists.
❓ Can I have different layouts for different groups on the same list view?
Yes. Create one configuration per group for the same model and view. The module applies the configuration that matches the user's group, or the global fallback if none matches.
❓ Does column restriction replace Odoo field-level access rights?
No. Column restriction only hides the column in the list UI. Odoo's field access rights are enforced independently. Use both together for full control.
❓ Does it work inside embedded lists (One2many)?
The manager applies to top-level list views only. Embedded One2many/Many2many lists inside forms are not affected.
Need Help?
Contact us for technical support, bug reports, feature requests, or help setting up list view configurations for your team.
Contact Support⏰ Response time: 24–48 business hours
⭐ If this module helps your team, please leave a review on Odoo Apps ⭐
Please log in to comment on this module