- Home
- Apps
- SaaS Tools
- SQL BI View Editor
Illustrative previewA build-to-order Odoo module that turns your SQL into governed business intelligence views
— materialized or standard — exposed as read-only ORM models you can pivot, filter, group, and export.
ECOSIRE scopes, builds, installs, and supports it.
What is SQL BI View Editor?
A build-to-order Odoo module that turns your SQL into governed business intelligence views — materialized or standard — exposed as read-only ORM models you can pivot, filter, group, and export. ECOSIRE scopes, builds, installs, and supports it. 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
Analysts and finance teams on Odoo constantly hit the same wall: the reporting they actually need spans several models — sale orders joined to invoices joined to stock moves joined to analytic lines — but Odoo's native pivot, list, and graph views only report on one model at a time. The out-of-the-box workarounds are painful: build a fragile computed model, wire up dozens of related/compute fields, export to a spreadsheet and reconcile by hand, or push everything into an external BI tool and re-implement your access rules there. Meanwhile the SQL that answers the question already exists in someone's psql session — it just has nowhere to live inside Odoo where the business can safely use it.
The SQL BI View Editor closes that gap. We build a module that lets your team define a business intelligence dataset as a SQL statement and register it as a first-class, read-only Odoo model backed by a real PostgreSQL view. Under the hood each definition maps to a models.Model with _auto = False whose init() runs a CREATE OR REPLACE VIEW for standard (always-live) views, or a CREATE MATERIALIZED VIEW with a scheduled REFRESH for heavy aggregations that you would rather compute on a cron. The declared columns become proper Odoo fields — Integer, Float, Char, Many2one, Date, Datetime, Selection — so the dataset instantly gains pivot, graph, list, and search views, group_by/measure behaviour, and XLSX export, with no bespoke reporting UI to maintain.
Governance is built in, because a raw SQL surface inside an ERP is a liability if it is ungoverned. Every generated model ships with ir.model.access.csv entries and optional ir.rule record rules so a view can be scoped by company, department, or user group, and multi-company datasets respect company_id filtering. Definitions are edited by a restricted authoring group only; the resulting views are read-only to everyone else. We validate each statement against a SELECT-only allowlist so authors cannot smuggle DML into a definition, register the view against the correct database cursor, and (for materialized views) create the supporting indexes and a REFRESH MATERIALIZED VIEW CONCURRENTLY-safe unique index where the workload calls for it. Refreshes can be triggered by ir.cron, by an automated action, or on demand from a button. Because the datasets are ordinary models, they are reachable over XML-RPC/JSON-RPC and can feed a downstream BI/dashboard tool through Odoo's own authenticated API rather than a direct database connection.
Delivery is build-to-order: this is not an existing apps.odoo.com download. We start with a short scoping call to inventory the reports you need, the source models and joins involved, your Community-vs-Enterprise edition, target version (17.0, 18.0, or 19.0), and multi-company/localization requirements. We then build your version of the module, prove it on a staging database with your data volumes, run UAT with your analysts, and deploy with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); the number and complexity of source views, multi-company/record-rule depth, materialized-refresh scheduling, and data-migration or historical-backfill volume increase the quoted scope. You receive a fixed quote after the scoping call.
What you get
- Installable source code for your version of the SQL BI View Editor module (17.0 / 18.0 / 19.0 as scoped)
- Installation and configuration on your environment, including view registration and cron/refresh setup
- Technical documentation: model design, view-definition schema, access-rule map, and refresh scheduling
- End-user guide plus a live training session for your analyst/authoring group
- Post-go-live support window for defect fixes and configuration questions
- UAT on a staging database with your data volumes, plus a documented rollback plan
- Git repository handover with full commit history and tagged release
- Seed set of your initial BI view definitions built and validated during the engagement
Who this is for
Finance & Controlling Analyst
Needs cross-model reporting (orders-to-invoice-to-payment, margin by analytic account) that native single-model pivots can't express. Wants to author the SQL once and hand the team a governed, filterable dataset instead of a spreadsheet.
Odoo Functional / ERP Manager
Owns reporting standardization across departments and companies. Needs role-scoped access, multi-company `company_id` filtering, and a read-only surface so ad-hoc queries never mutate ERP data.
BI / Data Engineer
Already writes the SQL and maintains dashboards downstream. Wants those queries to live as Odoo models reachable over XML-RPC/JSON-RPC with materialized-view refresh on a schedule, rather than a fragile direct database connection.
Operations / Supply-Chain Lead
Needs joined views over stock moves, purchase, and manufacturing with heavy aggregations refreshed nightly, surfaced as pivot/graph views the team can slice without exporting.
How SQL BI View Editor Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Cross-model reporting (multi-table joins) | Purpose-built: any SQL join exposed as one governed BI dataset | Achievable but you design and maintain the SQL-to-model plumbing yourself | Generic editor, often limited to simpler joins and light governance | Pivot/graph report on a single model only |
| Materialized vs standard views | Both, chosen per dataset with scheduled `REFRESH` and indexing | Possible, but refresh/index logic is hand-rolled each time | Usually standard views only; materialized support varies | No user-facing SQL view layer |
| Access governance | Per-view `ir.model.access.csv` + optional `ir.rule`, restricted authors | Whatever you remember to build | Basic group access; record-rule depth often shallow | Standard model ACLs, but no ad-hoc view layer to govern |
| Multi-company | `company_id`-aware filtering built into scoped datasets | Add it yourself per view | Inconsistent; frequently single-company assumptions | Native models are multi-company; ad-hoc joins are not |
| External BI / API access | Datasets queryable over XML-RPC/JSON-RPC through Odoo auth | Build the endpoints or expose a raw DB link | Varies; may require direct DB access | API exists per model, but no combined-view dataset |
| Safety of raw SQL | SELECT-only allowlist + read-only generated models | Depends entirely on your validation discipline | Validation strength varies by vendor | No raw SQL surface, so no exposure |
| Fit to your data model | Built to your exact reports, versions, and edition | Fully bespoke but full cost and timeline on you | Generic; you adapt your needs to the tool | Fixed to core report views |
| Support & ownership | Fixed quote, support window, full source + git handover | You own everything including the maintenance burden | Vendor-dependent; roadmap outside your control | Covered by your Odoo support, no custom layer |
Frequently Asked Questions about SQL BI View Editor
Is this an app I can download and install today?
No. This is a build-to-order engagement, not an existing apps.odoo.com download. ECOSIRE scopes your reporting requirements, builds your version of the module, validates it on staging, and installs it. You receive installable source and a git repo at handover.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The timeline depends on how many source views you need, the complexity of the joins, multi-company/record-rule depth, and whether historical data backfill is involved. We confirm a delivery date with the fixed quote after the scoping call.
How does pricing and scoping work?
Pricing starts from $999 (indicative, single-company base scope). The number and complexity of views, multi-company and record-rule requirements, materialized-refresh scheduling, and any data-migration volume increase the quoted scope. After a short scoping call we send a fixed, itemized quote — no firm price is committed before we understand your requirements.
What about support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and configuration questions. Because you receive the full source and git repository, your team can maintain and extend the module. We also offer ongoing support and version-upgrade engagements (for example moving your build from 17.0 to 18.0 or 19.0) as a separate scope.
Standard SQL view or materialized view — which do I get?
Both are supported and we choose per dataset during scoping. Standard views (`CREATE OR REPLACE VIEW`) are always live and best for lightweight queries. Materialized views are used for heavy aggregations where you prefer to precompute on a schedule; we add the supporting indexes and an `ir.cron` refresh (with a unique index so `REFRESH … CONCURRENTLY` doesn't lock readers).
Does it work with Odoo Community, and which versions?
Yes. The module is built on standard ORM primitives (`_auto = False` models, `ir.model.access.csv`, `ir.rule`, `ir.cron`) that exist in both Community and Enterprise, and we build for Odoo 17.0, 18.0, or 19.0. Any Enterprise-only integration points (such as feeding Enterprise dashboards) are confirmed during scoping.
Is letting people run SQL inside Odoo safe?
Yes, because the surface is governed. View definitions are editable only by a restricted authoring group, each statement is validated against a SELECT-only allowlist so no DML/DDL can be saved, generated models are read-only (`create`/`write`/`unlink` blocked), and every view carries access rules and optional record rules for company/group scoping.
Related Modules

Social Media Command Center for Odoo
A build-to-order Odoo module that lets your team compose, schedule, and manage social posts across multiple platforms from a single Odoo workspace. ECOSIRE designs, builds, installs, and supports it around your exact accounts and approval workflow.

South Korea e-Tax Invoice (Hometax)
A build-to-order Odoo module that turns a posted customer invoice into a compliant Korean electronic tax invoice, transmits it through your Hometax or ASP route, and tracks acceptance, rejection and correction end to end. ECOSIRE builds, installs and supports it for your Odoo 17.0, 18.0 or 19.0 database.

Sticky Header and Column in List View
A build-to-order Odoo module that keeps list-view column headers and chosen leading columns pinned in place while users scroll wide, long records. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 database.

Sticky Notes for Odoo
A build-to-order Odoo module that pins colour-coded sticky notes to any form view, surfacing alerts, warnings, and internal messages exactly where your team works. ECOSIRE scopes, builds, installs, and supports it for Odoo 17, 18, or 19.
SQL BI View Editor
A build-to-order Odoo module that turns your SQL into governed business intelligence views — materialized or standard — exposed as read-only ORM models you can pivot, filter, group, and export. ECOSIRE scopes, builds, installs, and supports it.
- View-definition model with `_auto = False` whose `init()` issues `CREATE OR REPLACE VIEW` for standard views
- Materialized-view mode: `CREATE MATERIALIZED VIEW` plus scheduled `REFRESH MATERIALIZED VIEW`, with a unique index to enable `CONCURRENTLY`
- Column-to-field mapping that exposes SQL columns as native Odoo fields (`Integer`, `Float`, `Char`, `Many2one`, `Date`, `Datetime`, `Selection`)
- Automatic pivot, graph, list, and search views on each dataset with `group_by`/`measure` support and one-click XLSX export