| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 9122 |
| Technical Name |
praetorx_cockpit |
| License | LGPL-3 |
| Website | https://praetorx.net |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 9122 |
| Technical Name |
praetorx_cockpit |
| License | LGPL-3 |
| Website | https://praetorx.net |
PraetorX Cockpit
Role-Based Tile Workspace with Real-Time Updates for Odoo 19
Give every team its own dashboard. PraetorX Cockpit delivers a configurable tile workspace where different roles see different live data — counters, queues, charts, action buttons, barcode scanners, work queues, and report tiles — all updated in real-time via Odoo’s bus system.
praetorx.net | Syntax & Sabotage
Workspace
Assign tiles to roles via Many2many. Each role sees its own set of tiles. Tiles without a role assignment are visible to all users. Role filtering happens server-side.
Tile data refreshes via Odoo’s built-in bus.bus longpolling. No Redis, no websockets, no external infrastructure. Uses the same channel as Odoo chat notifications.
Create tiles from any Odoo model. Set domain filters, group-by fields, click actions, and JSON context directly in the backend — no code required.
Per-tile show_mobile toggle and mobile_priority setting. Mobile breakpoint at 768px. Hide low-priority tiles on small screens.
Cockpit depends on PraetorX Shell. When installed, Cockpit becomes an available workspace within the branded Shell interface.
Ships with ready-to-use tiles: contact counters, activity queues, country charts, quick-create actions, barcode scan, overdue crons, failed mails, system stats (DB size, active sessions, error log).
7 Tile Types
Single KPI metric — count of records matching a domain. Optional delta badge showing new records since last login.
Total count plus live preview of up to 5 recent records with name, state, and “new” badge. Click navigates to filtered list view.
Doughnut chart grouped by any field (Many2one or selection). Rendered with Chart.js. Clickable segments. Custom data via method_name.
CTA button that opens a form view for quick record creation. Supports JSON context to pre-populate field values.
Inline text input for barcode or reference lookup. Submits on Enter, navigates to matching record. Works with USB/Bluetooth barcode scanners via HID input.
Prioritized item list with a claim button. Claimed items trigger a bus notification to update other connected clients. Default tiles: overdue crons, failed mails.
Renders HTML content returned by a model method. Use for revenue summaries, operational KPIs, or custom tabular data.
Technical Reference
| Component | Details |
|---|---|
| praetorx.cockpit.tile | Tile definition — name (translatable), technical_name (unique), tile_type, section, model_name, domain, method_name, chart_group_field, action_xmlid, action_context, icon, color, role_ids, show_mobile, mobile_priority, sequence |
| Controller | 4 JSON-RPC endpoints: /praetorx/cockpit/roles, /tiles, /data, /tile_action |
| Bus Channel | praetorx_cockpit/workqueue_update — pushes claim events with tile name, item ID, action, user |
| OWL Components | Main cockpit + 7 tile components (counter, queue, workqueue, chart, action, scan, report). Chart uses Chart.js. |
| System Stats | Built-in methods: _count_active_sessions (bus.presence), _get_db_size_mb (pg_database_size), _count_errors_24h (ir.logging) |
Use Cases
Counter tiles for open pickings, a Workqueue for pick lists, and a Scan tile for product barcode lookup.
Open invoice counter with delta badge, payment queue with 5-item preview, and a doughnut chart of invoice states.
Built-in system stat tiles: database size, error log count (24h), overdue crons, active sessions — all on one screen.
New lead counter, an Action tile for “Create Contact”, a Queue of today’s follow-up activities, and a Chart showing contacts by country.
Screenshots
Screenshots coming soon. Install the module to see the full experience.
Setup Guide
- Odoo 19.0 (Community or Enterprise)
- Python 3.10+
- Required modules:
bus,web - PraetorX modules:
praetorx_base,praetorx_shell - No external Python dependencies
No Enterprise dependency. Works on Community, Enterprise, and Odoo.sh.
Install from the Odoo Apps menu. Search for “PraetorX Cockpit” or “Cockpit”.
Cockpit requires praetorx_base and praetorx_shell — these will be installed automatically as dependencies.
Navigate to PraetorX → Cockpit. Your tiles appear immediately. The 16 default tiles are pre-configured and visible to all users.
- Navigate to PraetorX → Configuration → Cockpit Tiles
- Click New, choose a tile type, set the target model and domain filter
- Optionally assign roles to control visibility
- Set icon (Font Awesome), color (hex), and sequence for ordering
Cockpit User: View tiles and tile data (read-only).
Cockpit Manager: Create, edit, and delete tiles. Manage tile configuration. Implies User. Admin assigned by default.
Set the Method Name field on a tile to any method on the target model. Counter, Chart, and Report tiles support custom methods that return structured data. This allows integration with any business logic in your custom modules.
FAQ
bus, web (both in Community), praetorx_base, and praetorx_shell.sale.order, stock.picking) and a domain filter. The tile respects Odoo’s standard record rules and access rights.bus.bus longpolling. No additional infrastructure required. Workqueue claim events push updates to all connected clients via the praetorx_cockpit/workqueue_update channel.praetorx_base and praetorx_shell. However, role-based tile filtering uses praetorx.role records — if PraetorX Roles is installed, tiles can be assigned to specific roles. Without it, all tiles are visible to all users.name field has translate=True, so tile labels can be translated per language via Odoo’s standard translation mechanism.Release History
v19.0.1.0.1 — April 2026
Current Release
- i18n: all source strings converted from German to English
- German translations provided via
i18n/de.po
v19.0.1.0.0 — March 2026
Initial Release
- 7 tile types: Counter, Queue, Workqueue, Chart, Action, Scan, Report
- Role-based tile visibility via Many2many assignment
- Real-time updates via bus.bus longpolling
- 16 default tiles including system stat tiles
- Admin-configurable: model, domain, method, action, context, icon, color
- Mobile support with per-tile visibility and priority
- Chart.js integration for doughnut charts
- Workqueue claim with bus notification to other clients
- Barcode/text scan tile with Enter-key submission
- Delta badges (new records since last login)
- Translatable tile names
- 20 automated tests
You May Also Like
Branded backend theme with sidebar, home tiles, activity dashboard, and per-role color theming. Cockpit runs inside Shell.
FreeRole-based user group management. Install to enable per-role tile visibility in Cockpit.
39 EURShared security groups, menus, queue jobs, and technical patterns. Required dependency.
FreeMade with ♥ by Syntax & Sabotage
© 2026 Syntax & Sabotage, Lars Weiler. All rights reserved. LGPL-3.
Impressum · support@syntaxandsabotage.io
Please log in to comment on this module