Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

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)

God Nodes (most connected - your core abstractions)

  1. create() - 17 edges
  2. FusionSyncConfig - 12 edges
  3. FusionInterCompanyTransfer - 12 edges
  4. ProductTemplate - 11 edges
  5. ProductBrand - 7 edges
  6. StockPicking - 7 edges
  7. _post_init_assign_groups() - 6 edges
  8. FusionInventoryDiscrepancy - 6 edges
  9. _auto_detect_brands() - 5 edges
  10. _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.py
  • portal_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.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 16 (2 nodes): FusionSyncStock, sync_stock.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 17 (2 nodes): FusionSyncWarehouse, sync_warehouse.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 18 (2 nodes): MarginPercentField, margin_widget.js Too 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.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 20 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 21 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 22 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 23 (1 nodes): __manifest__.py Too 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() connect Community 1 to Community 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() connect Community 3 to Community 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 0 be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected.
  • Should Community 1 be split into smaller, more focused modules? Cohesion score 0.13 - nodes in this community are weakly interconnected.
  • Should Community 2 be split into smaller, more focused modules? Cohesion score 0.1 - nodes in this community are weakly interconnected.