Skip to content

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_report is installed live or only present on disk
  • Odoo version and edition confirmed
  • Number of companies, and whether multi_branch_base is 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_kit as 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.