# Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_plating (2026-04-22) ## Corpus Check - 343 files · ~241,299 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 3740 nodes · 8160 edges · 308 communities detected - Extraction: 87% EXTRACTED · 13% INFERRED · 0% AMBIGUOUS · INFERRED: 1083 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]] - [[_COMMUNITY_Community 33|Community 33]] - [[_COMMUNITY_Community 34|Community 34]] - [[_COMMUNITY_Community 35|Community 35]] - [[_COMMUNITY_Community 36|Community 36]] - [[_COMMUNITY_Community 37|Community 37]] - [[_COMMUNITY_Community 38|Community 38]] - [[_COMMUNITY_Community 39|Community 39]] - [[_COMMUNITY_Community 40|Community 40]] - [[_COMMUNITY_Community 41|Community 41]] - [[_COMMUNITY_Community 42|Community 42]] - [[_COMMUNITY_Community 43|Community 43]] - [[_COMMUNITY_Community 44|Community 44]] - [[_COMMUNITY_Community 45|Community 45]] - [[_COMMUNITY_Community 46|Community 46]] - [[_COMMUNITY_Community 47|Community 47]] - [[_COMMUNITY_Community 48|Community 48]] - [[_COMMUNITY_Community 49|Community 49]] - [[_COMMUNITY_Community 50|Community 50]] - [[_COMMUNITY_Community 51|Community 51]] - [[_COMMUNITY_Community 52|Community 52]] - [[_COMMUNITY_Community 53|Community 53]] - [[_COMMUNITY_Community 54|Community 54]] - [[_COMMUNITY_Community 55|Community 55]] - [[_COMMUNITY_Community 56|Community 56]] - [[_COMMUNITY_Community 57|Community 57]] - [[_COMMUNITY_Community 58|Community 58]] - [[_COMMUNITY_Community 59|Community 59]] - [[_COMMUNITY_Community 60|Community 60]] - [[_COMMUNITY_Community 61|Community 61]] - [[_COMMUNITY_Community 62|Community 62]] - [[_COMMUNITY_Community 63|Community 63]] - [[_COMMUNITY_Community 64|Community 64]] - [[_COMMUNITY_Community 65|Community 65]] - [[_COMMUNITY_Community 66|Community 66]] - [[_COMMUNITY_Community 67|Community 67]] - [[_COMMUNITY_Community 68|Community 68]] - [[_COMMUNITY_Community 69|Community 69]] - [[_COMMUNITY_Community 70|Community 70]] - [[_COMMUNITY_Community 71|Community 71]] - [[_COMMUNITY_Community 72|Community 72]] - [[_COMMUNITY_Community 73|Community 73]] - [[_COMMUNITY_Community 74|Community 74]] - [[_COMMUNITY_Community 75|Community 75]] - [[_COMMUNITY_Community 76|Community 76]] - [[_COMMUNITY_Community 77|Community 77]] - [[_COMMUNITY_Community 78|Community 78]] - [[_COMMUNITY_Community 79|Community 79]] - [[_COMMUNITY_Community 80|Community 80]] - [[_COMMUNITY_Community 81|Community 81]] - [[_COMMUNITY_Community 82|Community 82]] - [[_COMMUNITY_Community 83|Community 83]] - [[_COMMUNITY_Community 84|Community 84]] - [[_COMMUNITY_Community 85|Community 85]] - [[_COMMUNITY_Community 86|Community 86]] - [[_COMMUNITY_Community 87|Community 87]] - [[_COMMUNITY_Community 88|Community 88]] - [[_COMMUNITY_Community 89|Community 89]] - [[_COMMUNITY_Community 90|Community 90]] - [[_COMMUNITY_Community 91|Community 91]] - [[_COMMUNITY_Community 92|Community 92]] - [[_COMMUNITY_Community 93|Community 93]] - [[_COMMUNITY_Community 94|Community 94]] - [[_COMMUNITY_Community 95|Community 95]] - [[_COMMUNITY_Community 96|Community 96]] - [[_COMMUNITY_Community 97|Community 97]] - [[_COMMUNITY_Community 98|Community 98]] - [[_COMMUNITY_Community 99|Community 99]] - [[_COMMUNITY_Community 100|Community 100]] - [[_COMMUNITY_Community 101|Community 101]] - [[_COMMUNITY_Community 102|Community 102]] - [[_COMMUNITY_Community 103|Community 103]] - [[_COMMUNITY_Community 104|Community 104]] - [[_COMMUNITY_Community 105|Community 105]] - [[_COMMUNITY_Community 106|Community 106]] - [[_COMMUNITY_Community 107|Community 107]] - [[_COMMUNITY_Community 108|Community 108]] - [[_COMMUNITY_Community 109|Community 109]] - [[_COMMUNITY_Community 110|Community 110]] - [[_COMMUNITY_Community 111|Community 111]] - [[_COMMUNITY_Community 112|Community 112]] - [[_COMMUNITY_Community 113|Community 113]] - [[_COMMUNITY_Community 114|Community 114]] - [[_COMMUNITY_Community 115|Community 115]] - [[_COMMUNITY_Community 116|Community 116]] - [[_COMMUNITY_Community 117|Community 117]] - [[_COMMUNITY_Community 118|Community 118]] - [[_COMMUNITY_Community 119|Community 119]] - [[_COMMUNITY_Community 120|Community 120]] - [[_COMMUNITY_Community 121|Community 121]] - [[_COMMUNITY_Community 122|Community 122]] - [[_COMMUNITY_Community 123|Community 123]] - [[_COMMUNITY_Community 124|Community 124]] - [[_COMMUNITY_Community 125|Community 125]] - [[_COMMUNITY_Community 126|Community 126]] - [[_COMMUNITY_Community 127|Community 127]] - [[_COMMUNITY_Community 128|Community 128]] - [[_COMMUNITY_Community 129|Community 129]] - [[_COMMUNITY_Community 130|Community 130]] - [[_COMMUNITY_Community 131|Community 131]] - [[_COMMUNITY_Community 132|Community 132]] - [[_COMMUNITY_Community 133|Community 133]] - [[_COMMUNITY_Community 134|Community 134]] - [[_COMMUNITY_Community 135|Community 135]] - [[_COMMUNITY_Community 136|Community 136]] - [[_COMMUNITY_Community 137|Community 137]] - [[_COMMUNITY_Community 138|Community 138]] - [[_COMMUNITY_Community 139|Community 139]] - [[_COMMUNITY_Community 140|Community 140]] - [[_COMMUNITY_Community 141|Community 141]] - [[_COMMUNITY_Community 142|Community 142]] - [[_COMMUNITY_Community 143|Community 143]] - [[_COMMUNITY_Community 144|Community 144]] - [[_COMMUNITY_Community 145|Community 145]] - [[_COMMUNITY_Community 146|Community 146]] - [[_COMMUNITY_Community 147|Community 147]] - [[_COMMUNITY_Community 148|Community 148]] - [[_COMMUNITY_Community 149|Community 149]] - [[_COMMUNITY_Community 150|Community 150]] - [[_COMMUNITY_Community 151|Community 151]] - [[_COMMUNITY_Community 152|Community 152]] - [[_COMMUNITY_Community 153|Community 153]] - [[_COMMUNITY_Community 154|Community 154]] - [[_COMMUNITY_Community 155|Community 155]] - [[_COMMUNITY_Community 156|Community 156]] - [[_COMMUNITY_Community 157|Community 157]] - [[_COMMUNITY_Community 158|Community 158]] - [[_COMMUNITY_Community 159|Community 159]] - [[_COMMUNITY_Community 160|Community 160]] - [[_COMMUNITY_Community 161|Community 161]] - [[_COMMUNITY_Community 162|Community 162]] - [[_COMMUNITY_Community 163|Community 163]] - [[_COMMUNITY_Community 164|Community 164]] - [[_COMMUNITY_Community 165|Community 165]] - [[_COMMUNITY_Community 166|Community 166]] - [[_COMMUNITY_Community 167|Community 167]] - [[_COMMUNITY_Community 168|Community 168]] - [[_COMMUNITY_Community 169|Community 169]] - [[_COMMUNITY_Community 170|Community 170]] - [[_COMMUNITY_Community 171|Community 171]] - [[_COMMUNITY_Community 172|Community 172]] - [[_COMMUNITY_Community 173|Community 173]] - [[_COMMUNITY_Community 174|Community 174]] - [[_COMMUNITY_Community 175|Community 175]] - [[_COMMUNITY_Community 176|Community 176]] - [[_COMMUNITY_Community 177|Community 177]] - [[_COMMUNITY_Community 178|Community 178]] - [[_COMMUNITY_Community 179|Community 179]] - [[_COMMUNITY_Community 180|Community 180]] - [[_COMMUNITY_Community 181|Community 181]] - [[_COMMUNITY_Community 182|Community 182]] - [[_COMMUNITY_Community 183|Community 183]] - [[_COMMUNITY_Community 184|Community 184]] - [[_COMMUNITY_Community 185|Community 185]] - [[_COMMUNITY_Community 186|Community 186]] - [[_COMMUNITY_Community 187|Community 187]] - [[_COMMUNITY_Community 188|Community 188]] - [[_COMMUNITY_Community 189|Community 189]] - [[_COMMUNITY_Community 190|Community 190]] - [[_COMMUNITY_Community 191|Community 191]] - [[_COMMUNITY_Community 192|Community 192]] - [[_COMMUNITY_Community 193|Community 193]] - [[_COMMUNITY_Community 194|Community 194]] - [[_COMMUNITY_Community 195|Community 195]] - [[_COMMUNITY_Community 196|Community 196]] - [[_COMMUNITY_Community 197|Community 197]] - [[_COMMUNITY_Community 198|Community 198]] - [[_COMMUNITY_Community 199|Community 199]] - [[_COMMUNITY_Community 200|Community 200]] - [[_COMMUNITY_Community 201|Community 201]] - [[_COMMUNITY_Community 202|Community 202]] - [[_COMMUNITY_Community 203|Community 203]] - [[_COMMUNITY_Community 204|Community 204]] - [[_COMMUNITY_Community 205|Community 205]] - [[_COMMUNITY_Community 206|Community 206]] - [[_COMMUNITY_Community 207|Community 207]] - [[_COMMUNITY_Community 208|Community 208]] - [[_COMMUNITY_Community 209|Community 209]] - [[_COMMUNITY_Community 210|Community 210]] - [[_COMMUNITY_Community 211|Community 211]] - [[_COMMUNITY_Community 212|Community 212]] - [[_COMMUNITY_Community 213|Community 213]] - [[_COMMUNITY_Community 214|Community 214]] - [[_COMMUNITY_Community 215|Community 215]] - [[_COMMUNITY_Community 216|Community 216]] - [[_COMMUNITY_Community 217|Community 217]] - [[_COMMUNITY_Community 218|Community 218]] - [[_COMMUNITY_Community 219|Community 219]] - [[_COMMUNITY_Community 220|Community 220]] - [[_COMMUNITY_Community 221|Community 221]] - [[_COMMUNITY_Community 222|Community 222]] - [[_COMMUNITY_Community 223|Community 223]] - [[_COMMUNITY_Community 224|Community 224]] - [[_COMMUNITY_Community 225|Community 225]] - [[_COMMUNITY_Community 226|Community 226]] - [[_COMMUNITY_Community 227|Community 227]] - [[_COMMUNITY_Community 228|Community 228]] - [[_COMMUNITY_Community 229|Community 229]] - [[_COMMUNITY_Community 230|Community 230]] - [[_COMMUNITY_Community 231|Community 231]] - [[_COMMUNITY_Community 232|Community 232]] - [[_COMMUNITY_Community 233|Community 233]] - [[_COMMUNITY_Community 234|Community 234]] - [[_COMMUNITY_Community 235|Community 235]] - [[_COMMUNITY_Community 236|Community 236]] - [[_COMMUNITY_Community 237|Community 237]] - [[_COMMUNITY_Community 238|Community 238]] - [[_COMMUNITY_Community 239|Community 239]] - [[_COMMUNITY_Community 240|Community 240]] - [[_COMMUNITY_Community 241|Community 241]] - [[_COMMUNITY_Community 242|Community 242]] - [[_COMMUNITY_Community 243|Community 243]] - [[_COMMUNITY_Community 244|Community 244]] - [[_COMMUNITY_Community 245|Community 245]] - [[_COMMUNITY_Community 246|Community 246]] - [[_COMMUNITY_Community 247|Community 247]] - [[_COMMUNITY_Community 248|Community 248]] - [[_COMMUNITY_Community 249|Community 249]] - [[_COMMUNITY_Community 250|Community 250]] - [[_COMMUNITY_Community 251|Community 251]] - [[_COMMUNITY_Community 252|Community 252]] - [[_COMMUNITY_Community 253|Community 253]] - [[_COMMUNITY_Community 254|Community 254]] - [[_COMMUNITY_Community 255|Community 255]] - [[_COMMUNITY_Community 256|Community 256]] - [[_COMMUNITY_Community 257|Community 257]] - [[_COMMUNITY_Community 258|Community 258]] - [[_COMMUNITY_Community 259|Community 259]] - [[_COMMUNITY_Community 260|Community 260]] - [[_COMMUNITY_Community 261|Community 261]] - [[_COMMUNITY_Community 262|Community 262]] - [[_COMMUNITY_Community 263|Community 263]] - [[_COMMUNITY_Community 264|Community 264]] - [[_COMMUNITY_Community 265|Community 265]] - [[_COMMUNITY_Community 266|Community 266]] - [[_COMMUNITY_Community 267|Community 267]] - [[_COMMUNITY_Community 268|Community 268]] - [[_COMMUNITY_Community 269|Community 269]] - [[_COMMUNITY_Community 270|Community 270]] - [[_COMMUNITY_Community 271|Community 271]] - [[_COMMUNITY_Community 272|Community 272]] - [[_COMMUNITY_Community 273|Community 273]] - [[_COMMUNITY_Community 274|Community 274]] - [[_COMMUNITY_Community 275|Community 275]] - [[_COMMUNITY_Community 276|Community 276]] - [[_COMMUNITY_Community 277|Community 277]] - [[_COMMUNITY_Community 278|Community 278]] - [[_COMMUNITY_Community 279|Community 279]] - [[_COMMUNITY_Community 280|Community 280]] - [[_COMMUNITY_Community 281|Community 281]] - [[_COMMUNITY_Community 282|Community 282]] - [[_COMMUNITY_Community 283|Community 283]] - [[_COMMUNITY_Community 284|Community 284]] - [[_COMMUNITY_Community 285|Community 285]] - [[_COMMUNITY_Community 286|Community 286]] - [[_COMMUNITY_Community 287|Community 287]] - [[_COMMUNITY_Community 288|Community 288]] - [[_COMMUNITY_Community 289|Community 289]] - [[_COMMUNITY_Community 290|Community 290]] - [[_COMMUNITY_Community 291|Community 291]] - [[_COMMUNITY_Community 292|Community 292]] - [[_COMMUNITY_Community 293|Community 293]] - [[_COMMUNITY_Community 294|Community 294]] - [[_COMMUNITY_Community 295|Community 295]] - [[_COMMUNITY_Community 296|Community 296]] - [[_COMMUNITY_Community 297|Community 297]] - [[_COMMUNITY_Community 298|Community 298]] - [[_COMMUNITY_Community 299|Community 299]] - [[_COMMUNITY_Community 300|Community 300]] - [[_COMMUNITY_Community 301|Community 301]] - [[_COMMUNITY_Community 302|Community 302]] - [[_COMMUNITY_Community 303|Community 303]] - [[_COMMUNITY_Community 304|Community 304]] - [[_COMMUNITY_Community 305|Community 305]] - [[_COMMUNITY_Community 306|Community 306]] - [[_COMMUNITY_Community 307|Community 307]] ## God Nodes (most connected - your core abstractions) 1. `write()` - 237 edges 2. `Get()` - 213 edges 3. `_()` - 150 edges 4. `Set()` - 129 edges 5. `constructor()` - 101 edges 6. `create()` - 92 edges 7. `copy()` - 77 edges 8. `Append()` - 75 edges 9. `FusionTechnicianTask` - 65 edges 10. `Clone()` - 62 edges ## Surprising Connections (you probably didn't know these) - `_compute_x_fc_recognition_stats()` --calls--> `max()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_culture/models/hr_employee.py → /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_configurator/static/lib/o3dv/o3dv.min.js - `_compute_next_rotation_date()` --calls--> `Get()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_culture/models/fp_value_rotation.py → /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_configurator/static/lib/o3dv/o3dv.min.js - `create()` --calls--> `Get()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_bridge_maintenance/models/fp_maintenance_node.py → /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_configurator/static/lib/o3dv/o3dv.min.js - `_compute_display_name()` --calls--> `Append()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_safety/models/fp_training_record.py → /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_configurator/static/lib/o3dv/o3dv.min.js - `_compute_status_color()` --calls--> `Get()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating/models/fp_rack.py → /Users/gurpreet/Github/Odoo-Modules/fusion_plating/fusion_plating_configurator/static/lib/o3dv/o3dv.min.js ## Communities ### Community 0 - "Community 0" Cohesion: 0.01 Nodes (538): $0(), Aa(), absarc(), AddBackgroundColor(), AddCamera(), addClip(), AddDefaultColor(), AddDefaultLineColor() (+530 more) ### Community 1 - "Community 1" Cohesion: 0.01 Nodes (310): AccountPayment, FusionEmailBuilderMixin, Build a labeled details table section. Args: heading: Secti, Build a left-border accent note block., Build a centered CTA button., Build a dashed-border attachment callout. Args: description, Return an inline status badge/pill HTML snippet., Return company name, phone, email for email templates. (+302 more) ### Community 2 - "Community 2" Cohesion: 0.01 Nodes (134): create(), _default_name(), Fp10CFR21Report, 10 CFR Part 21 — Reporting of Defects and Noncompliance. 10 CFR Part 21 is, FpAvl, Approved Vendor List entry. The AVL ties an approval state to a res.partner, FpBatch, Extend batch with M2M link to MRP work orders. GAP 6: Batch ↔ Work Order li (+126 more) ### Community 3 - "Community 3" Cohesion: 0.02 Nodes (292): _compute_reading_stats(), Create a new revision of this part. Copies all data, increments revision number., absellipse(), add(), addGlobalSceneSettings(), addMorphTargets(), addScaledVector(), addVectors() (+284 more) ### Community 4 - "Community 4" Cohesion: 0.01 Nodes (147): AccountMove, create(), Extend invoice to auto-complete portal job when posted. GAP 7: Invoice post, Prefer the Fusion Plating-branded invoice template over Odoo default. C, Override to cascade invoice posting to portal job completion., Block post when: • customer is on account hold (existing rule), or, FpAddFromQuoteWizard, Pick fp.quote.configurator rows and clone them onto the direct-order wizard. (+139 more) ### Community 5 - "Community 5" Cohesion: 0.02 Nodes (193): AddChildNode(), AddConvexPolygon(), AddConvexPolygonInverted(), AddEdge(), AddLine(), AddMaterial(), AddMesh(), AddMeshIndex() (+185 more) ### Community 6 - "Community 6" Cohesion: 0.03 Nodes (141): calculate_surface_area(), FpConfiguratorController, serve_3d_model(), viewer_3d(), line_photo(), detect_default_tz(), Best guess at a sensible default tz when the module is installed. Tries, in, abort() (+133 more) ### Community 7 - "Community 7" Cohesion: 0.05 Nodes (125): find_block(), FpPdfPreviewBinary, fpPdfPreviewOpenAction(), a(), assign(), assignNoOverwrite(), _b(), bE() (+117 more) ### Community 8 - "Community 8" Cohesion: 0.03 Nodes (31): _compute_status(), create(), FpBathLogLine, A single parameter reading on a bath log. Each line = one titration result, For every out-of-spec reading, run the matching replenishment rule and c, _find_rules(), FpBathReplenishmentRule, Linear replenishment rule: when a chemistry reading drifts outside target, c (+23 more) ### Community 9 - "Community 9" Cohesion: 0.05 Nodes (16): FpPdfInlinePreview, classifyDate(), classifyTask(), extractTechnicians(), floatToTime12(), FusionMapArchParser, FusionTaskMapController, groupTasks() (+8 more) ### Community 10 - "Community 10" Cohesion: 0.04 Nodes (57): CustomerPortal, walk(), FpPortalJob, Lightweight portal-facing view of a production job. This is intentionally a, Return [{'name': str, 'icon': str, 'depth': int}] for portal display., _state_progress_map(), AdjustClippingPlanes(), AdjustClippingPlanesToSphere() (+49 more) ### Community 11 - "Community 11" Cohesion: 0.05 Nodes (8): _el(), FpRfqFormInteraction, _icon(), AddEventListener(), remove(), PlantOverview, guessIcon(), RecipeTreeEditor ### Community 12 - "Community 12" Cohesion: 0.04 Nodes (32): _cron_update_states(), FpBakeWindow, Hydrogen embrittlement relief bake window enforcer. When a high-strength-st, _check_recursion_constraint(), create(), FpProcessNode, FpProcessNodeInput, Tag each recipe operation with the shop role that performs it. The auto-ass (+24 more) ### Community 13 - "Community 13" Cohesion: 0.07 Nodes (14): _compute_x_fc_document_ids(), create(), _default_name(), FpNcr, Extend the quality NCR with nuclear flags and 10 CFR 21 hook. When an NCR i, Non-Conformance Report. The NCR is the entry point of the Fusion Plating QM, Bridge extension: expose Documents workspace on NCRs. Adds a reverse link t, Cheap capability check: is the EE quality.alert model loaded in this dat (+6 more) ### Community 14 - "Community 14" Cohesion: 0.11 Nodes (17): _check(), _check_payload(), finalize(), FpQcController, get_state(), line_mark(), _line_payload(), start() (+9 more) ### Community 15 - "Community 15" Cohesion: 0.13 Nodes (30): ay(), Bv(), ch(), Da(), dc(), Do(), Fo(), Fv() (+22 more) ### Community 16 - "Community 16" Cohesion: 0.12 Nodes (5): create(), Per-customer preferences for what quality documents are generated and emaile, Open the CSV import wizard with this partner pre-selected., Open the Direct Order wizard with this partner pre-selected., ResPartner ### Community 17 - "Community 17" Cohesion: 0.12 Nodes (6): _compute_x_fc_recognition_stats(), HrEmployee, Tag employees with the shop roles they can perform. An employee with role ', Extend hr.employee with CGP-specific fields. Uses the ``x_fc_`` prefix on e, Compute attendance status from hr.attendance. Batched so the manager da, Lets `[('x_fc_is_clocked_in', '=', True)]` work as a domain. Two compou ### Community 18 - "Community 18" Cohesion: 0.12 Nodes (7): _compute_name(), _find_price(), FpCustomerPriceList, Standing price per (customer, coating config). Repeat customers accept a ne, FpDirectOrderLine, _onchange_lookup_price(), Return the part to use for the SO line, optionally bumping revision. ### Community 19 - "Community 19" Cohesion: 0.14 Nodes (1): ProcessTree ### Community 20 - "Community 20" Cohesion: 0.15 Nodes (3): Fp3dViewer, Fp3dViewerDialog, fp3dViewerOpenAction() ### Community 21 - "Community 21" Cohesion: 0.18 Nodes (4): _fp_tz_get(), Extend company with a default nuclear records retention policy. Nuclear qua, Return effective signer roster for Section 2.0 or 3.0. Central helper s, ResCompany ### Community 22 - "Community 22" Cohesion: 0.2 Nodes (4): create(), FpTank, Extend the core tank with shop-floor helpers. Adds a queue-size badge so th, Open the tablet client action focused on this tank. ### Community 23 - "Community 23" Cohesion: 0.28 Nodes (6): _compute_next_rotation_date(), _cron_advance_rotation(), FpValueRotation, Move this rotation to the next value in the set, wrapping., A schedule that rotates a value to the front of the shop's attention. Used, Manually advance the rotation to the next value. Wired to a form button ### Community 24 - "Community 24" Cohesion: 0.32 Nodes (5): _get_report_values(), Work Order Margin Report Data. Computes cost, revenue, and margin breakdown, Return a list of dicts with per-station cost breakdown., Return margin breakdown per unique product (part number)., ReportWoMargin ### Community 25 - "Community 25" Cohesion: 0.32 Nodes (1): FpPartProcessComposer ### Community 26 - "Community 26" Cohesion: 0.29 Nodes (2): FpFacility, A physical plating / finishing facility. A company can operate 1..N facilit ### Community 27 - "Community 27" Cohesion: 0.33 Nodes (4): create(), FpValueSet, A named collection of values owned by a company. Each shop loads its own se, When flipping a set to primary, demote any other primary set in the same ### Community 28 - "Community 28" Cohesion: 0.48 Nodes (5): _backfill_currency(), post_init_hook(), post_upgrade_hook(), Fill missing currency_id on existing money-holding records. Older demo data, Auto-detect a sensible default timezone on first install. Sets ``res.compan ### Community 29 - "Community 29" Cohesion: 0.33 Nodes (2): Expose Fusion Plating company-level settings on the Settings page. Today th, ResConfigSettings ### Community 30 - "Community 30" Cohesion: 0.4 Nodes (3): MaintenanceRequest, Extend standard maintenance.request with plating-specific fields., Schedule next maintenance from completion date. ### Community 31 - "Community 31" Cohesion: 0.33 Nodes (2): FpExposureMonitoring, An exposure monitoring sample. A monitoring event captures one measurement ### Community 32 - "Community 32" Cohesion: 0.33 Nodes (3): _compute_display_name(), FpTrainingRecord, Per-employee record of a completed training course. Each record links an em ### Community 33 - "Community 33" Cohesion: 0.33 Nodes (2): FpCustomerSpec, Customer specification library entry. Holds the metadata about a specificat ### Community 34 - "Community 34" Cohesion: 0.4 Nodes (4): create(), IrAttachment, Bridge ir.attachment with Odoo EE `documents.document`. Whenever an attachm, Create `documents.document` mirror records for quality attachments. Sil ### Community 35 - "Community 35" Cohesion: 0.4 Nodes (2): FpValue, A single value, fundamental, core behaviour, or belief. Values are grouped ### Community 36 - "Community 36" Cohesion: 0.4 Nodes (2): FpMaintenancePlan, Maintenance plan template. Groups checklist nodes and links to an equipment ### Community 37 - "Community 37" Cohesion: 0.5 Nodes (4): create(), _default_name(), FpCounterfeitPrevention, Counterfeit parts prevention incident log. Records an incident where a susp ### Community 38 - "Community 38" Cohesion: 0.4 Nodes (3): FpSaleDescriptionTemplate, Saved description snippets — most often attached to a specific part. Real-w, Called by the wizard when the template is applied. ### Community 39 - "Community 39" Cohesion: 0.4 Nodes (3): FpSaleAssembly, FpSaleAssemblyLine, Hierarchical kit / assembly on a sale order line. A sale.order.line can car ### Community 40 - "Community 40" Cohesion: 0.5 Nodes (2): FpBatchChemistry, A single chemistry reading taken during batch processing. ### Community 41 - "Community 41" Cohesion: 0.5 Nodes (3): create(), FpMaintenanceNode, Maintenance checklist item. Individual task or check within a maintenance p ### Community 42 - "Community 42" Cohesion: 0.5 Nodes (2): FpThicknessReading, Fischerscope thickness measurement data. Captures individual XRF readings f ### Community 43 - "Community 43" Cohesion: 0.5 Nodes (2): FpJhsc, A Joint Health and Safety Committee. Most Canadian jurisdictions require wo ### Community 44 - "Community 44" Cohesion: 0.5 Nodes (2): FpChemical, Physical chemical container in the shop's chemical inventory. A chemical re ### Community 45 - "Community 45" Cohesion: 0.5 Nodes (2): FpProcessType, Extensible finishing process taxonomy. Core ships this model empty. Process ### Community 46 - "Community 46" Cohesion: 0.5 Nodes (2): FpProcessCategory, High-level grouping of finishing process types. Ships with a seed set (Plat ### Community 47 - "Community 47" Cohesion: 0.5 Nodes (0): ### Community 48 - "Community 48" Cohesion: 0.5 Nodes (2): For one record, show which of `candidate_fields` are empty. candidate_field, show_field_audit() ### Community 49 - "Community 49" Cohesion: 0.5 Nodes (3): _compute_display_name(), FpChainOfCustody, A single custody event — the audit trail for parts in transit. A chain of c ### Community 50 - "Community 50" Cohesion: 0.5 Nodes (2): FpProofOfDelivery, Proof of delivery record — captured at the delivery point. Captures: ### Community 51 - "Community 51" Cohesion: 0.5 Nodes (2): FpWorkRole, A shop role assigned to a recipe step and to the employees who can perform i ### Community 52 - "Community 52" Cohesion: 0.5 Nodes (3): _compute_display_name(), FpAs9100Clause, AS9100 Rev D clause catalog. A flat catalogue of clauses and sub-clauses fr ### Community 53 - "Community 53" Cohesion: 0.5 Nodes (2): FpCalibrationEvent, A single calibration event against a piece of equipment. Captures who calib ### Community 54 - "Community 54" Cohesion: 0.67 Nodes (1): FpDischargeSampleLine ### Community 55 - "Community 55" Cohesion: 0.67 Nodes (1): FpJurisdiction ### Community 56 - "Community 56" Cohesion: 0.67 Nodes (2): FpCgpAccessLog, Physical access log for CGP-controlled areas. Every entry and exit from a c ### Community 57 - "Community 57" Cohesion: 0.67 Nodes (2): MaintenanceEquipment, Extend standard maintenance.equipment with plating links. ### Community 58 - "Community 58" Cohesion: 0.67 Nodes (2): FpMaintenanceLabel, Simple tag model for equipment labels. ### Community 59 - "Community 59" Cohesion: 0.67 Nodes (2): FpTrainingType, Master catalogue of training courses required in the shop. A training type ### Community 60 - "Community 60" Cohesion: 0.67 Nodes (2): FpBathParameter, Definition of a bath chemistry parameter. Parameters are process-agnostic a ### Community 61 - "Community 61" Cohesion: 0.67 Nodes (2): FpN299Level, CSA N299 Quality Assurance Level. CSA N299 is the Canadian Standards Associ ### Community 62 - "Community 62" Cohesion: 0.67 Nodes (2): FpCnscLicence, CNSC Licence record. The Canadian Nuclear Safety Commission (CNSC) regulate ### Community 63 - "Community 63" Cohesion: 0.67 Nodes (2): FpKpiValue, KPI Daily Value. One row per KPI per day. Auto-computed KPIs are populated ### Community 64 - "Community 64" Cohesion: 0.67 Nodes (2): FpBakeOven, A bake oven master record. Used by hydrogen embrittlement relief baking and ### Community 65 - "Community 65" Cohesion: 0.67 Nodes (2): FpReceivingDamage, Damage log entry on a receiving record. Documents condition issues found du ### Community 66 - "Community 66" Cohesion: 0.67 Nodes (2): FpReceivingLine, Per-part-number receiving detail line. Tracks expected vs received quantity ### Community 67 - "Community 67" Cohesion: 0.67 Nodes (2): FpInvoiceStrategyDefault, Customer-level default invoice strategy. When a new sale order is created f ### Community 68 - "Community 68" Cohesion: 0.67 Nodes (2): FpQualityHoldMrp, Add MRP references to the quality hold record. These fields live here (not ### Community 69 - "Community 69" Cohesion: 0.67 Nodes (2): FpJobNodeOverride, Per-job override for optional recipe steps. When a recipe is assigned to a ### Community 70 - "Community 70" Cohesion: 0.67 Nodes (2): MrpWorkcenter, Extend MRP work centre with Fusion Plating facility and work centre. ### Community 71 - "Community 71" Cohesion: 0.67 Nodes (2): FpConfigItem, Configuration management baseline item. Tracks a configuration item (produc ### Community 72 - "Community 72" Cohesion: 0.67 Nodes (2): FpCoatingConfig, Coating configuration template. Defines a specific coating setup: process t ### Community 73 - "Community 73" Cohesion: 0.67 Nodes (2): FpPricingRule, Formula-based pricing rule. Rules are matched by coating config, substrate ### Community 74 - "Community 74" Cohesion: 0.67 Nodes (2): FpTreatment, Pre- or post-treatment step (bead blast, zincate, bake, passivate, etc.). U ### Community 75 - "Community 75" Cohesion: 0.67 Nodes (2): FpPricingComplexitySurcharge, Complexity-based surcharge line on a pricing rule. ### Community 76 - "Community 76" Cohesion: 0.67 Nodes (2): FpQuoteRequestLine, Individual part line on a customer-submitted RFQ. A quote request can conta ### Community 77 - "Community 77" Cohesion: 1.0 Nodes (1): FpRegulator ### Community 78 - "Community 78" Cohesion: 1.0 Nodes (1): FpPermitCondition ### Community 79 - "Community 79" Cohesion: 1.0 Nodes (1): FpWasteStream ### Community 80 - "Community 80" Cohesion: 1.0 Nodes (1): FpDischargeLimit ### Community 81 - "Community 81" Cohesion: 1.0 Nodes (1): ResUsers ### Community 82 - "Community 82" Cohesion: 1.0 Nodes (1): Sub 4 smoke test — runs inside odoo-shell on entech. Verifies: toggle-triggered ### Community 83 - "Community 83" Cohesion: 1.0 Nodes (0): ### Community 84 - "Community 84" Cohesion: 1.0 Nodes (1): AccountMoveLine ### Community 85 - "Community 85" Cohesion: 1.0 Nodes (0): ### Community 86 - "Community 86" Cohesion: 1.0 Nodes (0): ### Community 87 - "Community 87" Cohesion: 1.0 Nodes (0): ### Community 88 - "Community 88" Cohesion: 1.0 Nodes (0): ### Community 89 - "Community 89" Cohesion: 1.0 Nodes (0): ### Community 90 - "Community 90" Cohesion: 1.0 Nodes (0): ### Community 91 - "Community 91" Cohesion: 1.0 Nodes (0): ### Community 92 - "Community 92" Cohesion: 1.0 Nodes (0): ### Community 93 - "Community 93" Cohesion: 1.0 Nodes (0): ### Community 94 - "Community 94" Cohesion: 1.0 Nodes (0): ### Community 95 - "Community 95" Cohesion: 1.0 Nodes (0): ### Community 96 - "Community 96" Cohesion: 1.0 Nodes (0): ### Community 97 - "Community 97" Cohesion: 1.0 Nodes (0): ### Community 98 - "Community 98" Cohesion: 1.0 Nodes (0): ### Community 99 - "Community 99" Cohesion: 1.0 Nodes (0): ### Community 100 - "Community 100" Cohesion: 1.0 Nodes (0): ### Community 101 - "Community 101" Cohesion: 1.0 Nodes (0): ### Community 102 - "Community 102" Cohesion: 1.0 Nodes (0): ### Community 103 - "Community 103" Cohesion: 1.0 Nodes (0): ### Community 104 - "Community 104" Cohesion: 1.0 Nodes (0): ### Community 105 - "Community 105" Cohesion: 1.0 Nodes (0): ### Community 106 - "Community 106" Cohesion: 1.0 Nodes (0): ### Community 107 - "Community 107" Cohesion: 1.0 Nodes (0): ### Community 108 - "Community 108" Cohesion: 1.0 Nodes (0): ### Community 109 - "Community 109" Cohesion: 1.0 Nodes (0): ### Community 110 - "Community 110" Cohesion: 1.0 Nodes (0): ### Community 111 - "Community 111" Cohesion: 1.0 Nodes (0): ### Community 112 - "Community 112" Cohesion: 1.0 Nodes (0): ### Community 113 - "Community 113" Cohesion: 1.0 Nodes (0): ### Community 114 - "Community 114" Cohesion: 1.0 Nodes (0): ### Community 115 - "Community 115" Cohesion: 1.0 Nodes (0): ### Community 116 - "Community 116" Cohesion: 1.0 Nodes (0): ### Community 117 - "Community 117" Cohesion: 1.0 Nodes (0): ### Community 118 - "Community 118" Cohesion: 1.0 Nodes (0): ### Community 119 - "Community 119" Cohesion: 1.0 Nodes (0): ### Community 120 - "Community 120" Cohesion: 1.0 Nodes (0): ### Community 121 - "Community 121" Cohesion: 1.0 Nodes (0): ### Community 122 - "Community 122" Cohesion: 1.0 Nodes (0): ### Community 123 - "Community 123" Cohesion: 1.0 Nodes (0): ### Community 124 - "Community 124" Cohesion: 1.0 Nodes (0): ### Community 125 - "Community 125" Cohesion: 1.0 Nodes (0): ### Community 126 - "Community 126" Cohesion: 1.0 Nodes (0): ### Community 127 - "Community 127" Cohesion: 1.0 Nodes (0): ### Community 128 - "Community 128" Cohesion: 1.0 Nodes (0): ### Community 129 - "Community 129" Cohesion: 1.0 Nodes (0): ### Community 130 - "Community 130" Cohesion: 1.0 Nodes (0): ### Community 131 - "Community 131" Cohesion: 1.0 Nodes (0): ### Community 132 - "Community 132" Cohesion: 1.0 Nodes (0): ### Community 133 - "Community 133" Cohesion: 1.0 Nodes (0): ### Community 134 - "Community 134" Cohesion: 1.0 Nodes (0): ### Community 135 - "Community 135" Cohesion: 1.0 Nodes (0): ### Community 136 - "Community 136" Cohesion: 1.0 Nodes (0): ### Community 137 - "Community 137" Cohesion: 1.0 Nodes (0): ### Community 138 - "Community 138" Cohesion: 1.0 Nodes (0): ### Community 139 - "Community 139" Cohesion: 1.0 Nodes (1): Look up the template for this trigger, render it, and send. Also logs t ### Community 140 - "Community 140" Cohesion: 1.0 Nodes (0): ### Community 141 - "Community 141" Cohesion: 1.0 Nodes (1): Compare value against parameter target range. Uses the parameter's defa ### Community 142 - "Community 142" Cohesion: 1.0 Nodes (0): ### Community 143 - "Community 143" Cohesion: 1.0 Nodes (0): ### Community 144 - "Community 144" Cohesion: 1.0 Nodes (1): Default expiry to five years after assessment. ### Community 145 - "Community 145" Cohesion: 1.0 Nodes (1): Default expiry to five years after registration. ### Community 146 - "Community 146" Cohesion: 1.0 Nodes (0): ### Community 147 - "Community 147" Cohesion: 1.0 Nodes (1): Log the current user's location. Called from portal JS. ### Community 148 - "Community 148" Cohesion: 1.0 Nodes (1): Get the most recent location for each technician (for map view). Includ ### Community 149 - "Community 149" Cohesion: 1.0 Nodes (1): Remove location logs based on configurable retention setting. Setting ( ### Community 150 - "Community 150" Cohesion: 1.0 Nodes (1): Register or update a push subscription. ### Community 151 - "Community 151" Cohesion: 1.0 Nodes (1): Generate 12-hour time slots every 15 minutes, store hours only (9 AM - 6 PM). ### Community 152 - "Community 152" Cohesion: 1.0 Nodes (1): Sync the 12h selection fields from the raw float values. ### Community 153 - "Community 153" Cohesion: 1.0 Nodes (1): Convert float hours to readable time strings. ### Community 154 - "Community 154" Cohesion: 1.0 Nodes (1): Set default duration based on task type. ### Community 155 - "Community 155" Cohesion: 1.0 Nodes (1): Auto-compute end time from start + duration. Also run overlap check. ### Community 156 - "Community 156" Cohesion: 1.0 Nodes (1): Combine date + float time into proper Datetime fields for calendar. time ### Community 157 - "Community 157" Cohesion: 1.0 Nodes (1): Show booked + available time slots for the technician on the selected date. ### Community 158 - "Community 158" Cohesion: 1.0 Nodes (1): Show previous task info + travel time warning with color coding. ### Community 159 - "Community 159" Cohesion: 1.0 Nodes (1): Auto-fill company address when task is marked as in-store. ### Community 160 - "Community 160" Cohesion: 1.0 Nodes (1): Auto-fill address fields from the selected client's address. ### Community 161 - "Community 161" Cohesion: 1.0 Nodes (1): Non-in-store tasks must have a geocoded address. ### Community 162 - "Community 162" Cohesion: 1.0 Nodes (1): Prevent overlapping bookings for the same technician on the same date. ### Community 163 - "Community 163" Cohesion: 1.0 Nodes (1): Auto-set start/end time to the first available slot when tech+date change. ### Community 164 - "Community 164" Cohesion: 1.0 Nodes (1): Handle calendar time range selection: pre-fill date + times from context. ### Community 165 - "Community 165" Cohesion: 1.0 Nodes (1): Helper to fill address vals dict from a partner record. ### Community 166 - "Community 166" Cohesion: 1.0 Nodes (1): Return task data, technician locations, and Google Maps API key. Args: ### Community 167 - "Community 167" Cohesion: 1.0 Nodes (1): Build a dict of technician start locations for route origins. Priority ### Community 168 - "Community 168" Cohesion: 1.0 Nodes (1): Get today's clock-in lat/lng from fusion_clock if installed. Uses the t ### Community 169 - "Community 169" Cohesion: 1.0 Nodes (1): Cron job: Calculate travel times for today and tomorrow. Runs every 15 ### Community 170 - "Community 170" Cohesion: 1.0 Nodes (1): Cron: detect tasks where the technician hasn't started and the scheduled ### Community 171 - "Community 171" Cohesion: 1.0 Nodes (1): Cron: Send push notifications for upcoming tasks. ### Community 172 - "Community 172" Cohesion: 1.0 Nodes (1): Convert float hours to time string like '9:30 AM'. ### Community 173 - "Community 173" Cohesion: 1.0 Nodes (0): ### Community 174 - "Community 174" Cohesion: 1.0 Nodes (1): Cron entry point. A shop admin can wire an ir.cron to this method. The ### Community 175 - "Community 175" Cohesion: 1.0 Nodes (0): ### Community 176 - "Community 176" Cohesion: 1.0 Nodes (0): ### Community 177 - "Community 177" Cohesion: 1.0 Nodes (0): ### Community 178 - "Community 178" Cohesion: 1.0 Nodes (0): ### Community 179 - "Community 179" Cohesion: 1.0 Nodes (0): ### Community 180 - "Community 180" Cohesion: 1.0 Nodes (1): Resolve target range: per-bath override first, parameter default second. ### Community 181 - "Community 181" Cohesion: 1.0 Nodes (1): Kanban colour index — neutral palette that works in light + dark. Uses ### Community 182 - "Community 182" Cohesion: 1.0 Nodes (1): Return rules applicable to this (bath, parameter). Bath-specific rules t ### Community 183 - "Community 183" Cohesion: 1.0 Nodes (1): At most one active certification per (employee, process_type). ### Community 184 - "Community 184" Cohesion: 1.0 Nodes (1): Utility — True if this employee holds a current certification. Checks r ### Community 185 - "Community 185" Cohesion: 1.0 Nodes (1): A bath log without readings is a useless empty record — it pollutes dail ### Community 186 - "Community 186" Cohesion: 1.0 Nodes (1): Return the full nested tree for a recipe. ### Community 187 - "Community 187" Cohesion: 1.0 Nodes (1): Create a new child node under parent_id. ### Community 188 - "Community 188" Cohesion: 1.0 Nodes (1): Update fields on an existing node. ### Community 189 - "Community 189" Cohesion: 1.0 Nodes (1): Delete a node and all its children (cascade). ### Community 190 - "Community 190" Cohesion: 1.0 Nodes (1): Bulk-update sequence for an ordered list of sibling node IDs. ### Community 191 - "Community 191" Cohesion: 1.0 Nodes (1): Move a node to a new parent (drag between sub-trees). ### Community 192 - "Community 192" Cohesion: 1.0 Nodes (1): Deep-copy an entire recipe tree. ### Community 193 - "Community 193" Cohesion: 1.0 Nodes (0): ### Community 194 - "Community 194" Cohesion: 1.0 Nodes (0): ### Community 195 - "Community 195" Cohesion: 1.0 Nodes (1): Compute today's value for every active auto-KPI. ### Community 196 - "Community 196" Cohesion: 1.0 Nodes (0): ### Community 197 - "Community 197" Cohesion: 1.0 Nodes (1): Kanban colour index — neutral palette that works in light + dark. 0=no ### Community 198 - "Community 198" Cohesion: 1.0 Nodes (1): Flip awaiting_bake records past their window to missed_window. ### Community 199 - "Community 199" Cohesion: 1.0 Nodes (1): Build (and return) a transient queue snapshot for the given user. ### Community 200 - "Community 200" Cohesion: 1.0 Nodes (1): Resolve a scanned QR code to a target record. Recognised payloads: ### Community 201 - "Community 201" Cohesion: 1.0 Nodes (1): Create a fusion.plating.bath.log with one line per reading. readings: l ### Community 202 - "Community 202" Cohesion: 1.0 Nodes (1): Start the MRP timer on a work order. ### Community 203 - "Community 203" Cohesion: 1.0 Nodes (1): Pause or finish the MRP timer on a work order. finish=True calls button ### Community 204 - "Community 204" Cohesion: 1.0 Nodes (1): Record a single Fischerscope reading against an MO. Auto-links to the C ### Community 205 - "Community 205" Cohesion: 1.0 Nodes (1): Create a quality hold record, splitting qty from the original lot. If t ### Community 206 - "Community 206" Cohesion: 1.0 Nodes (1): Return a rich dashboard snapshot for the Tablet Station page. Shape: ### Community 207 - "Community 207" Cohesion: 1.0 Nodes (1): Move a work order card to a different work centre (drag & drop). Only m ### Community 208 - "Community 208" Cohesion: 1.0 Nodes (1): Return work orders grouped by work centre for the plant overview. Works ### Community 209 - "Community 209" Cohesion: 1.0 Nodes (1): Return process flow steps for the horizontal bar. ### Community 210 - "Community 210" Cohesion: 1.0 Nodes (1): Return cost breakdown for a work order's MO. ### Community 211 - "Community 211" Cohesion: 1.0 Nodes (1): Return routing tree for a manufacturing order. Walks the MO's recipe tr ### Community 212 - "Community 212" Cohesion: 1.0 Nodes (1): Build the manager dashboard payload. `known_hash`: if the client sends ### Community 213 - "Community 213" Cohesion: 1.0 Nodes (0): ### Community 214 - "Community 214" Cohesion: 1.0 Nodes (0): ### Community 215 - "Community 215" Cohesion: 1.0 Nodes (0): ### Community 216 - "Community 216" Cohesion: 1.0 Nodes (0): ### Community 217 - "Community 217" Cohesion: 1.0 Nodes (0): ### Community 218 - "Community 218" Cohesion: 1.0 Nodes (0): ### Community 219 - "Community 219" Cohesion: 1.0 Nodes (0): ### Community 220 - "Community 220" Cohesion: 1.0 Nodes (0): ### Community 221 - "Community 221" Cohesion: 1.0 Nodes (0): ### Community 222 - "Community 222" Cohesion: 1.0 Nodes (0): ### Community 223 - "Community 223" Cohesion: 1.0 Nodes (0): ### Community 224 - "Community 224" Cohesion: 1.0 Nodes (0): ### Community 225 - "Community 225" Cohesion: 1.0 Nodes (0): ### Community 226 - "Community 226" Cohesion: 1.0 Nodes (0): ### Community 227 - "Community 227" Cohesion: 1.0 Nodes (0): ### Community 228 - "Community 228" Cohesion: 1.0 Nodes (0): ### Community 229 - "Community 229" Cohesion: 1.0 Nodes (0): ### Community 230 - "Community 230" Cohesion: 1.0 Nodes (0): ### Community 231 - "Community 231" Cohesion: 1.0 Nodes (0): ### Community 232 - "Community 232" Cohesion: 1.0 Nodes (0): ### Community 233 - "Community 233" Cohesion: 1.0 Nodes (0): ### Community 234 - "Community 234" Cohesion: 1.0 Nodes (0): ### Community 235 - "Community 235" Cohesion: 1.0 Nodes (0): ### Community 236 - "Community 236" Cohesion: 1.0 Nodes (0): ### Community 237 - "Community 237" Cohesion: 1.0 Nodes (0): ### Community 238 - "Community 238" Cohesion: 1.0 Nodes (0): ### Community 239 - "Community 239" Cohesion: 1.0 Nodes (0): ### Community 240 - "Community 240" Cohesion: 1.0 Nodes (0): ### Community 241 - "Community 241" Cohesion: 1.0 Nodes (0): ### Community 242 - "Community 242" Cohesion: 1.0 Nodes (0): ### Community 243 - "Community 243" Cohesion: 1.0 Nodes (1): Auto-inherit payment terms + customer PO# at creation time. Two defensi ### Community 244 - "Community 244" Cohesion: 1.0 Nodes (1): Auto-fill invoice strategy from customer defaults. ### Community 245 - "Community 245" Cohesion: 1.0 Nodes (0): ### Community 246 - "Community 246" Cohesion: 1.0 Nodes (0): ### Community 247 - "Community 247" Cohesion: 1.0 Nodes (0): ### Community 248 - "Community 248" Cohesion: 1.0 Nodes (0): ### Community 249 - "Community 249" Cohesion: 1.0 Nodes (0): ### Community 250 - "Community 250" Cohesion: 1.0 Nodes (0): ### Community 251 - "Community 251" Cohesion: 1.0 Nodes (0): ### Community 252 - "Community 252" Cohesion: 1.0 Nodes (0): ### Community 253 - "Community 253" Cohesion: 1.0 Nodes (1): Return the best-matching template for a customer. Order: active custome ### Community 254 - "Community 254" Cohesion: 1.0 Nodes (1): Increment the (employee, role) tally and promote if at threshold. Idemp ### Community 255 - "Community 255" Cohesion: 1.0 Nodes (1): Return the set of res.users.ids whose linked employee is on shift. Used ### Community 256 - "Community 256" Cohesion: 1.0 Nodes (1): Pick the least-loaded employee with the given shop role. Returns a res. ### Community 257 - "Community 257" Cohesion: 1.0 Nodes (1): A WO is release-ready when the manager has set EVERY field button_start ### Community 258 - "Community 258" Cohesion: 1.0 Nodes (1): If the facility has exactly one option for the equipment this WO needs, ### Community 259 - "Community 259" Cohesion: 1.0 Nodes (1): Cron entry point — auto-finish WOs whose recipe step is marked `auto_com ### Community 260 - "Community 260" Cohesion: 1.0 Nodes (1): Spin up a QC record for an MO, cloning lines from the template. If no t ### Community 261 - "Community 261" Cohesion: 1.0 Nodes (1): Run pdftotext on an ir.attachment and return the text. ### Community 262 - "Community 262" Cohesion: 1.0 Nodes (1): Best-effort Fischerscope WinFTM table parser. WinFTM single-reading exp ### Community 263 - "Community 263" Cohesion: 1.0 Nodes (1): Resolve and access-check a QC record. ### Community 264 - "Community 264" Cohesion: 1.0 Nodes (0): ### Community 265 - "Community 265" Cohesion: 1.0 Nodes (0): ### Community 266 - "Community 266" Cohesion: 1.0 Nodes (0): ### Community 267 - "Community 267" Cohesion: 1.0 Nodes (0): ### Community 268 - "Community 268" Cohesion: 1.0 Nodes (1): Seed invoice defaults + default addresses when customer changes. ### Community 269 - "Community 269" Cohesion: 1.0 Nodes (1): Auto-fill part, coating, and unit price from the linked quote. ### Community 270 - "Community 270" Cohesion: 1.0 Nodes (1): When a part is picked, seed coating + treatments from its catalog defaults. ### Community 271 - "Community 271" Cohesion: 1.0 Nodes (1): Auto-fill unit_price from customer price list when available. ### Community 272 - "Community 272" Cohesion: 1.0 Nodes (1): Auto-fill both descriptions from the chosen template. Customer-facing t ### Community 273 - "Community 273" Cohesion: 1.0 Nodes (1): Offer a sensible default template — part-specific wins. Priority (first ### Community 274 - "Community 274" Cohesion: 1.0 Nodes (1): Compute weight from part volume × THIS QUOTE'S substrate density. ### Community 275 - "Community 275" Cohesion: 1.0 Nodes (1): Surface area minus masking area, using THIS QUOTE'S values. ### Community 276 - "Community 276" Cohesion: 1.0 Nodes (1): When a 3D file is uploaded, auto-create/update part catalog entry. ### Community 277 - "Community 277" Cohesion: 1.0 Nodes (1): When a drawing is uploaded, attach to part catalog entry. ### Community 278 - "Community 278" Cohesion: 1.0 Nodes (1): When an RFQ file is uploaded, create attachment + link it. ### Community 279 - "Community 279" Cohesion: 1.0 Nodes (1): When a PO file is uploaded, create attachment + link it. ### Community 280 - "Community 280" Cohesion: 1.0 Nodes (1): Batched: one grouped query across all records in self. ### Community 281 - "Community 281" Cohesion: 1.0 Nodes (1): Map state + mail tracking to a single visible pill. - state draft => dr ### Community 282 - "Community 282" Cohesion: 1.0 Nodes (1): Margin = untaxed total − rolled-up cost from coating configs. x_fc_marg ### Community 283 - "Community 283" Cohesion: 1.0 Nodes (1): Create attachment from uploaded binary and link it. ### Community 284 - "Community 284" Cohesion: 1.0 Nodes (1): Create attachment from uploaded binary, link it, and mark PO received. ### Community 285 - "Community 285" Cohesion: 1.0 Nodes (1): Display = 'PART-NUMBER (Rev X) — Optional Name'. Used by m2o pickers, b ### Community 286 - "Community 286" Cohesion: 1.0 Nodes (1): Auto-calculate surface area when a 3D model is attached. ### Community 287 - "Community 287" Cohesion: 1.0 Nodes (1): Wrap an uploaded binary file in an ir.attachment and link it. Fires as ### Community 288 - "Community 288" Cohesion: 1.0 Nodes (1): Default `x_fc_internal_description` from `name` when a caller creates a ### Community 289 - "Community 289" Cohesion: 1.0 Nodes (1): When estimator picks a template, auto-fill both descriptions. The custo ### Community 290 - "Community 290" Cohesion: 1.0 Nodes (1): Return the best-matching active price list entry for this request. ### Community 291 - "Community 291" Cohesion: 1.0 Nodes (0): ### Community 292 - "Community 292" Cohesion: 1.0 Nodes (1): Serve the standalone 3D viewer HTML page. Query params: id (attachment ### Community 293 - "Community 293" Cohesion: 1.0 Nodes (1): Serve a 3D model file from ir.attachment. This bypasses the /web/conten ### Community 294 - "Community 294" Cohesion: 1.0 Nodes (1): Calculate surface area from an uploaded STL file using trimesh. ### Community 295 - "Community 295" Cohesion: 1.0 Nodes (1): Return part info plus the current default_process_id tree (or None). ### Community 296 - "Community 296" Cohesion: 1.0 Nodes (1): Return shared-template recipes (part_catalog_id IS NULL, node_type='recipe'). ### Community 297 - "Community 297" Cohesion: 1.0 Nodes (1): Clone a shared template into a part-scoped tree. Deletes any existing p ### Community 298 - "Community 298" Cohesion: 1.0 Nodes (0): ### Community 299 - "Community 299" Cohesion: 1.0 Nodes (0): ### Community 300 - "Community 300" Cohesion: 1.0 Nodes (1): Return a dict mapping state -> progress percent for the portal bar. ### Community 301 - "Community 301" Cohesion: 1.0 Nodes (1): Landing page -- start new quote or view past requests. ### Community 302 - "Community 302" Cohesion: 1.0 Nodes (1): Step 1: upload part or enter manual measurements. ### Community 303 - "Community 303" Cohesion: 1.0 Nodes (1): Step 2: select coating configuration. ### Community 304 - "Community 304" Cohesion: 1.0 Nodes (1): Step 3: show estimated price and submit. ### Community 305 - "Community 305" Cohesion: 1.0 Nodes (1): Submit quote request from configurator. ### Community 306 - "Community 306" Cohesion: 1.0 Nodes (1): Search products for the RFQ part number dropdown. ### Community 307 - "Community 307" Cohesion: 1.0 Nodes (0): ## Knowledge Gaps - **530 isolated node(s):** `Wire reports onto mail templates + clean up double-attach flags. Both the m`, `Replace the template's report_template_ids with exactly [report]. We use `s`, `Audit trail for sent notifications.`, `Prefer the Fusion Plating-branded invoice template over Odoo default. C`, `Prefer Fusion Plating-branded templates over Odoo defaults. Called by s` (+525 more) These have ≤1 connection - possible missing edges or undocumented components. - **Thin community `Community 77`** (2 nodes): `FpRegulator`, `fp_regulator.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 78`** (2 nodes): `FpPermitCondition`, `fp_permit_condition.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 79`** (2 nodes): `FpWasteStream`, `fp_waste_stream.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 80`** (2 nodes): `FpDischargeLimit`, `fp_discharge_limit.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 81`** (2 nodes): `ResUsers`, `res_users.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 82`** (2 nodes): `Sub 4 smoke test — runs inside odoo-shell on entech. Verifies: toggle-triggered`, `2026-04-22-sub4-smoke.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 83`** (2 nodes): `migrate()`, `post-migration.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 84`** (2 nodes): `AccountMoveLine`, `account_move_line.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 85`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 86`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 87`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 88`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 89`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 90`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 91`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 92`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 93`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 94`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 95`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 96`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 97`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 98`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 99`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 100`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 101`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 102`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 103`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 104`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 105`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 106`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 107`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 108`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 109`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 110`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 111`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 112`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 113`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 114`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 115`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 116`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 117`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 118`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 119`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 120`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 121`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 122`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 123`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 124`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 125`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 126`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 127`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 128`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 129`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 130`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 131`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 132`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 133`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 134`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 135`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 136`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 137`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 138`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 139`** (1 nodes): `Look up the template for this trigger, render it, and send. Also logs t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 140`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 141`** (1 nodes): `Compare value against parameter target range. Uses the parameter's defa` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 142`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 143`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 144`** (1 nodes): `Default expiry to five years after assessment.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 145`** (1 nodes): `Default expiry to five years after registration.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 146`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 147`** (1 nodes): `Log the current user's location. Called from portal JS.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 148`** (1 nodes): `Get the most recent location for each technician (for map view). Includ` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 149`** (1 nodes): `Remove location logs based on configurable retention setting. Setting (` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 150`** (1 nodes): `Register or update a push subscription.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 151`** (1 nodes): `Generate 12-hour time slots every 15 minutes, store hours only (9 AM - 6 PM).` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 152`** (1 nodes): `Sync the 12h selection fields from the raw float values.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 153`** (1 nodes): `Convert float hours to readable time strings.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 154`** (1 nodes): `Set default duration based on task type.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 155`** (1 nodes): `Auto-compute end time from start + duration. Also run overlap check.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 156`** (1 nodes): `Combine date + float time into proper Datetime fields for calendar. time` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 157`** (1 nodes): `Show booked + available time slots for the technician on the selected date.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 158`** (1 nodes): `Show previous task info + travel time warning with color coding.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 159`** (1 nodes): `Auto-fill company address when task is marked as in-store.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 160`** (1 nodes): `Auto-fill address fields from the selected client's address.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 161`** (1 nodes): `Non-in-store tasks must have a geocoded address.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 162`** (1 nodes): `Prevent overlapping bookings for the same technician on the same date.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 163`** (1 nodes): `Auto-set start/end time to the first available slot when tech+date change.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 164`** (1 nodes): `Handle calendar time range selection: pre-fill date + times from context.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 165`** (1 nodes): `Helper to fill address vals dict from a partner record.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 166`** (1 nodes): `Return task data, technician locations, and Google Maps API key. Args:` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 167`** (1 nodes): `Build a dict of technician start locations for route origins. Priority` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 168`** (1 nodes): `Get today's clock-in lat/lng from fusion_clock if installed. Uses the t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 169`** (1 nodes): `Cron job: Calculate travel times for today and tomorrow. Runs every 15` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 170`** (1 nodes): `Cron: detect tasks where the technician hasn't started and the scheduled` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 171`** (1 nodes): `Cron: Send push notifications for upcoming tasks.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 172`** (1 nodes): `Convert float hours to time string like '9:30 AM'.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 173`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 174`** (1 nodes): `Cron entry point. A shop admin can wire an ir.cron to this method. The` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 175`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 176`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 177`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 178`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 179`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 180`** (1 nodes): `Resolve target range: per-bath override first, parameter default second.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 181`** (1 nodes): `Kanban colour index — neutral palette that works in light + dark. Uses` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 182`** (1 nodes): `Return rules applicable to this (bath, parameter). Bath-specific rules t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 183`** (1 nodes): `At most one active certification per (employee, process_type).` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 184`** (1 nodes): `Utility — True if this employee holds a current certification. Checks r` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 185`** (1 nodes): `A bath log without readings is a useless empty record — it pollutes dail` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 186`** (1 nodes): `Return the full nested tree for a recipe.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 187`** (1 nodes): `Create a new child node under parent_id.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 188`** (1 nodes): `Update fields on an existing node.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 189`** (1 nodes): `Delete a node and all its children (cascade).` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 190`** (1 nodes): `Bulk-update sequence for an ordered list of sibling node IDs.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 191`** (1 nodes): `Move a node to a new parent (drag between sub-trees).` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 192`** (1 nodes): `Deep-copy an entire recipe tree.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 193`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 194`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 195`** (1 nodes): `Compute today's value for every active auto-KPI.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 196`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 197`** (1 nodes): `Kanban colour index — neutral palette that works in light + dark. 0=no` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 198`** (1 nodes): `Flip awaiting_bake records past their window to missed_window.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 199`** (1 nodes): `Build (and return) a transient queue snapshot for the given user.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 200`** (1 nodes): `Resolve a scanned QR code to a target record. Recognised payloads:` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 201`** (1 nodes): `Create a fusion.plating.bath.log with one line per reading. readings: l` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 202`** (1 nodes): `Start the MRP timer on a work order.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 203`** (1 nodes): `Pause or finish the MRP timer on a work order. finish=True calls button` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 204`** (1 nodes): `Record a single Fischerscope reading against an MO. Auto-links to the C` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 205`** (1 nodes): `Create a quality hold record, splitting qty from the original lot. If t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 206`** (1 nodes): `Return a rich dashboard snapshot for the Tablet Station page. Shape:` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 207`** (1 nodes): `Move a work order card to a different work centre (drag & drop). Only m` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 208`** (1 nodes): `Return work orders grouped by work centre for the plant overview. Works` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 209`** (1 nodes): `Return process flow steps for the horizontal bar.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 210`** (1 nodes): `Return cost breakdown for a work order's MO.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 211`** (1 nodes): `Return routing tree for a manufacturing order. Walks the MO's recipe tr` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 212`** (1 nodes): `Build the manager dashboard payload. `known_hash`: if the client sends` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 213`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 214`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 215`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 216`** (1 nodes): `fp_bol_portrait_save.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 217`** (1 nodes): `fp_isolate.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 218`** (1 nodes): `fp_uom_smoke.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 219`** (1 nodes): `fp_bol_portrait_inspect.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 220`** (1 nodes): `fp_bol_repro.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 221`** (1 nodes): `fp_company_check.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 222`** (1 nodes): `fp_grep.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 223`** (1 nodes): `fp_print_order.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 224`** (1 nodes): `fp_bol_stress.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 225`** (1 nodes): `fp_bol_pageverify.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 226`** (1 nodes): `fp_uom_smoke2.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 227`** (1 nodes): `fp_bol_html.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 228`** (1 nodes): `fp_dark_bundle_check.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 229`** (1 nodes): `fp_audit_reports.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 230`** (1 nodes): `fp_bol_inspect.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 231`** (1 nodes): `fp_dlv_check.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 232`** (1 nodes): `fp_bol_pagecount.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 233`** (1 nodes): `fp_debug_mo.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 234`** (1 nodes): `fp_verify_fixes.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 235`** (1 nodes): `fp_backfill.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 236`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 237`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 238`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 239`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 240`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 241`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 242`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 243`** (1 nodes): `Auto-inherit payment terms + customer PO# at creation time. Two defensi` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 244`** (1 nodes): `Auto-fill invoice strategy from customer defaults.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 245`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 246`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 247`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 248`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 249`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 250`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 251`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 252`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 253`** (1 nodes): `Return the best-matching template for a customer. Order: active custome` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 254`** (1 nodes): `Increment the (employee, role) tally and promote if at threshold. Idemp` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 255`** (1 nodes): `Return the set of res.users.ids whose linked employee is on shift. Used` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 256`** (1 nodes): `Pick the least-loaded employee with the given shop role. Returns a res.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 257`** (1 nodes): `A WO is release-ready when the manager has set EVERY field button_start` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 258`** (1 nodes): `If the facility has exactly one option for the equipment this WO needs,` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 259`** (1 nodes): `Cron entry point — auto-finish WOs whose recipe step is marked `auto_com` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 260`** (1 nodes): `Spin up a QC record for an MO, cloning lines from the template. If no t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 261`** (1 nodes): `Run pdftotext on an ir.attachment and return the text.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 262`** (1 nodes): `Best-effort Fischerscope WinFTM table parser. WinFTM single-reading exp` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 263`** (1 nodes): `Resolve and access-check a QC record.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 264`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 265`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 266`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 267`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 268`** (1 nodes): `Seed invoice defaults + default addresses when customer changes.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 269`** (1 nodes): `Auto-fill part, coating, and unit price from the linked quote.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 270`** (1 nodes): `When a part is picked, seed coating + treatments from its catalog defaults.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 271`** (1 nodes): `Auto-fill unit_price from customer price list when available.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 272`** (1 nodes): `Auto-fill both descriptions from the chosen template. Customer-facing t` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 273`** (1 nodes): `Offer a sensible default template — part-specific wins. Priority (first` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 274`** (1 nodes): `Compute weight from part volume × THIS QUOTE'S substrate density.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 275`** (1 nodes): `Surface area minus masking area, using THIS QUOTE'S values.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 276`** (1 nodes): `When a 3D file is uploaded, auto-create/update part catalog entry.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 277`** (1 nodes): `When a drawing is uploaded, attach to part catalog entry.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 278`** (1 nodes): `When an RFQ file is uploaded, create attachment + link it.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 279`** (1 nodes): `When a PO file is uploaded, create attachment + link it.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 280`** (1 nodes): `Batched: one grouped query across all records in self.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 281`** (1 nodes): `Map state + mail tracking to a single visible pill. - state draft => dr` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 282`** (1 nodes): `Margin = untaxed total − rolled-up cost from coating configs. x_fc_marg` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 283`** (1 nodes): `Create attachment from uploaded binary and link it.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 284`** (1 nodes): `Create attachment from uploaded binary, link it, and mark PO received.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 285`** (1 nodes): `Display = 'PART-NUMBER (Rev X) — Optional Name'. Used by m2o pickers, b` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 286`** (1 nodes): `Auto-calculate surface area when a 3D model is attached.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 287`** (1 nodes): `Wrap an uploaded binary file in an ir.attachment and link it. Fires as` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 288`** (1 nodes): `Default `x_fc_internal_description` from `name` when a caller creates a` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 289`** (1 nodes): `When estimator picks a template, auto-fill both descriptions. The custo` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 290`** (1 nodes): `Return the best-matching active price list entry for this request.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 291`** (1 nodes): `occt-import-js-worker.js` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 292`** (1 nodes): `Serve the standalone 3D viewer HTML page. Query params: id (attachment` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 293`** (1 nodes): `Serve a 3D model file from ir.attachment. This bypasses the /web/conten` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 294`** (1 nodes): `Calculate surface area from an uploaded STL file using trimesh.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 295`** (1 nodes): `Return part info plus the current default_process_id tree (or None).` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 296`** (1 nodes): `Return shared-template recipes (part_catalog_id IS NULL, node_type='recipe').` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 297`** (1 nodes): `Clone a shared template into a part-scoped tree. Deletes any existing p` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 298`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 299`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 300`** (1 nodes): `Return a dict mapping state -> progress percent for the portal bar.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 301`** (1 nodes): `Landing page -- start new quote or view past requests.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 302`** (1 nodes): `Step 1: upload part or enter manual measurements.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 303`** (1 nodes): `Step 2: select coating configuration.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 304`** (1 nodes): `Step 3: show estimated price and submit.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 305`** (1 nodes): `Submit quote request from configurator.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 306`** (1 nodes): `Search products for the RFQ part number dropdown.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 307`** (1 nodes): `__manifest__.py` 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 `write()` connect `Community 2` to `Community 1`, `Community 3`, `Community 4`, `Community 6`, `Community 12`, `Community 13`, `Community 14`, `Community 18`, `Community 23`, `Community 28`?** _High betweenness centrality (0.200) - this node is a cross-community bridge._ - **Why does `Get()` connect `Community 1` to `Community 0`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 16`, `Community 17`, `Community 22`, `Community 23`, `Community 27`, `Community 28`, `Community 37`, `Community 41`, `Community 49`?** _High betweenness centrality (0.151) - this node is a cross-community bridge._ - **Why does `_()` connect `Community 1` to `Community 0`, `Community 2`, `Community 3`, `Community 4`, `Community 7`, `Community 8`, `Community 10`, `Community 12`, `Community 13`, `Community 14`, `Community 16`, `Community 18`, `Community 23`?** _High betweenness centrality (0.127) - this node is a cross-community bridge._ - **Are the 228 inferred relationships involving `write()` (e.g. with `post_init_hook()` and `_apply_report_template()`) actually correct?** _`write()` has 228 INFERRED edges - model-reasoned connections that need verification._ - **Are the 157 inferred relationships involving `Get()` (e.g. with `._find_mail_template()` and `._collect_attachments()`) actually correct?** _`Get()` has 157 INFERRED edges - model-reasoned connections that need verification._ - **Are the 135 inferred relationships involving `_()` (e.g. with `.action_close()` and `_check_address_required()`) actually correct?** _`_()` has 135 INFERRED edges - model-reasoned connections that need verification._ - **Are the 23 inferred relationships involving `Set()` (e.g. with `_apply_report_template()` and `.write()`) actually correct?** _`Set()` has 23 INFERRED edges - model-reasoned connections that need verification._