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

14 KiB

Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_rental (2026-04-22)

Corpus Check

  • 16 files · ~12,044 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 258 nodes · 396 edges · 33 communities detected
  • Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 37 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. SaleOrder - 72 edges
  2. create() - 15 edges
  3. DepositProcessWizard - 10 edges
  4. _cron_rental_renewal_reminders() - 10 edges
  5. RentalCancellationRequest - 8 edges
  6. _cron_rental_auto_renewals() - 6 edges
  7. _cron_rental_deposit_refunds() - 5 edges
  8. _cron_rental_marketing_emails() - 5 edges
  9. create() - 5 edges
  10. rental_agreement_sign() - 5 edges

Surprising Connections (you probably didn't know these)

  • None detected - all connections are within the same source files.

Communities

Community 0 - "Community 0"

Cohesion: 0.05 Nodes (30): rental_agreement_sign(), Confirm the manual renewal: extend dates, create invoice, and collect payment., create(), Override to create invoices and auto-send agreement on confirmation. 1., Generate agreement token and send the agreement email., Send a card reauthorization form link to the customer., Open the card authorization form in the browser for phone authorization., Auto-collect payments after the customer signs the agreement. Posts bot (+22 more)

Community 1 - "Community 1"

Cohesion: 0.06 Nodes (21): Send confirmation email to the customer., Confirm the cancellation and stop auto-renewal., Mark pickup as scheduled., Mark the cancellation and pickup as completed., Reject the cancellation request., Create a to-do activity on the sale order for staff to schedule pickup., RentalCancellationRequest, _fmt_date() (+13 more)

Community 2 - "Community 2"

Cohesion: 0.06 Nodes (20): _cron_rental_auto_renewals(), _cron_rental_marketing_emails(), _cron_rental_renewal_reminders(), Generate a single-use loyalty coupon for rental-to-purchase conversion., Send the day-7 purchase conversion marketing email., Return the ZoneInfo for the company timezone., Convert a UTC datetime to the company local timezone., Format a UTC datetime in the company timezone. (+12 more)

Community 3 - "Community 3"

Cohesion: 0.08 Nodes (15): Write inspection results to the sale order., Mark items as returned via stock picking or rental wizard., Validate inspection, apply results, and process the return., RentalReturnWizard, RentalReturnWizardLine, _cron_rental_deposit_refunds(), Return the configured deposit hold period in days., Return True if at least one rental line has qty_returned > 0. (+7 more)

Community 4 - "Community 4"

Cohesion: 0.17 Nodes (10): DepositProcessWizard, Dispatch to the appropriate deposit processing path., Full deposit refund: credit note, Poynt refund, close rental., Partial refund with deduction for damages., Full deduction: no refund, create overage invoice if needed., Customer purchased the rental: full deposit refund, mark as sold., Create and post a credit note for the deposit invoice., Process refund via Poynt referenced refund for the credit note. (+2 more)

Community 5 - "Community 5"

Cohesion: 0.25 Nodes (4): _compute_amount_preview(), ManualRenewalWizard, Cancel the renewal: revert dates and void the invoice., Compute the total renewal charge (rental lines only, tax-inclusive).

Community 6 - "Community 6"

Cohesion: 0.25 Nodes (4): Return attachment IDs for the signed rental agreement if present., Close the rental transaction: delete card token, send thank-you., Get the Google review URL from the warehouse or global setting., Send the thank-you email with Google review link and signed agreement.

Community 7 - "Community 7"

Cohesion: 0.4 Nodes (1): InspectionPhotoField

Community 8 - "Community 8"

Cohesion: 0.5 Nodes (2): Return the relativedelta/timedelta to add for the next renewal. Monthly, Open the manual renewal wizard.

Community 9 - "Community 9"

Cohesion: 0.5 Nodes (2): Open the deposit processing wizard., Alias: redirect to the unified deposit processing wizard.

Community 10 - "Community 10"

Cohesion: 0.5 Nodes (2): Send email notifying customer that deposit refund is being processed., Find the credit note for the deposit invoice.

Community 11 - "Community 11"

Cohesion: 0.67 Nodes (1): RentalRenewalLog

Community 12 - "Community 12"

Cohesion: 1.0 Nodes (1): StockWarehouse

Community 13 - "Community 13"

Cohesion: 1.0 Nodes (1): ResConfigSettings

Community 14 - "Community 14"

Cohesion: 1.0 Nodes (0):

Community 15 - "Community 15"

Cohesion: 1.0 Nodes (0):

Community 16 - "Community 16"

Cohesion: 1.0 Nodes (0):

Community 17 - "Community 17"

Cohesion: 1.0 Nodes (0):

Community 18 - "Community 18"

Cohesion: 1.0 Nodes (0):

Community 19 - "Community 19"

Cohesion: 1.0 Nodes (1): Cron: send renewal reminders based on percentage of rental period.

Community 20 - "Community 20"

Cohesion: 1.0 Nodes (1): Cron: auto-renew rentals that have reached their return date.

Community 21 - "Community 21"

Cohesion: 1.0 Nodes (1): Cron: process deposit refunds after the hold period. Re-validates each

Community 22 - "Community 22"

Cohesion: 1.0 Nodes (1): Cron: send purchase marketing email based on percentage of rental period.

Community 23 - "Community 23"

Cohesion: 1.0 Nodes (1): Handle rental cancellation requests from email links.

Community 24 - "Community 24"

Cohesion: 1.0 Nodes (1): Confirm a rental quotation from the portal and redirect to the rental ag

Community 25 - "Community 25"

Cohesion: 1.0 Nodes (1): Render the rental agreement signing page.

Community 26 - "Community 26"

Cohesion: 1.0 Nodes (1): Serve the rental agreement PDF for preview (token-protected).

Community 27 - "Community 27"

Cohesion: 1.0 Nodes (1): Process the agreement signing: save signature and tokenize card via nonce.

Community 28 - "Community 28"

Cohesion: 1.0 Nodes (1): Cancel/decline the rental order from the agreement page.

Community 29 - "Community 29"

Cohesion: 1.0 Nodes (1): Render the thank-you page after successful agreement signing.

Community 30 - "Community 30"

Cohesion: 1.0 Nodes (1): Render the card reauthorization portal page.

Community 31 - "Community 31"

Cohesion: 1.0 Nodes (1): Process the card reauthorization submission.

Community 32 - "Community 32"

Cohesion: 1.0 Nodes (1): Handle customer expressing purchase interest from marketing email.

Knowledge Gaps

  • 107 isolated node(s): RentalReturnWizardLine, Validate inspection, apply results, and process the return., Write inspection results to the sale order., Mark items as returned via stock picking or rental wizard., Dispatch to the appropriate deposit processing path. (+102 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Community 12 (2 nodes): StockWarehouse, stock_warehouse.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 13 (2 nodes): ResConfigSettings, res_config_settings.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 14 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 15 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 16 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 17 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 18 (1 nodes): __manifest__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 19 (1 nodes): Cron: send renewal reminders based on percentage of rental period. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 20 (1 nodes): Cron: auto-renew rentals that have reached their return date. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 21 (1 nodes): Cron: process deposit refunds after the hold period. Re-validates each Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 22 (1 nodes): Cron: send purchase marketing email based on percentage of rental period. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 23 (1 nodes): Handle rental cancellation requests from email links. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 24 (1 nodes): Confirm a rental quotation from the portal and redirect to the rental ag Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 25 (1 nodes): Render the rental agreement signing page. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 26 (1 nodes): Serve the rental agreement PDF for preview (token-protected). Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 27 (1 nodes): Process the agreement signing: save signature and tokenize card via nonce. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 28 (1 nodes): Cancel/decline the rental order from the agreement page. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 29 (1 nodes): Render the thank-you page after successful agreement signing. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 30 (1 nodes): Render the card reauthorization portal page. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 31 (1 nodes): Process the card reauthorization submission. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 32 (1 nodes): Handle customer expressing purchase interest from marketing email. 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 SaleOrder connect Community 0 to Community 1, Community 2, Community 3, Community 4, Community 5, Community 6, Community 8, Community 9, Community 10? High betweenness centrality (0.550) - this node is a cross-community bridge.
  • Why does rental_agreement_sign() connect Community 0 to Community 1? High betweenness centrality (0.085) - this node is a cross-community bridge.
  • What connects RentalReturnWizardLine, Validate inspection, apply results, and process the return., Write inspection results to the sale order. to the rest of the system? 107 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Community 0 be split into smaller, more focused modules? Cohesion score 0.05 - nodes in this community are weakly interconnected.
  • Should Community 1 be split into smaller, more focused modules? Cohesion score 0.06 - nodes in this community are weakly interconnected.
  • Should Community 2 be split into smaller, more focused modules? Cohesion score 0.06 - nodes in this community are weakly interconnected.
  • Should Community 3 be split into smaller, more focused modules? Cohesion score 0.08 - nodes in this community are weakly interconnected.