Live verification checklist¶
Every page in this documentation carries a Needs verification callout listing what has been written from the source code but not yet confirmed against a running instance. This page is the consolidated work list, plus the exact queries that answer it.
Reference instance: Thalia Associates production, Odoo 17.
Status
Blocked as of 2026-07-31 — SSH to the host is refused at the TCP layer (port 22 refused, port 443 open). The applications are serving normally; only shell access is unavailable. Access request is with the system administrator.
Why this matters¶
Documentation written from source code tells you what a module can do. Only the live instance tells you what is actually installed and configured. The gap between the two is where mis-selling happens — a module present in our git tree is not a module running at a client.
The authoritative queries¶
Run against the live database once shell access is restored.
1. What is actually installed¶
The single most important query. Replaces every assumption about module presence.
SELECT name, shortdesc, latest_version, author, state
FROM ir_module_module
WHERE state = 'installed'
ORDER BY author, name;
This settles: which modules are live, their installed versions, and the authoritative
author value that decides tier — no more guessing vendors.
2. Which models each custom module owns¶
Turns "this module has some models" into a precise list.
SELECT module, model, COUNT(*) AS records
FROM ir_model_data
WHERE model IN ('ir.model', 'ir.model.fields')
AND module NOT LIKE 'base%'
GROUP BY module, model
ORDER BY module;
3. The model relationship graph¶
This is what produces the "how the models connect to one another" diagrams.
SELECT m.model AS from_model,
f.name AS field_name,
f.ttype AS relation_type,
f.relation AS to_model
FROM ir_model_fields f
JOIN ir_model m ON m.id = f.model_id
WHERE f.ttype IN ('many2one', 'one2many', 'many2many')
AND f.state = 'manual'
ORDER BY m.model, f.name;
Filter by the relevant prefix for the module under documentation. The output feeds straight into a Mermaid diagram per module page.
4. Access groups actually in use¶
SELECT g.name, COUNT(u.uid) AS users
FROM res_groups g
LEFT JOIN res_groups_users_rel u ON u.gid = g.id
GROUP BY g.name
ORDER BY users DESC;
5. Deployed source versus git¶
ls /var/lib/docker/volumes/captain--odoo-addons/_data/
cd /var/lib/docker/volumes/captain--odoo-addons/_data/ && git status --short
Reveals modules deployed but not committed, and local divergence from the repository.
Consolidated checklist¶
Instance-wide¶
- Full installed-module list captured (query 1) and reconciled against Module availability by version
- Vendor and licence confirmed for
multi_branch_base,advanced_loan_management,employee_bonus_manager - Confirm whether
dynamic_accounts_reportis installed live or only present on disk - Odoo version and edition confirmed
- Number of companies, and whether
multi_branch_baseis active - Modules deployed but absent from git, and vice versa (query 5)
Accounting¶
- Fiscal localisation package installed, and its default VAT rate
- Anglo-Saxon or Continental accounting, and the costing method on product categories
- Journal list with short codes
- Whether fiscal-year and tax lock dates are set
- Whether analytic accounting is enabled, and the analytic plan structure
- The reconciliation workflow the team actually uses on Community 17
- Confirm the Accounting root menu is supplied by
base_accounting_kitas documented
Per module, as each page is written¶
- Menu paths confirmed against the live UI, not inferred from view XML
- Access groups confirmed against
res_groups - Screenshots captured to
docs/assets/<page-name>/ - Workflow narrative confirmed with someone who performs it daily
Screenshot capture list¶
Only a person with UI access can do this. Save to docs/assets/<page-name>/, PNG, browser
at a normal window width, no client-identifying data visible.
| Page | Screens needed |
|---|---|
| Accounting | Invoicing/Accounting dashboard · posted customer invoice · chart of accounts · journals config · a tax showing its grids · Register Payment dialog · Profit & Loss from base_accounting_kit |
| Inventory | Inventory overview · a delivery order · stock adjustment · valuation report |
| Employees | Employee form · contract form |
| Payroll | Payslip batch · a payslip with computed lines · Register Payroll Payment wizard |
| Purchase | Purchase order in approval state · approval history |
| Sales | Quotation · confirmed sales order |
Redact before publishing
Screenshots from a production instance contain a real client's data. Blur or use demo records for anything client-identifying before this site is shared outside CodeNest.