13 KiB
Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_inventory (2026-04-22)
Corpus Check
- 28 files · ~12,979 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 220 nodes · 279 edges · 32 communities detected
- Extraction: 81% EXTRACTED · 19% INFERRED · 0% AMBIGUOUS · INFERRED: 54 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
Community Hubs (Navigation)
- _COMMUNITY_Community 0
- _COMMUNITY_Community 1
- _COMMUNITY_Community 2
- _COMMUNITY_Community 3
- _COMMUNITY_Community 4
- _COMMUNITY_Community 5
- _COMMUNITY_Community 6
- _COMMUNITY_Community 7
- _COMMUNITY_Community 8
- _COMMUNITY_Community 9
- _COMMUNITY_Community 10
- _COMMUNITY_Community 11
- _COMMUNITY_Community 12
- _COMMUNITY_Community 13
- _COMMUNITY_Community 14
- _COMMUNITY_Community 15
- _COMMUNITY_Community 16
- _COMMUNITY_Community 17
- _COMMUNITY_Community 18
- _COMMUNITY_Community 19
- _COMMUNITY_Community 20
- _COMMUNITY_Community 21
- _COMMUNITY_Community 22
- _COMMUNITY_Community 23
- _COMMUNITY_Community 24
- _COMMUNITY_Community 25
- _COMMUNITY_Community 26
- _COMMUNITY_Community 27
- _COMMUNITY_Community 28
- _COMMUNITY_Community 29
- _COMMUNITY_Community 30
- _COMMUNITY_Community 31
God Nodes (most connected - your core abstractions)
create()- 17 edgesFusionSyncConfig- 12 edgesFusionInterCompanyTransfer- 12 edgesProductTemplate- 11 edgesProductBrand- 7 edgesStockPicking- 7 edges_post_init_assign_groups()- 6 edgesFusionInventoryDiscrepancy- 6 edges_auto_detect_brands()- 5 edges_apply_case_conversion()- 5 edges
Surprising Connections (you probably didn't know these)
portal_inventory_book()--calls-->create()[INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/controllers/portal_inventory.py → /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/models/inventory_booking.py_recompute_margins()--calls-->_compute_margin_pct()[INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/init.py → /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/models/product_template.py_auto_detect_brands()--calls-->create()[INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/init.py → /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/models/inventory_booking.pyportal_inventory_transfer()--calls-->create()[INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/controllers/portal_inventory.py → /Users/gurpreet/Github/Odoo-Modules/fusion_inventory/models/inventory_booking.py
Communities
Community 0 - "Community 0"
Cohesion: 0.09 Nodes (13): _apply_case_conversion(), _compute_margin_pct(), create(), _cron_sync_all_costs_from_bills(), _onchange_case_conversion(), ProductTemplate, Apply the template margin to variant price offsets (skip overrides)., Copy the template's shipping cost to all variants. (+5 more)
Community 1 - "Community 1"
Cohesion: 0.13 Nodes (12): Execute all transfer steps in one click: 1. Create SO on remote, create(), portal_inventory_transfer(), _cron_sync_inventory(), FusionSyncConfig, Discover and store remote warehouse metadata. Only syncs warehouses belo, Pull remote product catalog and auto-match to local products., Match a remote product to a local one by SKU, barcode, then name. (+4 more)
Community 2 - "Community 2"
Cohesion: 0.1 Nodes (6): _compute_cost_extra(), ProductProduct, Set this variant's price offset to achieve the given margin., ProductTemplateAttributeValue, When extra cost changes, adjust variant prices to maintain margin., Button: apply template margin to every non-overridden variant.
Community 3 - "Community 3"
Cohesion: 0.12 Nodes (6): ProductBrandPricingRule, Return the expected purchase cost for a given MSRP using this rule's method., ProductBrand, Return expected purchase cost for a given MSRP. If product_tmpl is prov, Walk the pricing cascade and return a matching rule, or None for brand default., _compute_expected_cost()
Community 4 - "Community 4"
Cohesion: 0.12 Nodes (5): FusionSerialScanLine, FusionSerialScanWizard, Extract serial numbers from SO/invoice text and match against stock.lot., Gather all text from SO lines, notes, and related invoices., StockPicking
Community 5 - "Community 5"
Cohesion: 0.22 Nodes (8): portal_inventory(), portal_inventory_book(), portal_inventory_data(), portal_inventory_warehouses(), PortalInventory, Return products that exist only on remote instances. Excluded when filte, Build inventory data merging local stock with remote sync data. Fetches, Return local (current company only) + remote warehouses for filter.
Community 6 - "Community 6"
Cohesion: 0.2 Nodes (4): _cron_scan_discrepancies(), FusionInventoryDiscrepancy, Compare stock.quant quantities against expected levels., Check for serial numbers in SO/invoice notes that don't exist in stock.lot.
Community 7 - "Community 7"
Cohesion: 0.17 Nodes (3): FusionInterCompanyTransfer, Create a local vendor bill from the PO (draft, for accounting review)., Reset an errored transfer back to draft for retry.
Community 8 - "Community 8"
Cohesion: 0.2 Nodes (2): portal_inventory_release(), FusionWarehouseInventory
Community 9 - "Community 9"
Cohesion: 0.33 Nodes (8): _auto_detect_brands(), _post_init_assign_groups(), Give all internal users the Fusion Inventory / User group, and all admins th, Force-recompute x_fi_margin_pct for all products with a sale price and cost., Update every product's cost from its latest posted vendor bill line., Create product.brand records from existing PO vendors and link products to t, _recompute_margins(), _sync_costs_from_bills()
Community 10 - "Community 10"
Cohesion: 0.33 Nodes (3): AccountMove, AccountMoveLine, Update product costs from vendor bill lines when bills are posted.
Community 11 - "Community 11"
Cohesion: 0.33 Nodes (2): _cron_expire_bookings(), FusionInventoryBooking
Community 12 - "Community 12"
Cohesion: 0.5 Nodes (2): After a stock move completes, pull fresh stock data from all connected r, StockMove
Community 13 - "Community 13"
Cohesion: 0.4 Nodes (1): ResPartner
Community 14 - "Community 14"
Cohesion: 0.67 Nodes (1): FusionProductSyncMapping
Community 15 - "Community 15"
Cohesion: 1.0 Nodes (1): FusionSyncLog
Community 16 - "Community 16"
Cohesion: 1.0 Nodes (1): FusionSyncStock
Community 17 - "Community 17"
Cohesion: 1.0 Nodes (1): FusionSyncWarehouse
Community 18 - "Community 18"
Cohesion: 1.0 Nodes (1): MarginPercentField
Community 19 - "Community 19"
Cohesion: 1.0 Nodes (0):
Community 20 - "Community 20"
Cohesion: 1.0 Nodes (0):
Community 21 - "Community 21"
Cohesion: 1.0 Nodes (0):
Community 22 - "Community 22"
Cohesion: 1.0 Nodes (0):
Community 23 - "Community 23"
Cohesion: 1.0 Nodes (0):
Community 24 - "Community 24"
Cohesion: 1.0 Nodes (1): Real-time margin recalculation when user changes price or cost.
Community 25 - "Community 25"
Cohesion: 1.0 Nodes (1): Real-time sale price recalculation when user changes margin.
Community 26 - "Community 26"
Cohesion: 1.0 Nodes (1): Batch job: update every product's cost from latest vendor bill.
Community 27 - "Community 27"
Cohesion: 1.0 Nodes (1): When cost or shipping changes, recalculate price to keep margin.
Community 28 - "Community 28"
Cohesion: 1.0 Nodes (1): Get available warehouse inventory for a product, optionally excluding an owner.
Community 29 - "Community 29"
Cohesion: 1.0 Nodes (1): Return the effective OpenAI API key, falling back to Fusion Digitize.
Community 30 - "Community 30"
Cohesion: 1.0 Nodes (1): Scheduled scan: detect inventory discrepancies and missing serials.
Community 31 - "Community 31"
Cohesion: 1.0 Nodes (1): Create and execute an inter-company transfer from the portal.
Knowledge Gaps
- 50 isolated node(s):
Give all internal users the Fusion Inventory / User group, and all admins th,Force-recompute x_fi_margin_pct for all products with a sale price and cost.,Update every product's cost from its latest posted vendor bill line.,Create product.brand records from existing PO vendors and link products to t,FusionSerialScanLine(+45 more) These have ≤1 connection - possible missing edges or undocumented components. - Thin community
Community 15(2 nodes):FusionSyncLog,sync_log.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 16(2 nodes):FusionSyncStock,sync_stock.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 17(2 nodes):FusionSyncWarehouse,sync_warehouse.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 18(2 nodes):MarginPercentField,margin_widget.jsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 19(2 nodes):_fi_get_ptav_price_extra(),product_configurator.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 20(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 21(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 22(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 23(1 nodes):__manifest__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 24(1 nodes):Real-time margin recalculation when user changes price or cost.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 25(1 nodes):Real-time sale price recalculation when user changes margin.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 26(1 nodes):Batch job: update every product's cost from latest vendor bill.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 27(1 nodes):When cost or shipping changes, recalculate price to keep margin.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 28(1 nodes):Get available warehouse inventory for a product, optionally excluding an owner.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 29(1 nodes):Return the effective OpenAI API key, falling back to Fusion Digitize.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 30(1 nodes):Scheduled scan: detect inventory discrepancies and missing serials.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 31(1 nodes):Create and execute an inter-company transfer from the portal.Too small to be a meaningful cluster - may be noise or needs more connections extracted.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
create()connectCommunity 1toCommunity 4,Community 5,Community 6,Community 7,Community 9,Community 11,Community 13? High betweenness centrality (0.243) - this node is a cross-community bridge. - Why does
_compute_expected_cost()connectCommunity 3toCommunity 0? High betweenness centrality (0.121) - this node is a cross-community bridge. - Are the 16 inferred relationships involving
create()(e.g. with_auto_detect_brands()and._scan()) actually correct?create()has 16 INFERRED edges - model-reasoned connections that need verification. - What connects
Give all internal users the Fusion Inventory / User group, and all admins th,Force-recompute x_fi_margin_pct for all products with a sale price and cost.,Update every product's cost from its latest posted vendor bill line.to the rest of the system? 50 weakly-connected nodes found - possible documentation gaps or missing edges. - Should
Community 0be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected. - Should
Community 1be split into smaller, more focused modules? Cohesion score 0.13 - nodes in this community are weakly interconnected. - Should
Community 2be split into smaller, more focused modules? Cohesion score 0.1 - nodes in this community are weakly interconnected.