Core module map¶
This page is the spine of the documentation. It lists every Odoo core module NestERP depends on, where each dependency comes from, and which of our modules would break without it.
The list is not a judgement call. It is the union of the depends declarations of every
NestERP custom module across the Odoo 16, 17 and 18 trees. Odoo ships hundreds of core
modules; these are the 29 our code actually stands on.
Scope of this documentation
Two module groups are out of scope and excluded entirely:
nest_hms_*— the hospital suite is a separate product, nestHMS. Excluding it also removed the Odoo core modules only it required:uom,product_expiry,calendar.- Point of Sale / Restaurant — the
pos_*,cr_pos_*,company_logo_kot_receiptandsync_pos_combo_productmodules. Excluding them also removedpos_restaurant,pos_hrandpos_salefrom the core list.
The count went 36 → 33 → 29 as each group came out.
The three tiers¶
graph TD
A["Tier 1 — Odoo Core (Community Edition)<br/>base · web · mail · account · stock · sale · purchase · hr · product"]
B["Tier 2 — Third Party<br/>Cybrosys: hr_payroll_community · OpenHRMS · base_accounting_kit<br/>Heritage: dynamic_accounts_report<br/>OCA: report_xlsx"]
C["Tier 3 — NestERP Custom<br/>payroll_custom_module · thalia_* · dashboards · purchase/sales overrides · aegis_dg"]
A --> B
B --> C
A --> C
| Tier | Who maintains it | What it means for us |
|---|---|---|
| 1. Odoo core | Odoo SA, upstream | Free, stable, upgrades on Odoo's schedule. Not our support burden. |
| 2. Third party | Cybrosys, Heritage, OCA | We ship it, we do not own it. Version availability and licence terms are outside our control. A client must know this is in their stack. |
| 3. NestERP custom | CodeNest | What we sell, support and charge for. |
The most important structural fact in this stack
Odoo's official payroll module is Enterprise-only. Our entire payroll offering —
payroll_custom_module, payroll_department_filter, every Tanzanian statutory salary
rule — is built on Cybrosys' community payroll (hr_payroll_community), which is
Tier 2. If that upstream module stalls on a future Odoo version, our payroll product
stalls with it. This belongs in any technical proposal we put in front of a client.
Tier 1 — Odoo core modules NestERP depends on¶
29 modules. "Needed in" shows which Odoo versions of our stack require it.
Platform¶
| Module | Needed in | Pulled in by |
|---|---|---|
base |
16 · 17 · 18 | everything |
web |
16 · 17 · 18 | inventory_dashboard, aegis_dg, nesterp_branding, mtewele_web_theme, thalia_mgmt_dashboard_v17, report_xlsx |
mail |
16 · 17 · 18 | payroll_custom_module, thalia_invoice_reminders, aegis_dg, advanced_loan_management, hr_employee_updation, hr_reward_warning |
mail_bot |
17 | mtewele_web_theme |
contacts |
17 | thalia_invoice_reminders |
point_of_sale is still installed, even though POS is out of scope
Three in-scope modules — nesterp_branding, mtewele_web_theme and sales_dashboard —
declare a dependency on point_of_sale. So the core POS module is present in those
deployments and Odoo will install it, even though the POS product is not documented or
sold as part of NestERP. Worth knowing before someone wonders why a Point of Sale menu
exists on a client who never bought POS.
Products and inventory¶
| Module | Needed in | Pulled in by |
|---|---|---|
product |
16 · 17 | aegis_dg, inventory_dashboard |
stock |
16 · 17 · 18 | inventory_adjustments, inventory_dashboard, stock_dashboard, aegis_dg, purchase_multi_approval, direct_budget_management |
stock_account |
16 · 17 · 18 | stock_dashboard, inventory_valuation_report, mrp_internal_conversion, multi_branch_base |
Accounting¶
| Module | Needed in | Pulled in by |
|---|---|---|
account |
16 · 17 · 18 | base_accounting_kit, base_account_budget, payroll_custom_module, purchase_multi_approval, thalia_invoice_reminders, partner_statement, ohrms_loan, sales_dashboard, thalia_mgmt_dashboard_v17, direct_budget_management |
analytic |
16 · 17 · 18 | base_accounting_kit |
account_check_printing |
16 · 17 · 18 | base_accounting_kit |
Sales and purchasing¶
| Module | Needed in | Pulled in by |
|---|---|---|
sale |
16 · 17 · 18 | sales_order_override, base_accounting_kit, inventory_dashboard |
sale_management |
17 | multi_branch_base, thalia_mgmt_dashboard_v17 |
sale_stock |
17 | multi_branch_base |
purchase |
17 · 18 | purchase_date_override, purchase_multi_approval, mtewele_report_theme, thalia_mgmt_dashboard_v17 |
purchase_stock |
17 · 18 | purchase_multi_approval, multi_branch_base |
mrp |
16 | mrp_internal_conversion |
Human resources¶
| Module | Needed in | Pulled in by |
|---|---|---|
hr |
16 · 17 · 18 | OpenHRMS suite, payroll_department_filter, employee_info_export, direct_budget_management |
hr_contract |
17 · 18 | hr_payroll_community, employee_info_export, hr_employee_transfer, ohrms_salary_advance, hr_employee_updation |
hr_holidays |
17 · 18 | hr_payroll_community, hrms_dashboard, hr_leave_request_aliasing |
hr_attendance |
17 · 18 | hrms_dashboard, hr_multi_company, ohrms_core |
hr_timesheet |
17 · 18 | hrms_dashboard, ohrms_core |
hr_timesheet_attendance |
17 · 18 | hrms_dashboard |
hr_recruitment |
17 · 18 | hrms_dashboard, ohrms_core |
hr_expense |
17 · 18 | hr_multi_company, ohrms_core, thalia_mgmt_dashboard_v17 |
hr_gamification |
17 · 18 | hr_employee_updation, ohrms_core |
Supporting apps¶
| Module | Needed in | Pulled in by |
|---|---|---|
project |
17 | thalia_invoice_reminders, direct_budget_management |
event |
17 · 18 | hrms_dashboard |
lunch |
16 | lunch_custom_module |
Tier 2 — third-party modules we ship but do not own¶
| Vendor | Modules |
|---|---|
| Cybrosys — payroll | hr_payroll_community, hr_payroll_account_community |
| Cybrosys — OpenHRMS | ohrms_core, ohrms_loan, ohrms_loan_accounting, ohrms_salary_advance, hrms_dashboard, hr_employee_updation, hr_employee_transfer, hr_resignation, hr_reward_warning, hr_reminder, hr_leave_request_aliasing, hr_multi_company, oh_employee_creation_from_user, oh_employee_documents_expiry |
| Cybrosys — accounting | base_accounting_kit, base_account_budget |
| Heritage | dynamic_accounts_report |
| OCA | report_xlsx, report_xlsx_helper |
| Vendor to confirm | multi_branch_base, advanced_loan_management, employee_bonus_manager |
base_accounting_kit is not an add-on, it is the accounting app
NestERP never deploys the bare core Invoicing app. base_accounting_kit supplies the
Accounting root menu and the financial statements, and dynamic_accounts_report
supplies the drill-down reports. Both are always installed. That means our accounting
product is Tier 1 and Tier 2 combined — and a future Odoo version that these two vendors
do not follow would cost a client their reports and their menu layout.
Page index and writing order¶
Ordered by how much of NestERP rests on each one.
Primary¶
| # | Page | Covers | Versions | Status |
|---|---|---|---|---|
| 1 | Accounting | account, analytic, account_check_printing |
16 · 17 · 18 | Drafted |
| 2 | Inventory | stock, stock_account |
16 · 17 · 18 | Drafted |
| 3 | Employees | hr, hr_contract, hr_gamification |
16 · 17 · 18 | Drafted |
| 4 | Products | product |
16 · 17 | Drafted |
| 5 | Sales | sale, sale_management, sale_stock |
16 · 17 · 18 | Drafted |
| 6 | Purchase | purchase, purchase_stock |
17 · 18 | Drafted |
| 7 | Expenses | hr_expense |
17 · 18 | Drafted |
| 8 | Platform & Base | base, web, mail, mail_bot, contacts |
16 · 17 · 18 | Drafted |
Supporting¶
| # | Page | Covers | Versions | Status |
|---|---|---|---|---|
| 9 | Time Off & Attendance | hr_holidays, hr_attendance, hr_timesheet, hr_timesheet_attendance |
17 · 18 | Drafted |
| 10 | Recruitment | hr_recruitment |
17 · 18 | Drafted |
| 11 | Manufacturing | mrp |
16 | Drafted |
| 12 | Project & Events | project, event |
17 · 18 | Drafted |
| 13 | Lunch | lunch |
17 | Drafted — module under construction |
| 14 | Third-party layer | all of Tier 2, with vendor, licence and risk | 16 · 17 · 18 | Drafted |
All 14 core pages are drafted from source. Every one carries a Needs verification checklist of what still has to be confirmed against a live instance — consolidated in the Live verification checklist.
Custom NestERP modules are documented after the core pages are signed off.
Two pages cannot be fully verified on the Thalia instance
- Manufacturing is an Odoo 16 feature (
mrp_internal_conversion), and Thalia runs Odoo 17. It needs an Odoo 16 client instance as reference. - Lunch documents a module that is still under construction, so there is nothing settled to verify yet.
Findings from the dependency scan¶
1. Two modules are not shippable features. thalia_tra_reconciliation is under
development and declares a dependency on thalia_core, which does not exist in any of the
three local trees — so it cannot install as written. lunch_custom_module is under
construction. Neither may appear in a client proposal as available.
2. Seven Odoo core modules left this list as scope narrowed. uom, product_expiry and
calendar were required only by the hospital suite; pos_restaurant, pos_hr and pos_sale
only by the POS stack. Worth recording because it shows how much of the Odoo 16 and 18 trees
belongs to products other than NestERP.
3. point_of_sale remains installed despite POS being out of scope, because
nesterp_branding, mtewele_web_theme and sales_dashboard all depend on it. A client can
therefore have a Point of Sale menu they never bought.
4. NestERP is not one product across three Odoo versions. aegis_dg and
mrp_internal_conversion exist only in the 16 tree; the Thalia finance modules and management
dashboards only in 17; payroll, purchasing, sales and inventory extensions in both 17 and 18.
The documentation states per-module version availability explicitly — see
Module availability by version — because a client on
the wrong version will otherwise be promised something that requires a port.