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

258 lines
14 KiB
Markdown

# 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 0]]
- [[_COMMUNITY_Community 1|Community 1]]
- [[_COMMUNITY_Community 2|Community 2]]
- [[_COMMUNITY_Community 3|Community 3]]
- [[_COMMUNITY_Community 4|Community 4]]
- [[_COMMUNITY_Community 5|Community 5]]
- [[_COMMUNITY_Community 6|Community 6]]
- [[_COMMUNITY_Community 7|Community 7]]
- [[_COMMUNITY_Community 8|Community 8]]
- [[_COMMUNITY_Community 9|Community 9]]
- [[_COMMUNITY_Community 10|Community 10]]
- [[_COMMUNITY_Community 11|Community 11]]
- [[_COMMUNITY_Community 12|Community 12]]
- [[_COMMUNITY_Community 13|Community 13]]
- [[_COMMUNITY_Community 14|Community 14]]
- [[_COMMUNITY_Community 15|Community 15]]
- [[_COMMUNITY_Community 16|Community 16]]
- [[_COMMUNITY_Community 17|Community 17]]
- [[_COMMUNITY_Community 18|Community 18]]
- [[_COMMUNITY_Community 19|Community 19]]
- [[_COMMUNITY_Community 20|Community 20]]
- [[_COMMUNITY_Community 21|Community 21]]
- [[_COMMUNITY_Community 22|Community 22]]
- [[_COMMUNITY_Community 23|Community 23]]
- [[_COMMUNITY_Community 24|Community 24]]
- [[_COMMUNITY_Community 25|Community 25]]
- [[_COMMUNITY_Community 26|Community 26]]
- [[_COMMUNITY_Community 27|Community 27]]
- [[_COMMUNITY_Community 28|Community 28]]
- [[_COMMUNITY_Community 29|Community 29]]
- [[_COMMUNITY_Community 30|Community 30]]
- [[_COMMUNITY_Community 31|Community 31]]
- [[_COMMUNITY_Community 32|Community 32]]
## 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._