# fadilsnt/odoo-7k architecture

> Architecture diagram of the GitHub repository fadilsnt/odoo-7k, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fadilsnt/odoo-7k
- Repository: https://github.com/fadilsnt/odoo-7k

## Overview

This workspace is a collection of Odoo addons for role-based access, inventory and purchasing, reporting, and web-client customization. Users configure roles or operate stock and purchase workflows; they can then view or export operational reports. The map keeps those distinct capabilities visible and shows the purchase XLSX route and generic XLSX report path where source excerpts establish the handoffs. Other subsystem links are documented at a capability level in the README; unsampled implementation details are not inferred.

Main entry points: [`access_roles/models/role_management.py`](https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/models/role_management.py) (Role configuration), [`hd_inventory_custom/static/src/js/purchase_date_search.js`](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/static/src/js/purchase_date_search.js) (Purchase date search), [`hd_inventory_custom/controllers/purchase_controller.py`](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/controllers/purchase_controller.py) (Purchase XLSX route), [`report_xlsx/controllers/main.py`](https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/controllers/main.py) (XLSX report endpoint)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access control"]
  node_role_config[("Role configuration<br/>[role_management.py]")]
  node_role_models[("Roles and field access<br/>[access_role.py]")]
  node_role_ui["Role-aware views<br/>[list_controller.js]"]
end

subgraph group_inventory["Inventory and purchasing"]
  node_stock_custom["Stock extensions<br/>[stock_move.py]"]
  node_inventory_custom["Inventory extensions<br/>[stock_move.py]"]
  node_purchase_model["Purchase reporting<br/>[purchase.py]"]
  node_purchase_search["Purchase date search"]
  node_purchase_route["Purchase XLSX route"]
  node_repack["Stock repacking<br/>[stock_picking.py]"]
end

subgraph group_reporting["Reports and exports"]
  node_inventory_reports["Inventory reports"]
  node_delivery_reports["Stock delivery reports"]
  node_xlsx_client["XLSX report handler"]
  node_xlsx_controller["XLSX report endpoint<br/>[main.py]"]
  node_xlsx_engine["XLSX report engine"]
  node_pdf_handler["PDF options handler"]
  node_pdf_modal["PDF options dialog<br/>[PdfOptionsModal.js]"]
end

subgraph group_web["Web interface"]
  node_appsbar["Apps bar<br/>[webclient.js]"]
  node_theme["Web theme<br/>[appsmenu.js]"]
  node_chatter["Web chatter<br/>[chatter.js]"]
  node_dialogs["Web dialogs<br/>[dialog.js]"]
  node_colors["Web colors"]
end

subgraph group_utilities["Query utility"]
  node_query[("SQL query utility<br/>[querydeluxe.py]")]
end

node_user(("Odoo user"))

node_user -->|"configures access"| node_role_config
node_role_config -->|"manages roles"| node_role_models
node_role_ui -->|"requests restrictions"| node_role_config
node_user -->|"uses stock tools"| node_stock_custom
node_user -->|"operates inventory"| node_inventory_custom
node_user -->|"filters purchases"| node_purchase_search
node_purchase_search -->|"opens XLSX route"| node_purchase_route
node_purchase_route -->|"requests XLSX data"| node_purchase_model
node_user -->|"repackages stock"| node_repack
node_user -->|"runs inventory reports"| node_inventory_reports
node_user -->|"runs delivery reports"| node_delivery_reports
node_xlsx_client -->|"downloads report"| node_xlsx_controller
node_xlsx_controller -->|"renders XLSX"| node_xlsx_engine
node_pdf_handler -->|"opens dialog"| node_pdf_modal
node_user -->|"navigates apps"| node_appsbar
node_user -->|"uses themed UI"| node_theme
node_user -->|"uses chatter"| node_chatter
node_user -->|"uses dialogs"| node_dialogs
node_user -->|"uses color settings"| node_colors
node_user -->|"executes SQL query"| node_query

click node_role_config "https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/models/role_management.py"
click node_role_models "https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/models/access_role.py"
click node_role_ui "https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/static/src/js/views/list_controller.js"
click node_stock_custom "https://github.com/fadilsnt/odoo-7k/blob/main/fjr_custom_stock/models/stock_move.py"
click node_inventory_custom "https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/models/stock_move.py"
click node_purchase_model "https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/models/purchase.py"
click node_purchase_search "https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/static/src/js/purchase_date_search.js"
click node_purchase_route "https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/controllers/purchase_controller.py"
click node_repack "https://github.com/fadilsnt/odoo-7k/blob/main/report-stock-delivery/repack_stock/models/stock_picking.py"
click node_inventory_reports "https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/reports/inventory_laporan_hari_pengganti_xlsx.py"
click node_delivery_reports "https://github.com/fadilsnt/odoo-7k/blob/main/report-stock-delivery/export_stock_report/reports/laporan_stock_persediaan.py"
click node_xlsx_client "https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/static/src/js/report/action_manager_report.esm.js"
click node_xlsx_controller "https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/controllers/main.py"
click node_xlsx_engine "https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/report/report_abstract_xlsx.py"
click node_pdf_handler "https://github.com/fadilsnt/odoo-7k/blob/main/report_pdf_options/static/src/js/qwebactionmanager.js"
click node_pdf_modal "https://github.com/fadilsnt/odoo-7k/blob/main/report_pdf_options/static/src/js/PdfOptionsModal.js"
click node_appsbar "https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_appsbar/static/src/webclient/webclient.js"
click node_theme "https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_theme/static/src/webclient/appsmenu/appsmenu.js"
click node_chatter "https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_chatter/static/src/chatter/chatter.js"
click node_dialogs "https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_dialog/static/src/core/dialog/dialog.js"
click node_colors "https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_colors/models/web_editor_assets.py"
click node_query "https://github.com/fadilsnt/odoo-7k/blob/main/query_deluxe/models/querydeluxe.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_role_config,node_role_models,node_role_ui,node_user toneBlue
class node_stock_custom,node_inventory_custom,node_purchase_model,node_purchase_search,node_purchase_route,node_repack toneAmber
class node_inventory_reports,node_delivery_reports,node_xlsx_client,node_xlsx_controller,node_xlsx_engine,node_pdf_handler,node_pdf_modal toneMint
class node_appsbar,node_theme,node_chatter,node_dialogs,node_colors toneRose
class node_query toneIndigo
```

## Components

### Access control

- [Role configuration](https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/models/role_management.py): `access_roles/models/role_management.py`
- [Roles and field access](https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/models/access_role.py): `access_roles/models/access_role.py`
- [Role-aware views](https://github.com/fadilsnt/odoo-7k/blob/main/access_roles/static/src/js/views/list_controller.js): `access_roles/static/src/js/views/list_controller.js`

### Inventory and purchasing

- [Stock extensions](https://github.com/fadilsnt/odoo-7k/blob/main/fjr_custom_stock/models/stock_move.py): `fjr_custom_stock/models/stock_move.py`
- [Inventory extensions](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/models/stock_move.py): `hd_inventory_custom/models/stock_move.py`
- [Purchase reporting](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/models/purchase.py): `hd_inventory_custom/models/purchase.py`
- [Purchase date search](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/static/src/js/purchase_date_search.js): `hd_inventory_custom/static/src/js/purchase_date_search.js`
- [Purchase XLSX route](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/controllers/purchase_controller.py): `hd_inventory_custom/controllers/purchase_controller.py`
- [Stock repacking](https://github.com/fadilsnt/odoo-7k/blob/main/report-stock-delivery/repack_stock/models/stock_picking.py): `report-stock-delivery/repack_stock/models/stock_picking.py`

### Reports and exports

- [Inventory reports](https://github.com/fadilsnt/odoo-7k/blob/main/hd_inventory_custom/reports/inventory_laporan_hari_pengganti_xlsx.py): `hd_inventory_custom/reports/inventory_laporan_hari_pengganti_xlsx.py`
- [Stock delivery reports](https://github.com/fadilsnt/odoo-7k/blob/main/report-stock-delivery/export_stock_report/reports/laporan_stock_persediaan.py): `report-stock-delivery/export_stock_report/reports/laporan_stock_persediaan.py`
- [XLSX report handler](https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/static/src/js/report/action_manager_report.esm.js): `report_xlsx/static/src/js/report/action_manager_report.esm.js`
- [XLSX report endpoint](https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/controllers/main.py): `report_xlsx/controllers/main.py`
- [XLSX report engine](https://github.com/fadilsnt/odoo-7k/blob/main/report_xlsx/report/report_abstract_xlsx.py): `report_xlsx/report/report_abstract_xlsx.py`
- [PDF options handler](https://github.com/fadilsnt/odoo-7k/blob/main/report_pdf_options/static/src/js/qwebactionmanager.js): `report_pdf_options/static/src/js/qwebactionmanager.js`
- [PDF options dialog](https://github.com/fadilsnt/odoo-7k/blob/main/report_pdf_options/static/src/js/PdfOptionsModal.js): `report_pdf_options/static/src/js/PdfOptionsModal.js`

### Web interface

- [Apps bar](https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_appsbar/static/src/webclient/webclient.js): `muk_web_appsbar/static/src/webclient/webclient.js`
- [Web theme](https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_theme/static/src/webclient/appsmenu/appsmenu.js): `muk_web_theme/static/src/webclient/appsmenu/appsmenu.js`
- [Web chatter](https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_chatter/static/src/chatter/chatter.js): `muk_web_chatter/static/src/chatter/chatter.js`
- [Web dialogs](https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_dialog/static/src/core/dialog/dialog.js): `muk_web_dialog/static/src/core/dialog/dialog.js`
- [Web colors](https://github.com/fadilsnt/odoo-7k/blob/main/muk_web_colors/models/web_editor_assets.py): `muk_web_colors/models/web_editor_assets.py`

### Query utility

- [SQL query utility](https://github.com/fadilsnt/odoo-7k/blob/main/query_deluxe/models/querydeluxe.py): `query_deluxe/models/querydeluxe.py`

### Other components

- **Odoo user**

## Connections

- Odoo user → Role configuration: configures access (evidence: `README.md`)
- Role configuration → Roles and field access: manages roles (evidence: `README.md`)
- Role-aware views → Role configuration: requests restrictions (evidence: `access_roles/static/src/js/views/list_controller.js`)
- Odoo user → Stock extensions: uses stock tools (evidence: `README.md`)
- Odoo user → Inventory extensions: operates inventory (evidence: `README.md`)
- Odoo user → Purchase date search: filters purchases (evidence: `hd_inventory_custom/static/src/js/purchase_date_search.js`)
- Purchase date search → Purchase XLSX route: opens XLSX route (evidence: `hd_inventory_custom/static/src/js/purchase_date_search.js`)
- Purchase XLSX route → Purchase reporting: requests XLSX data (evidence: `hd_inventory_custom/controllers/purchase_controller.py`)
- Odoo user → Stock repacking: repackages stock (evidence: `README.md`)
- Odoo user → Inventory reports: runs inventory reports (evidence: `README.md`)
- Odoo user → Stock delivery reports: runs delivery reports (evidence: `README.md`)
- XLSX report handler → XLSX report endpoint: downloads report (evidence: `report_xlsx/static/src/js/report/action_manager_report.esm.js`)
- XLSX report endpoint → XLSX report engine: renders XLSX (evidence: `report_xlsx/controllers/main.py`)
- PDF options handler → PDF options dialog: opens dialog (evidence: `report_pdf_options/static/src/js/qwebactionmanager.js`)
- Odoo user → Apps bar: navigates apps (evidence: `muk_web_appsbar/static/src/webclient/webclient.js`)
- Odoo user → Web theme: uses themed UI (evidence: `README.md`)
- Odoo user → Web chatter: uses chatter (evidence: `README.md`)
- Odoo user → Web dialogs: uses dialogs (evidence: `README.md`)
- Odoo user → Web colors: uses color settings (evidence: `README.md`)
- Odoo user → SQL query utility: executes SQL query (evidence: `README.md`)
