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)
- _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
- _COMMUNITY_Community 32
God Nodes (most connected - your core abstractions)
SaleOrder- 72 edgescreate()- 15 edgesDepositProcessWizard- 10 edges_cron_rental_renewal_reminders()- 10 edgesRentalCancellationRequest- 8 edges_cron_rental_auto_renewals()- 6 edges_cron_rental_deposit_refunds()- 5 edges_cron_rental_marketing_emails()- 5 edgescreate()- 5 edgesrental_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.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 13(2 nodes):ResConfigSettings,res_config_settings.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 14(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 15(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 16(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 17(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 18(1 nodes):__manifest__.pyToo 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 eachToo 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 agToo 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
SaleOrderconnectCommunity 0toCommunity 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()connectCommunity 0toCommunity 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 0be split into smaller, more focused modules? Cohesion score 0.05 - nodes in this community are weakly interconnected. - Should
Community 1be split into smaller, more focused modules? Cohesion score 0.06 - nodes in this community are weakly interconnected. - Should
Community 2be split into smaller, more focused modules? Cohesion score 0.06 - nodes in this community are weakly interconnected. - Should
Community 3be split into smaller, more focused modules? Cohesion score 0.08 - nodes in this community are weakly interconnected.