diff --git a/CLAUDE.md b/CLAUDE.md index 4e7c912e..28fbfb2b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,6 +33,10 @@ 15. **There is NO `sale.subscription` model in Odoo 19** (Enterprise `sale_subscription`). A subscription is a **`sale.order`** with `is_subscription=True`, `plan_id` → **`sale.subscription.plan`** (the recurrence), plus `subscription_state` / `next_invoice_date` / `recurring_monthly`. Any Many2one or relation that targets "a subscription" must point at `sale.order` (filter `domain=[('is_subscription','=',True)]`) — **not** `sale.subscription`, which does not exist and fails at install. The surviving `sale.subscription.*` records are only the plan + wizards/reports (`sale.subscription.plan`, `sale.subscription.report`, `sale.subscription.change.customer.wizard`, `sale.subscription.close.reason.wizard`). Verified on live `nexamain` (odoo-nexa, 19.0): `SELECT model FROM ir_model WHERE model LIKE 'sale.subscription%'`. +16. **Renaming a module's technical name needs a DB rename, not just a folder rename.** The technical name is baked into the database: `ir_module_module.name`, every external ID in `ir_model_data.module`, each view's `ir_ui_view.key` prefix, and the `ir_module_module_dependency.name` rows of every module that depends on it. Rename only the folder + in-code references and Odoo treats the new name as a fresh uninstalled module — installing it **duplicates** groups/templates/menus and **orphans** all existing data. On every DB that already has it installed, run an in-place SQL rename (the 4 tables above) **before** `-u `; a fresh DB needs nothing. Reference script + full rationale: [`fusion_portal/rename_module.sql`](fusion_portal/rename_module.sql) (written for the `fusion_authorizer_portal` → `fusion_portal` rename). Also update cross-module `depends`, `inherit_id=".view"`, `t-call`, `env.ref('.xmlid')`, asset paths (`/static/...`), and `from odoo.addons.... import`. + +17. **`url_encode` (and werkzeug url helpers) are NOT available in the Odoo 19 `mail.template` QWeb render context.** Using `url_encode({...})` inside a template `body_html` (e.g. to build a fallback link) makes the template fail Odoo's save-time render validation **at install**, surfacing as the opaque `ParseError: ... Oops! We couldn't save your template due to an issue with this value: ` (the real `NameError` is hidden, and `--log-handler odoo.tools.convert:DEBUG` does NOT reveal it). Build URLs with plain string methods instead: `'https://…?q=' + (value or '').replace(' ', '+')`. Found installing `fusion_repairs` (post-visit NPS template). **That same opaque "issue with this value" error wraps ANY render failure in a mail.template body** — when you see it, suspect an undefined name / bad field reference in the template, not malformed XML. + ## Card Styling — Copy Odoo's Kanban Pattern Don't rely on `var(--bs-border-color)` or `var(--bs-body-bg)` for card surfaces — they drift between themes/addons and often render **invisible**. Odoo's own kanban (`.o_kanban_record`) uses **explicit hex** values: ```css @@ -94,7 +98,8 @@ Odoo content-hashes the compiled bundle URL (`/web/assets//...`). When CSS ## Module-Specific Notes - **fusion_clock** — developed in **Claude Code** (no longer Cursor; no concurrent-editing conflicts). Changed a lot recently (NFC kiosk: tap-to-clock, enrollment + program-from-unknown-tap, manager page, sounds, screen lock, guided profile-photo capture, faster animations). Still read files fresh before editing rather than assuming the layout. Live on entech (`odoo-entech` / LXC 111 on `pve-worker5`). -- **fusion_repairs** — read [`fusion_repairs/cloud.md`](fusion_repairs/cloud.md) before feature work. **Version `19.0.2.2.4`.** Bundles 1–11 shipped in repo (intake, portals, dashboard, pricing, flowcharts, parts/PO). **Not production-deployed** to Westin as of 2026-05-27. Local: `docker exec odoo-modsdev-app odoo -d fusion-dev -u fusion_repairs --stop-after-init`. Outstanding: RingCentral SMS, C2 history sidebar UI, office follow-up crons (config keys only), `tests/`, more flowchart content, sales-rep dashboard tile in `fusion_authorizer_portal`. +- **fusion_repairs** — read [`fusion_repairs/cloud.md`](fusion_repairs/cloud.md) before feature work. **Version `19.0.2.3.0`** (Plan-1 maintenance foundation added 2026-06-02). **NOT Community-installable** — it transitively pulls in Enterprise `ai` + `knowledge` (`fusion_repairs → fusion_portal → fusion_claims → ai`; `fusion_portal → knowledge`), so it can NOT be installed or tested on local `odoo-modsdev` (Community) — the old `-d fusion-dev -u fusion_repairs` recipe does NOT work. **Test on Enterprise:** an isolated `westin-fr-test` DB on the `odoo-westin` host (clone of prod `westin-v19`; a fresh-DB clone install also needs a one-time orphaned-FK cleanup because prod has orphaned account/tax m2m rows). First-ever clean install surfaced + fixed 2 bugs (url_encode → rule 17; menu parent defined after its children) in commit `903ceb10`. **Not production-deployed** to Westin yet. **Test-runner gotchas on that prod-config container:** `--test-enable` SILENTLY SKIPS all tests without `--workers 0`; the conf's `log_level=warn` hides test output (add `--log-level=test`); the post_install phase also trips on a pre-existing module, so verify behaviour via `odoo shell` rather than the test runner. `mail_template_data.xml` is `noupdate=1` → template edits load on a FRESH install (the prod deploy) but NOT on `-u` of an already-installed DB. Outstanding: maintenance booking (Plan 2), visit log (Plan 3), backfill wizard (Plan 4), office follow-up crons (Plan 5), RingCentral SMS. +- **fusion_portal** (formerly `fusion_authorizer_portal`) — authorizer/sales-rep portal; **ENTERPRISE-only** (depends `knowledge` → cannot run on local Community; verify on a westin clone, see *Westin Prod* below). **Assessment-visit flow LIVE on westin, v19.0.2.10.1.** A `fusion.assessment.visit` bundles the assessments from one home visit and, on completion (`action_complete_visit`), groups them by funding workflow (`x_fc_sale_type`) into ONE draft sale order per workflow (MoD/ADP/ODSP/WSIB/private/hardship/insurance) — never one combined SO, never one-per-item-within-a-funding. ADP devices group into one order (combination guard: ≤1 seated {wheelchair/powerchair/scooter} + ≤1 walker); accessibility items group per funding. Reps enter via the "Start a Visit" dashboard tile → `/my/visit/new`; the express/accessibility forms carry `?visit_id=` and defer SO creation to the visit. Renaming the technical name needs a DB rename — see [`fusion_portal/rename_module.sql`](fusion_portal/rename_module.sql). ## Workflow - Local dev: `docker exec odoo-modsdev-app odoo -d fusion-dev -u --stop-after-init` @@ -136,6 +141,19 @@ PGPASSWORD='a09e12e0995dc29446631fa458f3d4b3' psql -h 100.74.28.73 -p 5433 -U po - `fusionapps.code_snippets` — reference code - `fusionapps.quick_commands` — deployment and admin commands +## Westin Prod — Deploy & Clone-Verify (fusion_portal et al.) + +Westin prod: host `odoo-westin`, app container `odoo-dev-app`, db container `odoo-dev-db`, DB `westin-v19` (user `odoo`, pw `DevSecure2025!`), addons `/opt/odoo/custom-addons` → `/mnt/extra-addons`, Enterprise `/mnt/enterprise-addons`, conf `/etc/odoo/odoo.conf`. ENTERPRISE env — modules depending on `knowledge` (fusion_portal → fusion_claims) cannot run on local Community, so verify on a clone before prod. + +**Clone-verify a change (prod-safe, isolated — prod files + live DB untouched):** +1. Clone online: `docker exec -e PGPASSWORD='DevSecure2025!' odoo-dev-db sh -c 'dropdb -U odoo --if-exists westin-v19-visittest; createdb -U odoo -O odoo westin-v19-visittest && pg_dump -U odoo westin-v19 | psql -U odoo -q -d westin-v19-visittest'` (~2 min, ~152M -Fc). +2. Stage the branch module into an isolated dir INSIDE the addons path: `/opt/odoo/custom-addons/_test/`, then `-u --stop-after-init --no-http --db_host db --db_port 5432 --db_user odoo --db_password 'DevSecure2025!' --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/usr/lib/python3/dist-packages/addons,/mnt/extra-addons/_test,/mnt/enterprise-addons,/mnt/extra-addons`. The `/mnt/extra-addons/_test` prefix SHADOWS prod's copy (first matching path wins); deps load from the real `/mnt/extra-addons`. +3. Smoke-test via `odoo shell -d westin-v19-visittest` (same addons-path); `env.cr.rollback()` at the end. To exercise email paths WITHOUT sending: `UPDATE ir_mail_server SET active=false;` AND in the shell `env['ir.mail_server'].__class__.send_email = lambda self, message, *a, **k: 'noop'` (`odoo shell` rejects `--smtp-server`). + +**THE ORPHANED-TAX-FK TRAP** (cost real diagnosis time): westin-v19 has ~3300 orphaned rows in `product_taxes_rel` + ~3300 in `product_supplier_taxes_rel` (`tax_id` → deleted `account_tax`), under FKs that are `convalidated=true` (taxes deleted via an FK-bypassing path; PG never re-checks a validated constraint). A plain `pg_dump | psql` clone can't recreate a *validating* FK over orphaned data → the FK is lost on the clone → Odoo `check_foreign_keys` tries to add it → `ForeignKeyViolation: Key (tax_id)=(N) is not present in account_tax` → "Failed to load registry". **Fix ON THE CLONE only:** `DELETE FROM WHERE tax_id NOT IN (SELECT id FROM account_tax)` across every `%_rel` table with a tax column. **Prod `-u` is SAFE without touching the orphans** — prod's FK already exists, so Odoo skips it (it never re-validates a present FK); proven empirically by replicating FK-present+orphan on a clone and running `-u` (exit 0, orphan untouched). Owner is auditing the orphans — do NOT delete them on prod without sign-off. + +**Deploy:** backup (`docker exec ... pg_dump -Fc -U odoo westin-v19 > /opt/odoo/backups/.dump` + `cp -r` the module dir to `/opt/odoo/backups/` — OUTSIDE the addons path, never a `*.bak` dir inside it) → `scp` branch to `/opt/odoo/staging/` → swap into `/opt/odoo/custom-addons/` → `-u ` → `DELETE FROM ir_attachment WHERE url LIKE '/web/assets/%'` → `docker restart odoo-dev-app`. **Gate the restart on `-u` exit 0**; on failure restore the dir backup and do NOT restart. When a feature branch predates main's other merges, merge to `main` **surgically** (temp worktree off `origin/main` + `git checkout -- ` → commit → fast-forward push) so you don't revert parallel sessions' work. + ## Fusion Helpdesk — Customer Follow-up + Embedded Inbox (deployment + handoff) Two modules: **`fusion_helpdesk`** (client — runs on each client deployment, e.g. entech) @@ -230,3 +248,41 @@ catches undefined names instantly. open the systray helpdesk dialog. The Mine/All toggle appears for the owner; "All" shows all 50 ENTECH tickets, "Mine" shows the count matching the owner's profile email. Tracebacks live in `/var/log/odoo/odoo-server.log` on entech (LXC 111 / pve-worker5). + +## Fusion Centralized Billing (`fusion_centralize_billing`) — engine + test harness + +Odoo (`odoo-nexa`, live DB `nexamain`) is being made the single billing brain for every +NexaSystems app (NexaCloud, NexaDesk/Fusion-Chat, NexaMaps), **superseding Lago**. The +module adds only the metering + integration layer (service registry, identity links, +metric/charge catalog, aggregate-push usage engine, inbound Lago-shaped REST API at +`/api/billing/v1/*`, outbound HMAC webhooks, dual-run reconciliation); all financial +behaviour is native Odoo **Enterprise** (`sale_subscription` + `payment_stripe` + +`account_accountant`). Design + rollout live in `docs/superpowers/specs/` +(`2026-05-27-nexa-billing-centralized-design.md` = architecture; +`2026-06-02-nexacloud-odoo-billing-cutover-design.md` = NexaCloud pilot: build → import → +dual-run → gated flip) and `docs/superpowers/plans/`. + +**Testing it — NOT on local `odoo-modsdev` (community) and NEVER `-u` against live `nexamain`.** +It needs Enterprise deps, so tests run on `odoo-nexa` in an **isolated throwaway container** +against a **fresh** DB with the Canadian localization: +``` +ssh odoo-nexa +# fresh DB (inside odoo-nexa-db): dropdb --if-exists fcb_test; createdb fcb_test +cp -a /opt/odoo/custom-addons /opt/odoo/custom-addons-staging # edit/sync HERE, never the live module dir +docker run --rm --network odoo_odoo-network \ + -v /opt/odoo/custom-addons-staging:/mnt/extra-addons:ro -v /opt/odoo/enterprise-addons:/mnt/enterprise-addons:ro \ + -v /opt/odoo/odoo.conf:/etc/odoo/odoo.conf:ro -v /opt/odoo/staging-data:/var/lib/odoo \ + odoo-nexa:19 -c /etc/odoo/odoo.conf -d fcb_test --db_host=db --db_user=odoo \ + --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons,/mnt/enterprise-addons \ + --without-demo=all --test-enable --test-tags /fusion_centralize_billing \ + -i l10n_ca,fusion_centralize_billing --stop-after-init --no-http +``` +Iterate with `-u fusion_centralize_billing` (reuse fcb_test). Gotchas that cost hours: +- **`l10n_ca` is required** — the ledger tests need a Canadian CoA + active CAD + 13% HST. +- A **prod clone is the wrong base** — its existing rows collide with fixed-code test fixtures + (`nexacloud` service / `cpu_seconds` metric) across 5 test files. +- odoo.conf sets `log_level=warn`, so **passing tests log nothing** — exit 0 alone does NOT + prove tests ran (a tag matching zero tests is also exit 0). Confirm execution with + `--log-handler=odoo.addons.fusion_centralize_billing.tests:INFO` (look for `Starting + .`). The **exit code is authoritative** (1 on any failure). +- Do **NOT** pass `--workers=0` (blanks captured stdout) or `--logfile=/dev/stdout` (errors out). diff --git a/Work in Progress/fusion_quotations/__manifest__.py b/Work in Progress/fusion_quotations/__manifest__.py index e4dc57a7..beb23233 100644 --- a/Work in Progress/fusion_quotations/__manifest__.py +++ b/Work in Progress/fusion_quotations/__manifest__.py @@ -28,7 +28,7 @@ 'website', 'mail', 'fusion_claims', - 'fusion_authorizer_portal', + 'fusion_portal', ], 'data': [ 'security/security.xml', diff --git a/docs/plans/fusion_maintenance_brainstorm.md b/docs/plans/fusion_maintenance_brainstorm.md new file mode 100644 index 00000000..7166e0f0 --- /dev/null +++ b/docs/plans/fusion_maintenance_brainstorm.md @@ -0,0 +1,194 @@ +# fusion_maintenance — Brainstorm & Handoff Brief + +> Status: **research/brainstorm only — no code, no final decisions.** Written from a +> Claude Code *web* session that could **not** reach the private network (no Tailscale, +> no docker daemon, Supabase KB unreachable). Resume from a **Tailscale-connected env** +> (dev box or a host that can reach Westin production) and do the live inspection in +> Step 0 **before** committing to the design. + +## Goal (user's words, paraphrased) +Automated maintenance follow-ups for mobility/accessibility equipment we've sold, to turn +service into **recurring revenue**. Reminder emails → client books maintenance → booking +happens in **real time** and **lands in our calendar**. Leverage Odoo Enterprise's +appointment system. Decide whether this lives in `fusion_repairs` or a new module — the +result must be **seamless and production-ready**. + +## Decisions locked with the user (this session) +- **Same DB**: `fusion_claims` + `fusion_repairs` run on one database → new module may depend on both. +- **Enterprise `appointment` is available** → build real-time booking ON it (`appointment.type` / + `appointment.slot` / `calendar.event`), do **not** hand-roll a calendar. +- **Public self-serve booking** → reminder email carries a token link to a no-login slot picker + (extend the existing `/repairs/maintenance/book/` pattern). Elderly clients shouldn't log in. +- **Target box for grounding = Westin production** (where `fusion_claims` runs day-to-day). + +## Key findings from repo exploration + +### `fusion_repairs` (v19.0.2.2.6) ALREADY has a maintenance engine — reuse it, don't fork +- `fusion.repair.maintenance.contract`: interval, due/last-service dates, state machine. + Auto-spawned on SO confirm when `product.template.x_fc_maintenance_interval_months > 0`. +- Daily reminder cron `cron_maintenance_due_reminders` → 30/7/1-day bands → branded email + `email_template_maintenance_due_reminder` with tokenized link `/repairs/maintenance/book/`. +- Booking controller: `controllers/portal_maintenance_booking.py` — **single date-confirm form, + NO slot availability, NO conflict check, NO calendar event.** ← this is the real gap. +- Contract **roll-forward** on technician-task completion (`next_due_date += interval`). +- `fusion.repair.service.plan.subscription`: pre-paid visit plans (recurring-revenue primitive). +- Deps: `repair, maintenance, sale_management, stock, purchase, website, portal, fusion_tasks, + fusion_poynt, fusion_authorizer_portal`. ~8.3k LOC, 25+ models. + +### `fusion_claims` (v19.0.9.2.0) is the ideal trigger source +- Claim container = `sale.order` (`x_fc_sale_type`: adp, odsp, wsib, insurance, march_of_dimes, …). +- **Equipment unit** = `sale.order.line.x_fc_serial_number` + `product_id`. +- **Equipment category** = `fusion.adp.device.code.device_type` (wheelchair, walker, hospital bed, + stair lift, porch lift, custom ramp, …) — matches the user's "sale groups". +- **Schedule anchors**: `x_fc_adp_delivery_date`, `x_fc_service_start_date`; gate on `x_fc_adp_approved`. +- Customer = `sale.order.partner_id`; prescriber = `x_fc_authorizer_id`. +- Already depends on `calendar, fusion_tasks, ai, fusion_ringcentral`. + +## Proposed architecture (PENDING live verification) +**New module `fusion_maintenance`** depending on `fusion_repairs`, `fusion_claims`, `appointment`. +Reuses the existing contract/reminder/roll-forward engine; adds the 3 genuinely-missing pieces: + +1. **`fusion.maintenance.policy`** (ops-configurable, no code per category): + `device_type` → `interval_months`, reminder bands, `service_product_id` (priced visit), + `appointment_type_id`, required technician skill. Turns "stair lift = 6 mo, $X" into data. +2. **Claims bridge** (daily cron): scan `fusion_claims` `sale.order.line` for delivered+approved + devices whose `device_type` matches an active policy → ensure a maintenance contract exists, + anchored at `delivery_date + interval`. Idempotent (key on serial / sale-line). Extend the + reused contract with `x_fc_source_claim_line_id`, `x_fc_device_type`, `x_fc_policy_id` so the + repairs path and claims path both feed **one** contract model. +3. **Real-time booking on `appointment`**: token link → slot picker backed by `appointment.type` + (partner pre-resolved from token, no login). Slot pick → real `calendar.event` → hook spawns + `repair.order` + technician task, assigns by skill/zone, advances reminder band, rolls contract + forward. + +**Recurring revenue**: each policy carries `service_product_id` → booked visit drafts a priced +SO/invoice; optional pre-paid annual plan via existing `service.plan.subscription`; optional +door payment via existing `fusion_poynt`. + +## STEP 0 — run on Westin production FIRST (grounding before any decision) +> Replace `APP`/`DB` with the real Westin container + database. CLAUDE.md rule #1: never code +> from memory — read the real Enterprise `appointment` source before building the booking layer. + +```bash +# RESOLVED 2026-06-02 — Westin Odoo prod migrated OFF Digital Ocean onto the on-prem Proxmox +# cluster. Old DO IPs (152.42.146.204 / 178.128.229.92) are DEAD (:22 timeout). Live box: +# host `odoo-westin` = 192.168.1.40 via the `supabase-prod` Tailscale jump (Windows OpenSSH +# ProxyCommand → run `ssh odoo-westin ...` from PowerShell). App container `odoo-dev-app` +# (odoo:19, Enterprise); DB container `odoo-dev-db`; DB `westin-v19`; user `odoo` (local-socket +# trust inside odoo-dev-db). Enterprise addons → /mnt/enterprise-addons, custom → /mnt/extra-addons. +# SQL: ssh odoo-westin 'docker exec odoo-dev-db psql -U odoo -d westin-v19 -c "..."' +# FS read: ssh odoo-westin 'docker exec odoo-dev-app sed -n 1,160p /mnt/enterprise-addons/...' +APP=odoo-dev-app ; DB=westin-v19 ; DBC=odoo-dev-db + +# 1) Install matrix — confirm same-DB + Enterprise appointment present + versions +docker exec "$APP" psql -U odoo -d "$DB" -c \ +"SELECT name,state,latest_version FROM ir_module_module \ + WHERE name IN ('fusion_claims','fusion_repairs','fusion_maintenance','calendar','maintenance','repair') \ + OR name LIKE 'appointment%' ORDER BY name;" + +# 2) Real device_type distribution (drives per-category policies) +docker exec "$APP" psql -U odoo -d "$DB" -c \ +"SELECT device_type, count(*) FROM fusion_adp_device_code GROUP BY device_type ORDER BY 2 DESC;" + +# 3) Locate the Enterprise appointment source (read, don't guess the API) +docker exec "$APP" bash -lc 'ls -d /mnt/enterprise-addons/appointment 2>/dev/null || \ + find / -maxdepth 6 -type d -name appointment 2>/dev/null | grep -i addons | head' + +# 4) Appointment model surface to build booking on (adjust path from #3) +docker exec "$APP" cat /models/appointment_type.py | head -160 +docker exec "$APP" ls /controllers/ # find the public booking controller + +# 5) How fusion_repairs maintenance contracts already look in live data +docker exec "$APP" psql -U odoo -d "$DB" -c \ +"SELECT state, count(*) FROM fusion_repair_maintenance_contract GROUP BY state;" +``` + +## STEP 0 — RESULTS (ran 2026-06-02 against Westin prod `westin-v19`) +> Grounding facts only — **no design decisions made**. These correct several assumptions above. + +**Connection (resolved):** host `odoo-westin` (192.168.1.40) via the `supabase-prod` Tailscale jump. +App container `odoo-dev-app` (odoo:19, Enterprise), DB container `odoo-dev-db`, DB `westin-v19`, +user `odoo`. Old Digital Ocean boxes are DEAD — Westin migrated on-prem. + +**1) Install matrix** — `appointment` **19.0.1.3 installed** (+ `appointment_account_payment`, +`_crm`, `_hr`, `_microsoft_calendar`, `_sms`). All deps present: `calendar`, `maintenance`, `repair`, +`sale_management`, `portal`, `website`, `resource`, `phone_validation`, `web_gantt`. `fusion_claims` +**19.0.9.2.0 installed**. `fusion_repairs` and `fusion_maintenance` are **absent entirely** (no +records). → a module depending on `appointment` installs cleanly; "reuse the fusion_repairs engine" +means *deploy fusion_repairs to Westin first* (heavy) **or** own a lean contract model here. Note +Odoo's native `maintenance` (CMMS) is installed — an under-considered third reuse option. + +**2) device_type** — 119 distinct values, but `fusion.adp.device.code` is the ADP billing-code +**CATALOG** (`_order='device_type, device_code'`), so counts are catalog codes per type, **NOT units +installed**. Top entries are seating COMPONENTS (Seat Cushion 564, Back Support 375, Headrest 193). +The maintainable **equipment classes** ≈ wheelchairs (manual + power tilt), power bases, power +scooters, wheeled walkers / walking frames, paediatric standing frames, specialty strollers (~6-8 +clean categories). → `device_type` can't be a 1:1 policy key (119 values, mostly parts); needs a +grouping/whitelist. **Real install base sized on `sale.order.line`** (`x_fc_adp_device_type` [stored compute from +product's `x_fc_adp_device_code_id.device_type`], `x_fc_serial_number`, `x_fc_adp_approved`; delivery +dates `x_fc_adp_delivery_date` / `x_fc_service_start_date`) — **see the Install-base sizing block below.** + +**3) + 4) Enterprise appointment source** — `/mnt/enterprise-addons/appointment`. The no-login token +slot-picker is **mostly NATIVE — don't hand-roll it**: public booking (`auth="public"`), invite +tokens (`appointment.invite`, `/appointment/?…invite_token`), live availability +(`/appointment//update_available_slots`, jsonrpc/public), slot submit → real `calendar.event` +(`/appointment//submit`), auto/manual staff+resource assignment, capacity, booked/cancelled mail +templates. Model `appointment.type`; controller `controllers/appointment.py`. → the module mainly +needs to: seed an `appointment.type` per category, drop a partner-bound invite link into the reminder +email, and hook `calendar.event` create → spawn the service task + advance the contract. +`appointment_account_payment` is installed → native pay-to-book is on the table for the revenue mechanic. + +**5) Maintenance-contract state** — `relation "fusion_repair_maintenance_contract" does not exist` +→ confirms the fusion_repairs maintenance engine is **not** on Westin. + +**Headline correction:** Westin's ADP data has **zero** stair lifts / porch lifts / ramps / hospital +beds — those belong to the fusion_repairs / EN-Tech (mobility) domain. Westin's recurring-revenue +play is **wheelchairs / power bases / scooters / walkers / seating**. Open questions updated below. + +**Install-base sizing (ran 2026-06-02 — the REAL units, complementing #2's catalog counts).** Big tell: +serial numbers are captured **~only on actual equipment** (every part/option/mod device_type shows 0 +serials), so `x_fc_serial_number` is already a de-facto "trackable unit" marker — convenient, because the +bridge's idempotency key is the serial. + +- **Addressable base ≈ 138 serial-tracked units across ~136 customers** (all funders). By equipment + family (serial-tracked / of which delivered): **Walkers & walking frames 68 (55)**, **Wheelchairs 45 + (40)**, **Power bases 7 (6)**, **Scooters 4 (3)**, plus **14 units with no ADP device_type** (likely + private-pay) and 1 misc. +- **Funder split** (serial-tracked): adp 109, direct_private 13, adp_odsp 10, march_of_dimes 7; + wsib / insurance / standalone-odsp / rental / regular = **0 serials**. → an ADP-only gate + (`x_fc_adp_approved`) captures ~110 and **misses ~28** real units. The bridge should likely key on + **serial (funder-agnostic)**, not approval. +- **Two data gaps the design must absorb:** (a) the 14 serial units with no ADP device_type can't be + classified by a device_type→policy map → need a product-level or manual category override; (b) non-ADP + units have no `x_fc_adp_delivery_date` → the contract anchor (`delivery_date + interval`) needs a + fallback (invoice/order date). +- Deliveries span **2022-10 → 2026-05** (active program) — history to anchor intervals + a live pipeline. +- Top serial-tracked device_types: Adult Wheeled Walker Type 3 (47), Adult Manual Dynamic Tilt Type 5 + Wheelchair (23), Adult Lightweight Performance Type 3 (11), Adult Lightweight Standard Type 1 (10), + Adult Wheeled Walker Type 2 (9), Adult Power Base Type 3 (5), Power Scooter (3). (1 line ≈ 1 unit; + equipment device_types are 1 base line each.) + +## Open questions to resolve with the user (in the connected session) +- **MVP cut**: which categories first? Sizing surfaces a real tension: **by volume** it's walkers (68) + + wheelchairs (45) ≈ 82% of the base, but rollators/walkers are mechanically low-service; **by + service-revenue-per-unit** the targets are the powered units (power bases 7 + scooters 4 + power + wheelchairs) — high maintenance value but only ~11–15 units today. Volume vs. margin — or phase it + (powered units first to prove the booking loop, then walkers/manual chairs for reach)? +- **Revenue mechanic**: auto-draft a priced SO/invoice per booking, vs. pre-paid annual plan, vs. + pay-at-door via Poynt — which is the default? +- **Technician assignment**: auto-assign by skill+zone at booking time, or leave dispatch manual + (fusion_tasks) and only reserve the calendar slot? +- **Booking-portal strategy**: Step 0 shows Enterprise `appointment` already ships public, + token-based real-time booking (`appointment.invite` + `/appointment//...`, `auth="public"`). + Ride on that (generate an invite per reminder, partner pre-bound, no login) vs. a custom + `/maintenance/book/` route? (The `/repairs/...` route is moot — fusion_repairs isn't on Westin.) + +## Applicable CLAUDE.md rules (don't relearn the hard way) +- Rule #1: read reference files from the running instance before coding (esp. the appointment source). +- Odoo 19: `res.users.group_ids` (not `groups_id`); `ir.cron` has no `numbercall`; declarative + `models.Constraint`/`models.Index`; HTTP routes `type="jsonrpc"`; OWL uses standalone `rpc()`. +- No `sale.subscription` model exists — a subscription is a `sale.order` with `is_subscription=True`. +- New fields use `x_fc_` prefix; Canadian English; `$` Monetary + `currency_id`. +- Route attachment opens through `fusion_pdf_preview` (`att.action_fusion_preview(...)`). +- Tests need `--http-port=0 --gevent-port=0`. Westin prod is Enterprise; local dev is Community + (so the appointment-dependent module can't be installed/tested on `odoo-modsdev-app`). diff --git a/docs/superpowers/plans/2026-05-31-fusion-clock-statutory-break.md b/docs/superpowers/plans/2026-05-31-fusion-clock-statutory-break.md new file mode 100644 index 00000000..90f3ec9e --- /dev/null +++ b/docs/superpowers/plans/2026-05-31-fusion-clock-statutory-break.md @@ -0,0 +1,864 @@ +# Fusion Clock — Province-Aware Automatic Unpaid Break Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Make the unpaid meal break deduct automatically from worked hours on every path (portal, kiosk, NFC, cron, **and manual backend entry**), using a 2-tier per-province rule table (Ontario: 5h→30min, 10h→+30min), with no duplicated logic. + +**Architecture:** A new `fusion.clock.break.rule` table holds the per-province thresholds. `hr.employee._get_fclk_break_rule()` resolves an employee's rule from its company's province (global default fallback). `hr.attendance.x_fclk_break_minutes` becomes a single stored **computed** field — `statutory_break(worked_hours) + Σ penalty_minutes` — that recomputes on every save and replaces the four scattered write sites (controller `_apply_break_deduction` ×3 call sites, the auto-clock-out cron, and the penalty code's manual write). + +**Tech Stack:** Odoo 19, Python, QWeb/XML views, Odoo test framework (`TransactionCase`). + +**Spec:** `docs/superpowers/specs/2026-05-31-fusion-clock-statutory-break-design.md` + +--- + +## Dev environment & sync (READ FIRST — applies to every task) + +**Two working copies (per project memory `feedback_dual_path_fusion_clock`):** +- **Git/source tree (edit + commit here):** `K:\Github\Odoo-Modules\fusion_clock` +- **Docker/active tree (what the container loads):** `K:\Github\odoo-modsdev\addons\fusion_clock` + +Edit in the **git tree**, then **mirror to the Docker tree before every test run**: + +```powershell +robocopy "K:\Github\Odoo-Modules\fusion_clock" "K:\Github\odoo-modsdev\addons\fusion_clock" /MIR /XD ".git" "__pycache__" /XF "*.pyc" /NFL /NDL /NJH /NJS; if ($LASTEXITCODE -lt 8) { "sync ok" } else { "sync FAILED" } +``` +(robocopy exit codes < 8 = success.) **Preflight:** if `K:\Github\odoo-modsdev\addons\fusion_clock` does not exist, the dual-tree setup changed — STOP and confirm the active copy with the user before continuing. + +**Container/DB:** `odoo-modsdev-app` / db `modsdev` (per memory `reference_docker_env_names`). + +**Canonical commands** (note the ephemeral ports — `--test-enable` forces `http_spawn()` so 8069/8072 collide without them; per repo CLAUDE.md): + +- Run this module's tests: + ```bash + docker exec odoo-modsdev-app odoo -d modsdev --test-enable --test-tags /fusion_clock -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -100 + ``` +- Plain upgrade (no tests): + ```bash + docker exec odoo-modsdev-app odoo -d modsdev -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -50 + ``` +- Pyflakes a changed Python file (catches undefined names instantly): + ```bash + docker exec odoo-modsdev-app python3 -m pyflakes /mnt/extra-addons/fusion_clock/.py + ``` + +**Commit:** only from the git tree (`git -C "K:/Github/Odoo-Modules" ...`). Per memory `feedback_always_push_to_main`, push after each commit on `main`. + +--- + +## File Structure + +**Created:** +- `fusion_clock/models/clock_break_rule.py` — the `fusion.clock.break.rule` model + tier engine + constraints. +- `fusion_clock/data/clock_break_rule_data.xml` — seed Ontario rule (`is_default`). +- `fusion_clock/views/clock_break_rule_views.xml` — list/form/action for the rule. +- `fusion_clock/migrations/19.0.4.1.0/post-migrate.py` — drop retired param + recompute break. +- `fusion_clock/tests/test_break_rules.py` — all new tests. + +**Modified:** +- `fusion_clock/models/__init__.py` — import the new model. +- `fusion_clock/models/hr_employee.py` — add `_get_fclk_break_rule()`. +- `fusion_clock/models/hr_attendance.py` — `x_fclk_break_minutes` → stored compute; drop cron break-write. +- `fusion_clock/controllers/clock_api.py` — delete `_apply_break_deduction`, its clock-out call, and the penalty break-write. +- `fusion_clock/controllers/clock_kiosk.py` — delete the `_apply_break_deduction` call. +- `fusion_clock/controllers/clock_nfc_kiosk.py` — delete the `_apply_break_deduction` call. +- `fusion_clock/models/res_config_settings.py` — remove `fclk_break_threshold_hours`. +- `fusion_clock/views/res_config_settings_views.xml` — remove threshold row; relabel default-break as scheduling-only; point to Break Rules. +- `fusion_clock/data/ir_config_parameter_data.xml` — remove the `break_threshold_hours` seed record. +- `fusion_clock/security/ir.model.access.csv` — manager access for the new model. +- `fusion_clock/views/clock_menus.xml` — "Break Rules" config menu. +- `fusion_clock/__manifest__.py` — version bump + new data/view files. +- `fusion_clock/tests/__init__.py` — import the new test module. +- `fusion_clock/tests/test_settings.py` — assert the retired field is gone. +- `fusion_clock/CLAUDE.md` — model map, settings keys, break gotcha (Task 5). + +**Behaviour-change note (intentional, approved by spec §4.3):** today a *late-in* penalty written at clock-in (e.g. +15) is silently swallowed at clock-out because `_apply_break_deduction` does `max(break, current)`. The new compute makes **all** penalty minutes strictly additive (`statutory + Σ penalties`), so a late-in penalty on a long shift is no longer lost. Net hours for such shifts will be correctly lower than before. + +--- + +## Task 1: New model `fusion.clock.break.rule` + +**Files:** +- Create: `fusion_clock/models/clock_break_rule.py` +- Create: `fusion_clock/data/clock_break_rule_data.xml` +- Create: `fusion_clock/views/clock_break_rule_views.xml` +- Create: `fusion_clock/tests/test_break_rules.py` +- Modify: `fusion_clock/models/__init__.py` +- Modify: `fusion_clock/tests/__init__.py` +- Modify: `fusion_clock/security/ir.model.access.csv` +- Modify: `fusion_clock/views/clock_menus.xml` +- Modify: `fusion_clock/__manifest__.py` + +- [ ] **Step 1: Write the failing tests** — create `fusion_clock/tests/test_break_rules.py`: + +```python +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from datetime import datetime, timedelta +from odoo.tests import tagged, TransactionCase +from odoo.exceptions import ValidationError + + +@tagged('-at_install', 'post_install', 'fusion_clock') +class TestBreakRules(TransactionCase): + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.ICP = cls.env['ir.config_parameter'].sudo() + cls.ICP.set_param('fusion_clock.auto_deduct_break', 'True') + cls.Rule = cls.env['fusion.clock.break.rule'] + cls.default_rule = cls.Rule.search([('is_default', '=', True)], limit=1) + cls.employee = cls.env['hr.employee'].create({'name': 'FCLK Break Test'}) + + def _mk_att(self, hours): + check_in = datetime(2026, 1, 5, 9, 0, 0) + return self.env['hr.attendance'].create({ + 'employee_id': self.employee.id, + 'check_in': check_in, + 'check_out': check_in + timedelta(hours=hours), + }) + + # ---- Task 1: tier engine + constraints ---- + def test_break_minutes_for_tiers(self): + rule = self.Rule.create({ + 'name': 'Tier Test', 'is_default': False, + 'break1_after_hours': 5.0, 'break1_minutes': 30.0, + 'break2_after_hours': 10.0, 'break2_minutes': 30.0, + }) + self.assertEqual(rule.break_minutes_for(4.99), 0.0) + self.assertEqual(rule.break_minutes_for(5.0), 30.0) + self.assertEqual(rule.break_minutes_for(9.99), 30.0) + self.assertEqual(rule.break_minutes_for(10.0), 60.0) + self.assertEqual(rule.break_minutes_for(12.0), 60.0) + + def test_second_tier_must_exceed_first(self): + with self.assertRaises(ValidationError): + self.Rule.create({ + 'name': 'Bad', 'is_default': False, + 'break1_after_hours': 5.0, 'break1_minutes': 30.0, + 'break2_after_hours': 5.0, 'break2_minutes': 30.0, + }) + + def test_single_default_enforced(self): + self.assertTrue(self.default_rule, "seed default rule must exist") + with self.assertRaises(ValidationError): + self.Rule.create({ + 'name': 'Another Default', 'is_default': True, 'active': True, + 'break1_after_hours': 5.0, 'break1_minutes': 30.0, + 'break2_after_hours': 10.0, 'break2_minutes': 30.0, + }) +``` + + Append the import to `fusion_clock/tests/__init__.py` (add the line if not already present): + +```python +from . import test_break_rules +``` + +- [ ] **Step 2: Create the model** — `fusion_clock/models/clock_break_rule.py`: + +```python +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError + + +class FusionClockBreakRule(models.Model): + _name = 'fusion.clock.break.rule' + _description = 'Statutory Break Rule' + _order = 'sequence, name' + + name = fields.Char(string='Name', required=True) + country_id = fields.Many2one('res.country', string='Country') + state_id = fields.Many2one( + 'res.country.state', + string='Province / State', + help="Employees whose company is in this province use this rule.", + ) + is_default = fields.Boolean( + string='Default Rule', + help="Used when an employee's company province matches no other rule. " + "Only one active rule may be the default.", + ) + break1_after_hours = fields.Float( + string='First Break After (h)', default=5.0, + help="Worked hours at or above this trigger the first unpaid break.", + ) + break1_minutes = fields.Float( + string='First Break (min)', default=30.0, + help="Length of the first unpaid break. 0 disables it.", + ) + break2_after_hours = fields.Float( + string='Second Break After (h)', default=10.0, + help="Worked hours at or above this add the second unpaid break.", + ) + break2_minutes = fields.Float( + string='Second Break (min)', default=30.0, + help="Length of the second unpaid break. 0 disables it.", + ) + sequence = fields.Integer(default=10) + active = fields.Boolean(default=True) + + def break_minutes_for(self, worked_hours): + """Total statutory unpaid break (minutes) for the given worked hours. + + Tiers are inclusive (``>=``): a break applies when worked hours are + equal to or greater than the threshold. The second tier adds on top of + the first. + """ + self.ensure_one() + worked = worked_hours or 0.0 + total = 0.0 + if self.break1_minutes and worked >= self.break1_after_hours: + total += self.break1_minutes + if self.break2_minutes and worked >= self.break2_after_hours: + total += self.break2_minutes + return total + + @api.constrains('break1_after_hours', 'break1_minutes', + 'break2_after_hours', 'break2_minutes') + def _check_tiers(self): + for rule in self: + if min(rule.break1_after_hours, rule.break1_minutes, + rule.break2_after_hours, rule.break2_minutes) < 0: + raise ValidationError(_("Break hours and minutes cannot be negative.")) + if rule.break2_minutes and rule.break2_after_hours <= rule.break1_after_hours: + raise ValidationError(_( + "The second break threshold (%(n2)s h) must be greater than " + "the first (%(n1)s h).", + n2=rule.break2_after_hours, n1=rule.break1_after_hours)) + + @api.constrains('is_default', 'active') + def _check_single_default(self): + for rule in self: + if rule.is_default and rule.active: + dupe = self.search([ + ('is_default', '=', True), ('active', '=', True), + ('id', '!=', rule.id), + ], limit=1) + if dupe: + raise ValidationError(_( + "Only one active break rule can be the default " + "(currently: %s).", dupe.name)) +``` + +- [ ] **Step 3: Register the model** — add to `fusion_clock/models/__init__.py` after the `clock_penalty` import: + +```python +from . import clock_break_rule +``` + +- [ ] **Step 4: Grant access** — append one row to `fusion_clock/security/ir.model.access.csv`: + +``` +access_fusion_clock_break_rule_manager,fusion.clock.break.rule.manager,model_fusion_clock_break_rule,group_fusion_clock_manager,1,1,1,1 +``` + +(No user/portal grant needed — the resolver reads the table via `sudo()`.) + +- [ ] **Step 5: Seed the Ontario rule** — create `fusion_clock/data/clock_break_rule_data.xml`: + +```xml + + + + Ontario + + + + 5.0 + 30.0 + 10.0 + 30.0 + + +``` + +- [ ] **Step 6: Views + action** — create `fusion_clock/views/clock_break_rule_views.xml`: + +```xml + + + + fusion.clock.break.rule.list + fusion.clock.break.rule + + + + + + + + + + + + + + + + + + fusion.clock.break.rule.form + fusion.clock.break.rule + +
+ + +
+

+
+ + + + + + + + + + +

+ Breaks are unpaid and deducted from actual worked hours. A tier with + 0 minutes is disabled. Triggers are inclusive — a break applies when + worked hours are equal to or above the threshold. +

+
+
+
+
+ + + Break Rules + fusion.clock.break.rule + list,form + {'active_test': False} + +

Create a statutory break rule

+

Define unpaid meal-break thresholds per province/country. Employees inherit + the rule matching their company's province, or the default rule.

+
+
+
+``` + +- [ ] **Step 7: Add the menu** — in `fusion_clock/views/clock_menus.xml`, insert after the `menu_fusion_clock_locations_config` menuitem (the Locations config item) and before `menu_fusion_clock_nfc_enrollment`: + +```xml + +``` + +- [ ] **Step 8: Wire the manifest** — in `fusion_clock/__manifest__.py`: + + **Do NOT bump the version yet** — it stays `19.0.4.0.3` until Task 4, so the + `19.0.4.1.0` migration actually fires in dev (Odoo only runs a version's migration + when the installed version is *lower* than the manifest version). + + Add the seed data file after `'data/ir_config_parameter_data.xml',`: +```python + 'data/clock_break_rule_data.xml', +``` + Add the view file after `'views/clock_schedule_views.xml',`: +```python + 'views/clock_break_rule_views.xml', +``` + (Data and view files reload on every `-u` regardless of the version number, so the + new model/menu install without a bump. No assets change in this plan, so the bump's + only purpose is the migration trigger — deferred to Task 4.) + +- [ ] **Step 9: Sync, upgrade, run tests** + + Sync (see preamble), then: +```bash +docker exec odoo-modsdev-app odoo -d modsdev --test-enable --test-tags /fusion_clock -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -100 +``` + Expected: module upgrades cleanly; `test_break_minutes_for_tiers`, `test_second_tier_must_exceed_first`, `test_single_default_enforced` PASS. (Other tests in the class will error until Tasks 2–3 add their dependencies — that's expected if you scoped the run; otherwise the not-yet-added methods simply don't exist yet.) + +- [ ] **Step 10: Commit** + +```bash +git -C "K:/Github/Odoo-Modules" add fusion_clock/models/clock_break_rule.py fusion_clock/models/__init__.py fusion_clock/data/clock_break_rule_data.xml fusion_clock/views/clock_break_rule_views.xml fusion_clock/views/clock_menus.xml fusion_clock/security/ir.model.access.csv fusion_clock/__manifest__.py fusion_clock/tests/test_break_rules.py fusion_clock/tests/__init__.py +git -C "K:/Github/Odoo-Modules" commit -m "feat(fusion_clock): add fusion.clock.break.rule per-province break table" -m "Co-Authored-By: Claude Opus 4.8 (1M context) " +git -C "K:/Github/Odoo-Modules" push +``` + +--- + +## Task 2: Jurisdiction resolver on `hr.employee` + +**Files:** +- Modify: `fusion_clock/models/hr_employee.py` +- Modify: `fusion_clock/tests/test_break_rules.py` + +- [ ] **Step 1: Add the resolver tests** — append these methods to `TestBreakRules` in `fusion_clock/tests/test_break_rules.py`: + +```python + # ---- Task 2: jurisdiction resolver ---- + def test_resolver_matches_company_province(self): + bc = self.env.ref('base.state_ca_bc') + bc_rule = self.Rule.create({ + 'name': 'British Columbia', 'state_id': bc.id, 'is_default': False, + 'break1_after_hours': 5.0, 'break1_minutes': 30.0, + 'break2_after_hours': 10.0, 'break2_minutes': 30.0, + }) + self.employee.company_id.state_id = bc.id + self.assertEqual(self.employee._get_fclk_break_rule(), bc_rule) + + def test_resolver_falls_back_to_default(self): + self.assertTrue(self.default_rule, "seed default rule must exist") + alberta = self.env.ref('base.state_ca_ab') # no rule for AB + self.employee.company_id.state_id = alberta.id + self.assertEqual(self.employee._get_fclk_break_rule(), self.default_rule) +``` + +- [ ] **Step 2: Run to verify they fail** + + Sync, then: +```bash +docker exec odoo-modsdev-app odoo -d modsdev --test-enable --test-tags /fusion_clock -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -60 +``` + Expected: FAIL — `AttributeError: 'hr.employee' object has no attribute '_get_fclk_break_rule'`. + +- [ ] **Step 3: Implement the resolver** — in `fusion_clock/models/hr_employee.py`, add this method immediately after the `_get_fclk_break_minutes` method (after its `return float(...)` block, before `_get_fclk_scheduled_times`): + +```python + def _get_fclk_break_rule(self): + """Return the statutory break rule for this employee. + + Resolution: company's province → matching rule; else the global default + rule; else an empty recordset (caller treats as zero break). Read via + sudo so the portal net-hours compute can resolve it without a direct ACL. + """ + self.ensure_one() + Rule = self.env['fusion.clock.break.rule'].sudo() + rule = Rule.browse() + state = self.company_id.state_id + if state: + rule = Rule.search([('state_id', '=', state.id)], limit=1) + if not rule: + rule = Rule.search([('is_default', '=', True)], limit=1) + return rule +``` + +- [ ] **Step 4: Run to verify they pass** + + Sync, then re-run the Step 2 command. Expected: `test_resolver_matches_company_province` and `test_resolver_falls_back_to_default` PASS. + +- [ ] **Step 5: Commit** + +```bash +git -C "K:/Github/Odoo-Modules" add fusion_clock/models/hr_employee.py fusion_clock/tests/test_break_rules.py +git -C "K:/Github/Odoo-Modules" commit -m "feat(fusion_clock): resolve employee break rule from company province" -m "Co-Authored-By: Claude Opus 4.8 (1M context) " +git -C "K:/Github/Odoo-Modules" push +``` + +--- + +## Task 3: `x_fclk_break_minutes` → stored compute; remove all manual writes + +This task is atomic: once the field is computed (no inverse), any remaining `write({'x_fclk_break_minutes': ...})` raises at runtime, so the field conversion and the removal of all four write sites must land together. + +**Files:** +- Modify: `fusion_clock/models/hr_attendance.py` +- Modify: `fusion_clock/controllers/clock_api.py` +- Modify: `fusion_clock/controllers/clock_kiosk.py` +- Modify: `fusion_clock/controllers/clock_nfc_kiosk.py` +- Modify: `fusion_clock/tests/test_break_rules.py` + +- [ ] **Step 1: Add the attendance tests** — append these methods to `TestBreakRules` in `fusion_clock/tests/test_break_rules.py`: + +```python + # ---- Task 3: automatic deduction on every path ---- + def test_manual_attendance_applies_statutory_break(self): + att = self._mk_att(6) # 6h >= 5 -> first break + self.assertEqual(att.x_fclk_break_minutes, 30.0) + self.assertAlmostEqual(att.x_fclk_net_hours, 5.5, places=2) + + def test_manual_edit_extends_break(self): + att = self._mk_att(6) + self.assertEqual(att.x_fclk_break_minutes, 30.0) + att.check_out = att.check_in + timedelta(hours=10) # now >= 10 + self.assertEqual(att.x_fclk_break_minutes, 60.0) + self.assertAlmostEqual(att.x_fclk_net_hours, 9.0, places=2) + + def test_under_first_threshold_no_break(self): + att = self._mk_att(4) # 4h < 5 -> nothing + self.assertEqual(att.x_fclk_break_minutes, 0.0) + self.assertAlmostEqual(att.x_fclk_net_hours, 4.0, places=2) + + def test_penalty_minutes_are_additive(self): + att = self._mk_att(6) # statutory 30 + self.env['fusion.clock.penalty'].create({ + 'attendance_id': att.id, + 'employee_id': self.employee.id, + 'penalty_type': 'early_out', + 'penalty_minutes': 15.0, + 'date': att.check_in.date(), + }) + self.assertEqual(att.x_fclk_break_minutes, 45.0) + + def test_master_toggle_off_zero_statutory(self): + self.ICP.set_param('fusion_clock.auto_deduct_break', 'False') + att = self._mk_att(6) + self.assertEqual(att.x_fclk_break_minutes, 0.0) + + def test_open_attendance_zero_break(self): + att = self.env['hr.attendance'].create({ + 'employee_id': self.employee.id, + 'check_in': datetime(2026, 1, 5, 9, 0, 0), + }) + self.assertEqual(att.x_fclk_break_minutes, 0.0) +``` + +- [ ] **Step 2: Run to verify they fail** + + Sync, then run the module tests. Expected: the new tests FAIL — e.g. `test_manual_attendance_applies_statutory_break` asserts 30 but gets 0 (no write override exists yet). + +- [ ] **Step 3: Convert the field to a stored compute** — in `fusion_clock/models/hr_attendance.py`, replace the field definition: + + OLD: +```python + x_fclk_break_minutes = fields.Float( + string='Break (min)', + default=0.0, + tracking=True, + help="Break duration in minutes to deduct from worked hours.", + ) +``` + NEW: +```python + x_fclk_break_minutes = fields.Float( + string='Break (min)', + compute='_compute_fclk_break_minutes', + store=True, + tracking=True, + help="Unpaid break deducted from worked hours: statutory break (per the " + "employee's province rule, from actual hours worked) plus any penalty " + "minutes. Computed automatically on every save.", + ) +``` + +- [ ] **Step 4: Add the compute method** — in the same file, insert this method immediately before the `_compute_net_hours` method (just above its `@api.depends('worked_hours', 'x_fclk_break_minutes')` decorator): + +```python + @api.depends('worked_hours', 'check_out', + 'x_fclk_penalty_ids.penalty_minutes', 'employee_id') + def _compute_fclk_break_minutes(self): + ICP = self.env['ir.config_parameter'].sudo() + auto = ICP.get_param('fusion_clock.auto_deduct_break', 'True') == 'True' + for att in self: + statutory = 0.0 + if auto and att.check_out and att.employee_id: + rule = att.employee_id._get_fclk_break_rule() + if rule: + statutory = rule.break_minutes_for(att.worked_hours or 0.0) + penalties = sum(att.x_fclk_penalty_ids.mapped('penalty_minutes')) + att.x_fclk_break_minutes = statutory + penalties +``` + +- [ ] **Step 5: Remove the cron's break write** — in the same file, inside `_cron_fusion_auto_clock_out`: + + Remove the now-unused threshold read (the line near the top of the method): +```python + threshold = float(ICP.get_param('fusion_clock.break_threshold_hours', '4.0')) +``` + Remove the two now-unused locals in the per-attendance loop: +```python + emp_tz = pytz.timezone(employee.tz or self.env.company.tz or 'UTC') + check_in_date = pytz.UTC.localize(check_in).astimezone(emp_tz).date() +``` + Remove the break-write block (the compute now applies the break when `check_out` is set): +```python + if (att.worked_hours or 0) >= threshold: + att.sudo().write( + {'x_fclk_break_minutes': employee._get_fclk_break_minutes(check_in_date)} + ) +``` + (Leave the surrounding `employee = att.employee_id` and `clock_out_time = effective_deadline` lines intact.) + +- [ ] **Step 6: Delete the controller helper and its call sites** — in `fusion_clock/controllers/clock_api.py`: + + Delete the entire `_apply_break_deduction` method: +```python + def _apply_break_deduction(self, attendance, employee): + """Apply automatic break deduction if configured.""" + ICP = request.env['ir.config_parameter'].sudo() + if ICP.get_param('fusion_clock.auto_deduct_break', 'True') != 'True': + return + + threshold = float(ICP.get_param('fusion_clock.break_threshold_hours', '4.0')) + worked = attendance.worked_hours or 0.0 + + if worked >= threshold: + local_date = get_local_today(request.env, employee) + if attendance.check_in: + tz_name = ( + employee.resource_id.tz + or (employee.user_id.partner_id.tz if employee.user_id else False) + or employee.company_id.partner_id.tz + or 'UTC' + ) + local_date = pytz.UTC.localize(attendance.check_in).astimezone(pytz.timezone(tz_name)).date() + break_min = employee._get_fclk_break_minutes(local_date) + current = attendance.x_fclk_break_minutes or 0.0 + # Set to whichever is higher: configured break or existing (penalty-inflated) value + new_val = max(break_min, current) + if new_val != current: + attendance.sudo().write({'x_fclk_break_minutes': new_val}) + +``` + Delete its clock-out call (in the CLOCK OUT branch): +```python + # Apply break deduction + self._apply_break_deduction(attendance, employee) + +``` + Delete the penalty break-write in `_check_and_create_penalty` (keep the penalty-record `create` above it and the activity log below it): +```python + # Deduct penalty minutes from attendance (adds to break deduction) + current_break = attendance.x_fclk_break_minutes or 0.0 + attendance.sudo().write({ + 'x_fclk_break_minutes': current_break + deduction, + }) + +``` + +- [ ] **Step 7: Delete the kiosk call sites** + + In `fusion_clock/controllers/clock_kiosk.py`, delete the line: +```python + api._apply_break_deduction(attendance, employee) +``` + In `fusion_clock/controllers/clock_nfc_kiosk.py`, delete the line: +```python + api._apply_break_deduction(attendance, employee) +``` + +- [ ] **Step 8: Pyflakes the touched controllers/models** (catches a missed `pytz`/var reference instantly) + +```bash +docker exec odoo-modsdev-app python3 -m pyflakes /mnt/extra-addons/fusion_clock/controllers/clock_api.py /mnt/extra-addons/fusion_clock/controllers/clock_kiosk.py /mnt/extra-addons/fusion_clock/controllers/clock_nfc_kiosk.py /mnt/extra-addons/fusion_clock/models/hr_attendance.py +``` + Expected: no output (clean). If it flags `pytz` as unused in `hr_attendance.py`, that's fine only if no other code uses it — verify before removing the import (the absence/overtime crons still use `pytz`, so leave the import). + +- [ ] **Step 9: Run to verify all Task 3 tests pass** + + Sync, then run the module tests. Expected: all `test_manual_*`, `test_under_first_threshold_no_break`, `test_penalty_minutes_are_additive`, `test_master_toggle_off_zero_statutory`, `test_open_attendance_zero_break` PASS, and the existing NFC/kiosk/dashboard tests still PASS. + +- [ ] **Step 10: Commit** + +```bash +git -C "K:/Github/Odoo-Modules" add fusion_clock/models/hr_attendance.py fusion_clock/controllers/clock_api.py fusion_clock/controllers/clock_kiosk.py fusion_clock/controllers/clock_nfc_kiosk.py fusion_clock/tests/test_break_rules.py +git -C "K:/Github/Odoo-Modules" commit -m "feat(fusion_clock): auto-apply statutory break via one stored compute" -m "x_fclk_break_minutes is now statutory(worked_hours) + penalties, recomputed on every path including manual backend entry. Removes the four duplicated write sites (controller _apply_break_deduction + 3 call sites, auto-clock-out cron, penalty write)." -m "Co-Authored-By: Claude Opus 4.8 (1M context) " +git -C "K:/Github/Odoo-Modules" push +``` + +--- + +## Task 4: Retire `break_threshold_hours`; clean settings & migrate + +**Files:** +- Modify: `fusion_clock/models/res_config_settings.py` +- Modify: `fusion_clock/views/res_config_settings_views.xml` +- Modify: `fusion_clock/data/ir_config_parameter_data.xml` +- Create: `fusion_clock/migrations/19.0.4.1.0/post-migrate.py` +- Modify: `fusion_clock/tests/test_settings.py` + +- [ ] **Step 1: Add the dead-setting assertion** — in `fusion_clock/tests/test_settings.py`, add one line to `test_dead_settings_removed`: + +```python + self.assertNotIn('fclk_break_threshold_hours', fields) +``` + +- [ ] **Step 2: Remove the settings field** — in `fusion_clock/models/res_config_settings.py`, delete: + +```python + fclk_break_threshold_hours = fields.Float( + string='Break Threshold (hours)', + config_parameter='fusion_clock.break_threshold_hours', + default=4.0, + help="Only deduct break if shift is longer than this many hours.", + ) +``` + +- [ ] **Step 3: Fix the settings view** — in `fusion_clock/views/res_config_settings_views.xml`, replace the whole `fclk_auto_break` setting block: + + OLD: +```xml + + +
+
+
+
+
+
+
+``` + NEW: +```xml + + +
+
+
+
+ Used as the default break when building shifts/schedules + (planned hours). Actual deductions follow the province Break Rules. +
+
+
+``` + +- [ ] **Step 4: Remove the seed param** — in `fusion_clock/data/ir_config_parameter_data.xml`, delete: + +```xml + + fusion_clock.break_threshold_hours + 4.0 + +``` + +- [ ] **Step 5: Bump the version + create the migration** + + First bump the manifest so the migration fires (installed `19.0.4.0.3` < manifest + `19.0.4.1.0`). In `fusion_clock/__manifest__.py`: +```python + 'version': '19.0.4.1.0', +``` + Then create `fusion_clock/migrations/19.0.4.1.0/post-migrate.py`: + +```python +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from odoo import api, SUPERUSER_ID + + +def migrate(cr, version): + """Retire the single-threshold break param (superseded by per-rule + break1_after_hours), and force-recompute the now-computed break field so + existing closed attendances reflect the province rule + their penalties.""" + cr.execute( + "DELETE FROM ir_config_parameter WHERE key = %s", + ('fusion_clock.break_threshold_hours',), + ) + env = api.Environment(cr, SUPERUSER_ID, {}) + Attendance = env['hr.attendance'] + field = Attendance._fields['x_fclk_break_minutes'] + closed = Attendance.search([('check_out', '!=', False)]) + if closed: + env.add_to_compute(field, closed) + closed.flush_recordset(['x_fclk_break_minutes']) +``` + +- [ ] **Step 6: Sync, upgrade, run tests** + + Sync, then run the module tests. Expected: module upgrades cleanly and the `19.0.4.1.0` migration executes (installed `19.0.4.0.3` < manifest `19.0.4.1.0`; modsdev shows the INFO line, nexa/entech run `log_level=warn`), `test_dead_settings_removed` PASS, full `fusion_clock` suite green. + +- [ ] **Step 7: Verify the param is gone and historical rows recomputed** (sanity) + +```bash +docker exec odoo-modsdev-app odoo shell -d modsdev --no-http 2>/dev/null <<'PY' +ICP = env['ir.config_parameter'].sudo() +print('threshold param:', ICP.get_param('fusion_clock.break_threshold_hours', 'ABSENT')) +print('default rule:', env['fusion.clock.break.rule'].search([('is_default','=',True)]).mapped('name')) +PY +``` + Expected: `threshold param: ABSENT`; `default rule: ['Ontario']`. + +- [ ] **Step 8: Commit** + +```bash +git -C "K:/Github/Odoo-Modules" add fusion_clock/models/res_config_settings.py fusion_clock/views/res_config_settings_views.xml fusion_clock/data/ir_config_parameter_data.xml fusion_clock/migrations/19.0.4.1.0/post-migrate.py fusion_clock/tests/test_settings.py fusion_clock/__manifest__.py +git -C "K:/Github/Odoo-Modules" commit -m "refactor(fusion_clock): retire break_threshold_hours; breaks now driven by Break Rules" -m "Co-Authored-By: Claude Opus 4.8 (1M context) " +git -C "K:/Github/Odoo-Modules" push +``` + +--- + +## Task 5: Full verification, docs, manual smoke + +**Files:** +- Modify: `fusion_clock/CLAUDE.md` + +- [ ] **Step 1: Full test run (whole module)** + + Sync, then: +```bash +docker exec odoo-modsdev-app odoo -d modsdev --test-enable --test-tags /fusion_clock -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -120 +``` + Expected: all `fusion_clock` tests PASS, zero tracebacks. If anything fails, fix before continuing. + +- [ ] **Step 2: Manual smoke (manager UI)** at http://localhost:8082 + + - Configuration → **Break Rules** exists; the **Ontario** row shows 5h→30 / 10h→30, Default ticked. + - Attendances → create a manual attendance, check-in 09:00 check-out 15:00 (6h) → **Break = 30**, Net = 5.5h, with no clock action. + - Edit that record's check-out to 19:00 (10h) → **Break = 60**, Net = 9.0h. + - Create a 4h attendance → **Break = 0**. + - Settings → the old "Min. Shift" threshold field is gone; the Auto-Deduct Break help points to Break Rules. + +- [ ] **Step 3: Update the module CLAUDE.md** — in `fusion_clock/CLAUDE.md`: + + - §4 Model Map: add a row — `fusion.clock.break.rule | models/clock_break_rule.py | Per-province statutory unpaid-break thresholds (2-tier).` + - §5 Clocking Flow: note that the break deduction is no longer a controller step — `x_fclk_break_minutes` is a stored compute (`statutory(worked_hours) + Σ penalties`) that fires on every path including manual backend entry; resolved rule via `hr.employee._get_fclk_break_rule()` (company province → default). + - §11 Settings Keys: remove `fusion_clock.break_threshold_hours`. + - §13 Gotchas: add — "Unpaid break is computed, not written: never `write({'x_fclk_break_minutes': ...})`; change the province rule (`fusion.clock.break.rule`) or `auto_deduct_break` instead. Penalty minutes are now strictly additive (the old `max()` that swallowed late-in penalties is gone)." + - Bump the version line in §1 to `19.0.4.1.0`. + +- [ ] **Step 4: Commit the docs** + +```bash +git -C "K:/Github/Odoo-Modules" add fusion_clock/CLAUDE.md +git -C "K:/Github/Odoo-Modules" commit -m "docs(fusion_clock): document province break rules + computed break field" -m "Co-Authored-By: Claude Opus 4.8 (1M context) " +git -C "K:/Github/Odoo-Modules" push +``` + +- [ ] **Step 5: Report** — summarize what changed, the behaviour-change note (penalties now additive), and that live deployment to entech (`odoo-entech`) is a separate step pending user sign-off. + +--- + +## Self-Review (performed against the spec) + +**1. Spec coverage** +- §4.1 model → Task 1. §4.2 resolver → Task 2. §4.3 stored compute → Task 3. §4.4 removals → Task 3 (writes) + Task 4 (setting/param/view). §4.5 UI/security/data → Task 1 (+ settings view in Task 4). §5 edge cases → tests in Tasks 1 & 3. §6 migration → Task 4. §7 tests → all six+ cases present across Tasks 1–3. §8 rollout → preamble + Task 5. ✓ No gaps. + +**2. Placeholder scan** — every step has full code/commands; no TBD/TODO/"similar to". ✓ + +**3. Type/name consistency** — `break_minutes_for`, `_get_fclk_break_rule`, `_compute_fclk_break_minutes`, fields `break1_after_hours/break1_minutes/break2_after_hours/break2_minutes/is_default`, model `fusion.clock.break.rule`, access id `model_fusion_clock_break_rule`, action `action_fusion_clock_break_rule`, menu `menu_fusion_clock_break_rules` — all used identically across tasks. The compute folds `Σ penalty_minutes` (field `penalty_minutes` on `fusion.clock.penalty`, confirmed). ✓ diff --git a/docs/superpowers/plans/2026-06-02-accessibility-funding-selector.md b/docs/superpowers/plans/2026-06-02-accessibility-funding-selector.md new file mode 100644 index 00000000..b1e5c818 --- /dev/null +++ b/docs/superpowers/plans/2026-06-02-accessibility-funding-selector.md @@ -0,0 +1,43 @@ +# Accessibility Funding-Source Selector — Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: superpowers:executing-plans (inline) — this is a 3-file change. Steps use `- [ ]` checkboxes. + +**Goal:** Let the rep mark an accessibility assessment's funding source (Private / March of Dimes / ODSP / WSIB / Hardship / Insurance / Other) on the web form, so the generated sale order routes to the correct funding pipeline instead of always defaulting to private pay. + +**Architecture:** The model (`fusion.accessibility.assessment.x_fc_funding_source`) and the SO routing (`_create_draft_sale_order` → `sale_type_map` → `x_fc_sale_type`) already exist (the "2026-04 portal audit fix"). The only gaps: (1) the form has no funding field, (2) the save controller never reads `funding_source` from the POST, (3) `hardship` is missing from the selectable funding sources. The submit JS already serialises every named form field via `FormData`, so no JS change is needed. + +**Tech Stack:** Odoo 19, QWeb portal template, JSON-RPC controller. Module `fusion_portal` (worktree `K:\Github\Odoo-Modules-wt-portal`, branch `feat/assessment-visit`). + +**Verification constraint:** `fusion_portal` depends on Enterprise `knowledge`, so it can NOT be installed on the local Community Docker. Syntax-check with host Python; functional verification is on westin (or a clone): pick "March of Dimes" on a form → the draft SO gets `x_fc_sale_type='march_of_dimes'` and lands in the MOD pipeline. + +--- + +### Task 1: Add Hardship to the funding source + route it + +**Files:** Modify `fusion_portal/models/accessibility_assessment.py` (selection ~:71-87, `sale_type_map` ~:771-779) + +- [ ] **Step 1:** Add `('hardship', 'Hardship Funding')` to the `x_fc_funding_source` selection list (after `'wsib'`). +- [ ] **Step 2:** Add `'hardship': 'hardship',` to `sale_type_map` in `_create_draft_sale_order` (the target `x_fc_sale_type='hardship'` already exists in `fusion_claims` `sale_order.py:332`). +- [ ] **Step 3:** `python -m py_compile fusion_portal/models/accessibility_assessment.py` → no error. +- [ ] **Step 4:** Commit. + +### Task 2: Add the funding select to the shared client-info form + +**Files:** Modify `fusion_portal/views/portal_accessibility_templates.xml` (`accessibility_client_info_section`, ~:366-375) + +- [ ] **Step 1:** Add a new row with a `` booking page with a real slot-picker controller; on confirm create a `fusion.technician.task` (`task_type='maintenance'`) + the maintenance `repair.order`; double-book guard; office "Book maintenance" action; per-cycle `booking_token` regen in `roll_next_due_date`. Delivers: real self-serve booking. +- **Plan 3 — Maintenance visit log + checklist**: read the visit-report wizard + the inspection-certificate (M1) API; add `fusion.repair.maintenance.visit` + `fusion.repair.maintenance.checklist.line`; seed checklists per category; issue an inspection certificate for `safety_critical` categories. Delivers: queryable per-unit history + compliance proof. +- **Plan 4 — Backfill wizard** (two-regime, spec §6.2): `fusion.repair.maintenance.backfill.wizard`; serial dedup for ADP wheelchairs (guarded `fusion_claims` read), partner+base-product+sale-line dedup for lifts with accessory-line exclusion; stagger; dry-run report → execute. Delivers: the existing install base enrolled. +- **Plan 5 — Office follow-up crons**: `unbooked` + `overdue` crons gated on the existing `ir.config_parameter` toggles; per-row savepoint isolation. Delivers: staff nudges when clients don't self-serve. diff --git a/docs/superpowers/plans/2026-06-02-nexacloud-cutover-01-odoo-cancel-endpoint.md b/docs/superpowers/plans/2026-06-02-nexacloud-cutover-01-odoo-cancel-endpoint.md new file mode 100644 index 00000000..39c1c7c0 --- /dev/null +++ b/docs/superpowers/plans/2026-06-02-nexacloud-cutover-01-odoo-cancel-endpoint.md @@ -0,0 +1,298 @@ +# NexaCloud→Odoo Cutover — Plan 01: Odoo subscription-cancel endpoint + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Add the one inbound endpoint NexaCloud's deprovision path needs — cancel (close) a subscription — to `fusion_centralize_billing`, with the same auth model the other endpoints already use. + +**Architecture:** New `fusion.billing.service._api_cancel_subscription(external_ref)` resolves the subscription via the existing `_fc_resolve_subscription`, enforces the same "partner must be linked to this service" authorization as `_api_record_usage`, and closes it with Odoo 19's native `set_close()` (→ `subscription_state='6_churn'`). A `DELETE /api/billing/v1/subscriptions/` route wraps it. + +**Tech Stack:** Odoo 19 Enterprise (`sale_subscription`), Python, Odoo `TransactionCase` tests. + +**Spec:** [`2026-06-02-nexacloud-odoo-billing-cutover-design.md`](../specs/2026-06-02-nexacloud-odoo-billing-cutover-design.md) §4.1.3 + +--- + +## ⚠ Test harness (supersedes any `-d nexamain` command below) + +**NEVER run `-u` / `--test-enable` against the live `nexamain` DB.** Tests run in an **isolated throwaway container** against a dedicated DB, reading a **separate** addons copy so the live module is never touched: + +``` +# 1) edit files on branch feat/nexacloud-odoo-billing-cutover, then sync the changed +# module files to the staging addons copy on odoo-nexa: +# /opt/odoo/custom-addons-staging/fusion_centralize_billing/... +# 2) run (ssh odoo-nexa): +docker run --rm --network odoo_odoo-network \ + -v /opt/odoo/custom-addons-staging:/mnt/extra-addons:ro \ + -v /opt/odoo/enterprise-addons:/mnt/enterprise-addons:ro \ + -v /opt/odoo/odoo.conf:/etc/odoo/odoo.conf:ro \ + -v /opt/odoo/staging-data:/var/lib/odoo \ + odoo-nexa:19 -c /etc/odoo/odoo.conf -d fcb_test \ + --db_host=db --db_user=odoo \ + --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons,/mnt/enterprise-addons \ + --test-enable --test-tags /fusion_centralize_billing:TestSubscriptionCancel \ + -u fusion_centralize_billing --stop-after-init --no-http +``` +- `fcb_test` is a **fresh** install DB (not a prod clone). `nexamain_staging` is a prod clone kept for later integration/importer plans. +- **Scope each step's run to the relevant test class** (`:TestSubscriptionCancel`, `:TestSubscriptionCancelHttp`). The wider suite is **not hermetic yet** (see Plan 00) — `test_invoice_ledger` needs a configured Canadian CoA/active CAD/HST; `test_usage`/`test_webhook` collide with cloned prod data. Don't gate this plan on those. +- The per-step `Run:` blocks below that mention `-d nexamain` are **illustrative only — use this harness instead.** + +> **Prerequisite — Plan 00 (make the suite hermetic):** before green-baseline TDD, fix fixtures so the whole suite passes on `fcb_test`: `setUp` should get-or-create the `nexacloud`/`cpu_seconds` records (idempotent), and a test-setup helper must ensure an active CAD currency + a Canadian CoA + a 13% HST sale tax. Tracked as its own plan; recommended before Plan 01 execution. + +--- + +## Increment plan sequence (this is Plan 01 of 6) + +Each is its own plan doc + its own working, testable deliverable. Order reflects dependencies: + +1. **Odoo: subscription-cancel endpoint** ← *this doc* (unblocked; no external decisions). +2. **Odoo: NexaCloud charge catalog** — products + `sale.subscription.plan` (`NC-PLAN-*`) + `fusion.billing.charge` (cpu_seconds quota/overage). **Blocked on confirming real NexaCloud plan pricing/quotas** (open review Q#1) before it can be written placeholder-free. +3. **Odoo: importer go-forward subscriptions** — extend `wizards/import_wizard.py` to create one shadow `sale.order` per active deployment with go-forward `next_invoice_date`; the safety test that asserts **no past-period invoice** is the centrepiece (guards against the 2026-05-27 Lago re-bill). +4. **NexaCloud: adapter activation** — config (`odoo_billing_base_url`/`api_key`/staged enable), customer + subscription create/cancel calls, reconciliation-amount push. +5. **NexaCloud: control-loop receiver** — activate `/billing/webhooks/central` HMAC verify → suspend/restore/deprovision via `network_isolation`/`throttle_checker`/`resource_manager`. +6. **Dual-run + gated flip** — operational runbook: shadow ≥1 cycle, reconcile to cent, then the reversible flip flag. + +--- + +## File structure (this plan) + +- Modify: `fusion_centralize_billing/models/service.py` — add `_api_cancel_subscription`. +- Modify: `fusion_centralize_billing/controllers/api.py` — add `DELETE /subscriptions/`. +- Create: `fusion_centralize_billing/tests/test_subscription_cancel.py` — service-method + authorization tests. +- Modify: `fusion_centralize_billing/tests/__init__.py` — import the new test module. + +Run tests (from `K:\Github\CLAUDE.md` workflow, adapted to odoo-nexa): +``` +ssh odoo-nexa "docker exec odoo-nexa-app odoo -d nexamain --test-enable --test-tags /fusion_centralize_billing -u fusion_centralize_billing --stop-after-init" +``` + +--- + +### Task 1: `_api_cancel_subscription` service method + +**Files:** +- Modify: `fusion_centralize_billing/models/service.py` (add method after `_api_create_subscription`, ~line 250) +- Create: `fusion_centralize_billing/tests/test_subscription_cancel.py` +- Modify: `fusion_centralize_billing/tests/__init__.py` + +- [ ] **Step 0: Verify the Odoo 19 close method (do NOT code from memory — per `K:\Github\CLAUDE.md`)** + +Run: +``` +ssh odoo-nexa "docker exec odoo-nexa-app grep -nE 'def set_close|def set_open|6_churn' /mnt/enterprise-addons/sale_subscription/models/sale_order.py | head" +``` +Expected: a `def set_close(self...)` exists and sets `subscription_state='6_churn'`. If the method name differs in this build, use the actual name in Step 3 and the assertion in Step 1. + +- [ ] **Step 1: Write the failing test** + +Create `fusion_centralize_billing/tests/test_subscription_cancel.py`: +```python +# -*- coding: utf-8 -*- +from odoo.tests.common import TransactionCase, tagged + + +@tagged('post_install', '-at_install') +class TestSubscriptionCancel(TransactionCase): + + def setUp(self): + super().setUp() + self.plan = self.env['sale.subscription.plan'].sudo().create( + {'name': 'Monthly', 'billing_period_value': 1, 'billing_period_unit': 'month'}) + self.product = self.env['product.product'].sudo().create( + {'name': 'NexaCloud Plan', 'type': 'service', + 'recurring_invoice': True, 'list_price': 49.0}) + self.svc_a = self.env['fusion.billing.service'].sudo().create( + {'name': 'NexaCloud', 'code': 'nexacloud'}) + self.svc_b = self.env['fusion.billing.service'].sudo().create( + {'name': 'Other', 'code': 'other'}) + self.svc_a._api_upsert_customer({'external_id': 'user-1', 'name': 'Acme'}) + res = self.svc_a._api_create_subscription({ + 'external_customer_id': 'user-1', 'plan_id': self.plan.id, + 'lines': [{'product_id': self.product.id, 'quantity': 1}]}) + self.sub = self.env['sale.order'].browse(res['subscription_id']) + + def test_cancel_closes_subscription(self): + self.assertEqual(self.sub.subscription_state, '3_progress') + res = self.svc_a._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'ok') + self.assertEqual(self.sub.subscription_state, '6_churn') + + def test_cancel_is_idempotent(self): + self.svc_a._api_cancel_subscription(str(self.sub.id)) + res = self.svc_a._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'ok') + self.assertEqual(self.sub.subscription_state, '6_churn') + + def test_cancel_unknown_subscription_rejected(self): + res = self.svc_a._api_cancel_subscription('999999999') + self.assertEqual(res['status'], 'error') + self.assertEqual(res['error'], 'unknown subscription') + + def test_cancel_cross_service_rejected(self): + # svc_b is not linked to the customer that owns self.sub + res = self.svc_b._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'error') + self.assertEqual(res['error'], 'unknown subscription') + self.assertEqual(self.sub.subscription_state, '3_progress') + + def test_cancel_missing_id_rejected(self): + res = self.svc_a._api_cancel_subscription('') + self.assertEqual(res['status'], 'error') +``` + +Append to `fusion_centralize_billing/tests/__init__.py`: +```python +from . import test_subscription_cancel +``` + +- [ ] **Step 2: Run the test to verify it fails** + +Run: +``` +ssh odoo-nexa "docker exec odoo-nexa-app odoo -d nexamain --test-enable --test-tags /fusion_centralize_billing:TestSubscriptionCancel -u fusion_centralize_billing --stop-after-init" +``` +Expected: FAIL — `AttributeError: 'fusion.billing.service' object has no attribute '_api_cancel_subscription'`. + +- [ ] **Step 3: Implement the method** + +In `fusion_centralize_billing/models/service.py`, add immediately after `_api_create_subscription`: +```python + def _api_cancel_subscription(self, external_ref): + """Cancel (close) the subscription identified by ``external_ref``. + + Authorization mirrors ``_api_record_usage``: the resolved sale.order must + exist, be a subscription, and belong to a customer THIS service is linked + to. Idempotent — closing an already-churned subscription returns ok. + Validation (C3): an empty ref returns a 4xx-shaped error, never raises. + """ + self.ensure_one() + if external_ref in (None, ''): + return {'status': 'error', 'error': 'subscription id required'} + sub = self._fc_resolve_subscription(external_ref) + linked_partners = self.account_link_ids.mapped('partner_id') + if not sub.exists() or not sub.is_subscription \ + or sub.partner_id not in linked_partners: + return {'status': 'error', 'error': 'unknown subscription'} + if sub.subscription_state != '6_churn': + sub.set_close() + return {'status': 'ok', 'subscription_id': sub.id, + 'subscription_state': sub.subscription_state} +``` + +- [ ] **Step 4: Run the test to verify it passes** + +Run: +``` +ssh odoo-nexa "docker exec odoo-nexa-app odoo -d nexamain --test-enable --test-tags /fusion_centralize_billing:TestSubscriptionCancel -u fusion_centralize_billing --stop-after-init" +``` +Expected: PASS — 5 tests, 0 failures. (If `set_close()` was a different name in Step 0, use that name here and re-run.) + +- [ ] **Step 5: Commit** + +```bash +git add fusion_centralize_billing/models/service.py fusion_centralize_billing/tests/test_subscription_cancel.py fusion_centralize_billing/tests/__init__.py +git commit -m "feat(billing): add _api_cancel_subscription (close sub, service-scoped authz)" +``` + +--- + +### Task 2: `DELETE /subscriptions/` route + +**Files:** +- Modify: `fusion_centralize_billing/controllers/api.py` (add route after `post_subscription`, ~line 95) +- Modify: `fusion_centralize_billing/tests/test_subscription_cancel.py` (add an HTTP-layer test) + +- [ ] **Step 1: Write the failing test (HTTP layer)** + +Append to `tests/test_subscription_cancel.py` a class that exercises the route through Odoo's test client. Add the import at the top of the file: +```python +from odoo.tests import HttpCase +``` +Then append: +```python +@tagged('post_install', '-at_install') +class TestSubscriptionCancelHttp(HttpCase): + + def setUp(self): + super().setUp() + self.plan = self.env['sale.subscription.plan'].sudo().create( + {'name': 'Monthly', 'billing_period_value': 1, 'billing_period_unit': 'month'}) + self.product = self.env['product.product'].sudo().create( + {'name': 'NexaCloud Plan', 'type': 'service', + 'recurring_invoice': True, 'list_price': 49.0}) + self.svc = self.env['fusion.billing.service'].sudo().create( + {'name': 'NexaCloud', 'code': 'nexacloud'}) + self.raw_key = self.svc.action_generate_api_key() + self.svc._api_upsert_customer({'external_id': 'user-1', 'name': 'Acme'}) + res = self.svc._api_create_subscription({ + 'external_customer_id': 'user-1', 'plan_id': self.plan.id, + 'lines': [{'product_id': self.product.id, 'quantity': 1}]}) + self.sub_id = res['subscription_id'] + self.env.cr.commit() + self.addCleanup(self._cleanup) + + def _cleanup(self): + self.env['sale.order'].browse(self.sub_id).sudo().unlink() + + def test_delete_requires_auth(self): + resp = self.url_open( + "/api/billing/v1/subscriptions/%s" % self.sub_id, + method='DELETE') + self.assertEqual(resp.status_code, 401) + + def test_delete_cancels_with_valid_key(self): + resp = self.url_open( + "/api/billing/v1/subscriptions/%s" % self.sub_id, + method='DELETE', + headers={'Authorization': 'Bearer %s' % self.raw_key}) + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.json()['subscription_state'], '6_churn') +``` + +- [ ] **Step 2: Run the test to verify it fails** + +Run: +``` +ssh odoo-nexa "docker exec odoo-nexa-app odoo -d nexamain --test-enable --test-tags /fusion_centralize_billing:TestSubscriptionCancelHttp -u fusion_centralize_billing --stop-after-init" +``` +Expected: FAIL — the DELETE route returns 404 (route not registered) so the assertions fail. + +- [ ] **Step 3: Implement the route** + +In `fusion_centralize_billing/controllers/api.py`, add after `post_subscription`: +```python + @http.route(f"{API_BASE}/subscriptions/", type="http", auth="none", + methods=["DELETE"], csrf=False) + def delete_subscription(self, sub_ref, **kw): + service = self._authenticate() + if not service: + return self._json({"error": "unauthorized"}, status=401) + result = service._api_cancel_subscription(sub_ref) + if result.get("status") == "error": + status = 404 if result.get("error") == "unknown subscription" else 400 + return self._json(result, status=status) + return self._json(result) +``` + +- [ ] **Step 4: Run the test to verify it passes** + +Run: +``` +ssh odoo-nexa "docker exec odoo-nexa-app odoo -d nexamain --test-enable --test-tags /fusion_centralize_billing:TestSubscriptionCancelHttp -u fusion_centralize_billing --stop-after-init" +``` +Expected: PASS — 2 tests, 0 failures. + +- [ ] **Step 5: Commit** + +```bash +git add fusion_centralize_billing/controllers/api.py fusion_centralize_billing/tests/test_subscription_cancel.py +git commit -m "feat(billing): DELETE /api/billing/v1/subscriptions/ cancel route" +``` + +--- + +## Self-review + +- **Spec coverage:** §4.1.3 "add subscription cancel (`DELETE /subscriptions/:id`)" → Tasks 1+2. ✔ +- **Placeholder scan:** none — all code is concrete; Step 0 verifies the one Odoo-internal name (`set_close`) against the live container instead of assuming. +- **Type consistency:** `_api_cancel_subscription` returns the same `{'status','subscription_id','subscription_state'}` shape as `_api_create_subscription`; error shape matches `_api_record_usage` (`{'status':'error','error':...}`); resolver reused (`_fc_resolve_subscription`) so cross-service rejection is identical to `/usage`. ✔ +- **Authorization parity:** cancel uses the exact `not sub.exists() or not sub.is_subscription or sub.partner_id not in linked_partners` guard as `_api_record_usage`. ✔ diff --git a/docs/superpowers/specs/2026-05-20-fusion-repairs-design.md b/docs/superpowers/specs/2026-05-20-fusion-repairs-design.md index e7cfb6e6..861b4ac1 100644 --- a/docs/superpowers/specs/2026-05-20-fusion-repairs-design.md +++ b/docs/superpowers/specs/2026-05-20-fusion-repairs-design.md @@ -109,7 +109,7 @@ Every feature below has been accepted for inclusion (full scope). Phase assignme | T1 | **Open in Maps button on task** | 2 | `geo:` / Apple Maps URL; one-tap | | T2 | **AI pre-visit brief on mobile form** | 2 | Surfaces `x_fc_ai_summary` prominently; "What to bring" + safety flags | | T3 | Labour timer via fusion_clock | 3 | Tap Start/Pause; final time pre-fills visit report | -| T4 | **Client signature on completion** | 2 | OWL signature pad on visit report wizard; attached to repair (pattern from [`fusion_authorizer_portal`](fusion_authorizer_portal)) | +| T4 | **Client signature on completion** | 2 | OWL signature pad on visit report wizard; attached to repair (pattern from [`fusion_portal`](fusion_portal)) | | T5 | "Found another issue" button | 2 | Spawn new repair from current visit, same partner, different equipment | | T6 | Parts replaced — serial capture | 3 | Scan/type replaced part serials; stores for OEM warranty + traceability | | T7 | No-show photo proof | 3 | "Client not home" → camera → photo attached → repair flagged + service-call fee added | @@ -164,11 +164,11 @@ Every feature below has been accepted for inclusion (full scope). Phase assignme | CL19 | **Voice input → AI transcription** | 4 | Client speaks the problem into mic, AI transcribes + classifies | | CL20 | **Resolution survey + Google review** | 2 | After "resolved" outcome, ask "save you time today?" + Google review CTA | -### Sales rep portal (mirrors fusion_authorizer_portal pattern) +### Sales rep portal (mirrors fusion_portal pattern) | ID | Feature | Phase | Notes | |----|---------|-------|-------| -| S1 | **Sales rep web intake form** | 1 | `/my/repair/new` — same question flow as backend wizard, mobile-friendly. Reuses `is_sales_rep_portal` flag on `res.partner` from [`fusion_authorizer_portal/security/portal_security.xml`](fusion_authorizer_portal/security/portal_security.xml) line 11 | +| S1 | **Sales rep web intake form** | 1 | `/my/repair/new` — same question flow as backend wizard, mobile-friendly. Reuses `is_sales_rep_portal` flag on `res.partner` from [`fusion_portal/security/portal_security.xml`](fusion_portal/security/portal_security.xml) line 11 | | S2 | Sales rep dashboard tile | 1 | Add "Service Calls" tile to `/my/sales-rep/dashboard` showing count of repairs they logged + recent 5 | | S3 | **My Service Calls** list page | 1 | `/my/repairs` — sales rep sees their submitted repairs, status, assigned tech, scheduled date | | S4 | View repair status from portal | 1 | `/my/repair/` — read-only timeline, chatter for non-internal messages, ability to add a comment | @@ -183,7 +183,7 @@ Every feature below has been accepted for inclusion (full scope). Phase assignme **Routing namespace:** `/my/repair/*` (intake + my list) and a `/my/sales-rep/repairs` summary route added to the existing sales rep dashboard. -**Record rule** (mirrors [`fusion_authorizer_portal/security/portal_security.xml`](fusion_authorizer_portal/security/portal_security.xml) line 129 pattern): +**Record rule** (mirrors [`fusion_portal/security/portal_security.xml`](fusion_portal/security/portal_security.xml) line 129 pattern): ```xml @@ -236,7 +236,7 @@ Every feature below has been accepted for inclusion (full scope). Phase assignme 'website', # QWeb portal templates 'fusion_tasks', # technician tasks + fusion.email.builder.mixin 'fusion_poynt', # payment collection - 'fusion_authorizer_portal', # sales rep portal flag + group + dashboard scaffold + 'fusion_portal', # sales rep portal flag + group + dashboard scaffold ] # Phase 3 soft-add: 'appointment', 'fusion_schedule' for client self-booking # Phase 3 soft-add: 'fusion_clock' for tech labour timer (T3) @@ -245,7 +245,7 @@ Every feature below has been accepted for inclusion (full scope). Phase assignme # Phase 3 soft-add: 'fusion_ringcentral' for SMS verify (CL12) + voicemail greeting (CL16) + caller-ID launch (Phase 4) # Phase 4 soft-add: 'fusion_shipping', 'fusion_canada_post' for mail-in repairs (M4) # Soft-call (no depend) at runtime: 'fusion.api.service' via try/except per fusion-api-integration rule -# NOTE: fusion_authorizer_portal transitively pulls fusion_claims — accepted for portal reuse +# NOTE: fusion_portal transitively pulls fusion_claims — accepted for portal reuse ``` Before coding any Odoo 19 view/JS, read reference files from local OrbStack Docker per project rules. @@ -712,7 +712,7 @@ Themes adapt via project SCSS rules — no hardcoded colours per CLAUDE.md. --- -## Sales rep portal (Phase 1 — mirrors fusion_authorizer_portal) +## Sales rep portal (Phase 1 — mirrors fusion_portal) **Goal:** A sales rep on the road takes a client call and submits a repair request from their phone — same intake flow as backend CS wizard, no Odoo login screen. @@ -720,10 +720,10 @@ Themes adapt via project SCSS rules — no hardcoded colours per CLAUDE.md. | Option | Recommendation | |--------|----------------| -| **Hard depend on `fusion_authorizer_portal`** | RECOMMENDED — reuses the existing `is_sales_rep_portal` flag, `group_sales_rep_portal`, sales rep dashboard scaffolding. Transitively pulls fusion_claims (already core in your stack). | +| **Hard depend on `fusion_portal`** | RECOMMENDED — reuses the existing `is_sales_rep_portal` flag, `group_sales_rep_portal`, sales rep dashboard scaffolding. Transitively pulls fusion_claims (already core in your stack). | | Soft depend (try/except + own fallback flag) | Possible but doubles the code: own `is_sales_rep_portal` mirror + own group. Only worth it if you ever want fusion_repairs standalone. | -We go with hard depend. Add `fusion_authorizer_portal` to the manifest `depends` list. +We go with hard depend. Add `fusion_portal` to the manifest `depends` list. ### Architecture @@ -740,7 +740,7 @@ flowchart LR ### Controller layout ([`controllers/portal_sales_rep_repair.py`](fusion_repairs/controllers/portal_sales_rep_repair.py)) -Routes scoped to `is_sales_rep_portal` users (gate at controller top, pattern from [`fusion_authorizer_portal/controllers/portal_assessment.py`](fusion_authorizer_portal/controllers/portal_assessment.py) line 25): +Routes scoped to `is_sales_rep_portal` users (gate at controller top, pattern from [`fusion_portal/controllers/portal_assessment.py`](fusion_portal/controllers/portal_assessment.py) line 25): | Route | Type | Purpose | |-------|------|---------| @@ -767,14 +767,14 @@ Avoids the trap of two intake flows drifting out of sync. ### Templates ([`views/portal_sales_rep_templates.xml`](fusion_repairs/views/portal_sales_rep_templates.xml)) -QWeb templates following [`fusion_authorizer_portal/views/portal_assessment_express.xml`](fusion_authorizer_portal/views/portal_assessment_express.xml) style: +QWeb templates following [`fusion_portal/views/portal_assessment_express.xml`](fusion_portal/views/portal_assessment_express.xml) style: - `portal_repair_intake_form` — multi-step (accordion or stepper) with same 5 sections as backend wizard - `portal_repair_list` — card list with status badge, scheduled date, tech name - `portal_repair_detail` — timeline + chatter - `portal_repair_intake_thanks` — confirmation page with "Submit Another" button (common on multi-call days) -Reuses portal gradient/header style via `portal_gradient` template variable already set by [`portal_main.home()`](fusion_authorizer_portal/controllers/portal_main.py) line 85. +Reuses portal gradient/header style via `portal_gradient` template variable already set by [`portal_main.home()`](fusion_portal/controllers/portal_main.py) line 85. ### JS ([`static/src/js/portal_repair_intake.js`](fusion_repairs/static/src/js/portal_repair_intake.js)) @@ -860,7 +860,7 @@ Extend repair order form view with Intake tab (answers), Maintenance tab, and st **Reused (do NOT recreate):** - [`fusion_tasks.group_field_technician`](fusion_tasks/security/security.xml) — for technician access to `repair.order` (parallel to existing tech task rules). Same domain `('technician_id', '=', user.id)` adapted as `('x_fc_technician_task_ids.technician_id', '=', user.id)` on repair orders -- [`fusion_authorizer_portal.group_sales_rep_portal`](fusion_authorizer_portal/security/portal_security.xml) — for sales rep portal access (see Sales rep portal section) +- [`fusion_portal.group_sales_rep_portal`](fusion_portal/security/portal_security.xml) — for sales rep portal access (see Sales rep portal section) **New groups specific to fusion_repairs:** - `group_fusion_repairs_user` — CS intake, view repairs (implied by `base.group_user`) @@ -896,7 +896,7 @@ Extend repair order form view with Intake tab (answers), Maintenance tab, and st **Sales rep portal (S1-S4, S6, S8):** - Portal controllers `/my/repair/new`, `/my/repairs`, `/my/repair/` -- Mobile-friendly QWeb templates following [`fusion_authorizer_portal/views/portal_assessment_express.xml`](fusion_authorizer_portal/views/portal_assessment_express.xml) style +- Mobile-friendly QWeb templates following [`fusion_portal/views/portal_assessment_express.xml`](fusion_portal/views/portal_assessment_express.xml) style - Same intake question flow as backend (via shared service layer) - Mobile photo / camera capture - Client history sidebar exposed in portal form @@ -1137,7 +1137,7 @@ After implementation, test on local dev only: | Backend wizard and sales rep portal drift apart | Both call the same `fusion.repair.intake.service.create_repair_orders(payload)` AbstractModel method; no duplicate business logic | | Sales rep accidentally sees other reps' repairs | Record rule `('x_fc_intake_user_id', '=', user.id)` scoped to `base.group_portal`; integration test asserts cross-rep isolation | | Portal form abandoned mid-flow on call drop | Save partial state to `localStorage` keyed by partner + timestamp; "Resume" prompt on `/my/repair/new` if recent draft exists | -| fusion_authorizer_portal install becomes mandatory | Documented in module description; if a deployment doesn't want fusion_authorizer_portal, fall back to a `fusion_repairs_portal_lite` companion module that recreates only the `is_sales_rep_portal` flag | +| fusion_portal install becomes mandatory | Documented in module description; if a deployment doesn't want fusion_portal, fall back to a `fusion_repairs_portal_lite` companion module that recreates only the `is_sales_rep_portal` flag | | **Public form spam / abuse** | reCAPTCHA v3 + honeypot + per-IP rate limit + per-phone rate limit + SMS verify before submit (Phase 2). Block ASN ranges via Odoo's `ir.rule` if needed | | **AI giving unsafe medical advice** | Strict system prompt + JSON schema validation + keyword filter (rejects "diagnose", "you have", "stop using"); falls back to deterministic rules on any malformed/unsafe output; legal disclaimer "this is not medical advice" shown on every AI step | | **AI cost runaway from public traffic** | Hard daily/monthly budget cap via `fusion.api.service`; CAPTCHA gates AI calls; cache results for identical symptom-category pairs; deterministic fallback never costs anything | diff --git a/docs/superpowers/specs/2026-05-31-fusion-clock-statutory-break-design.md b/docs/superpowers/specs/2026-05-31-fusion-clock-statutory-break-design.md new file mode 100644 index 00000000..1a2cb017 --- /dev/null +++ b/docs/superpowers/specs/2026-05-31-fusion-clock-statutory-break-design.md @@ -0,0 +1,256 @@ +# Fusion Clock — Province-Aware Automatic Unpaid Break (2-tier) + +- **Date:** 2026-05-31 +- **Module:** `fusion_clock` +- **Version bump:** `19.0.4.0.3` → `19.0.4.1.0` +- **Status:** Approved design, pending implementation plan +- **Author:** Claude Code (brainstormed with user) + +## 1. Problem + +Statutory unpaid meal breaks are jurisdiction-driven: a break is required after N1 +hours of work, and a second break after a higher N2 threshold. Ontario, for example: +a 30-minute eating period after 5 hours of work, and (per the user's policy) another +30 minutes after 10 hours. The deduction must be **automatic** and must apply on **every** +way an attendance is recorded — including a manager manually adding or editing hours. + +### Audit of current behaviour (what exists today) + +The deduction field is `hr.attendance.x_fclk_break_minutes` (minutes). Net hours are +`x_fclk_net_hours = worked_hours − x_fclk_break_minutes/60` (`models/hr_attendance.py:261`). + +Break minutes are written from **four** places, all implementing variations of one rule: + +1. `controllers/clock_api.py::_apply_break_deduction` (line 161) — on **clock-out**; + reused by the PIN kiosk (`controllers/clock_kiosk.py:158`) and NFC kiosk + (`controllers/clock_nfc_kiosk.py:381`). Logic: `if worked_hours >= break_threshold_hours` + (default **4.0h**) → set break to `employee._get_fclk_break_minutes()` (default **30**), + using `max(new, current)` so it doesn't wipe penalty minutes. +2. Auto-clock-out cron (`models/hr_attendance.py:343`) — same single-threshold write. +3. `controllers/clock_api.py::_check_and_create_penalty` (line 140) — **adds** penalty + minutes into the same `x_fclk_break_minutes` field. + +### Gaps vs. requirement + +1. **Single tier only** — one threshold (4h), one break (30m). No second break. +2. **Not applied on manual entry** — there is **no `create`/`write` override** on + `hr.attendance`. A manager-created or manager-edited attendance gets break `= 0`. + This is the central gap. +3. **No province/country awareness** — no jurisdiction field exists anywhere (location + has address/timezone but no province; company has none). Threshold + amount are flat + global config params. +4. **First-break default is 4h, not 5h** (Ontario is 5h). + +## 2. Goals / Non-goals + +**Goals** +- Statutory unpaid break applies automatically based on **actual worked hours**, on every + path (portal, systray, PIN kiosk, NFC kiosk, auto-clock-out cron, **and manual backend + create/edit**). +- Two tiers: first break after N1 hours, second break adds after N2 hours. Trigger is + `worked_hours >= N` (inclusive; nothing under N1). +- Rules are defined **per province/country** in a table; an employee resolves its rule + from its **company's province**, with a single global default fallback. +- **Eliminate the duplicated deduction logic** — one calculator, called everywhere. + +**Non-goals (YAGNI)** +- Per-employee break-rule override (resolver is structured so this is a cheap add later). +- GPS/location-based jurisdiction detection. +- More than two tiers (the table is 2-tier; a 3rd break would be a future schema change). +- Changing the *planned* break concept used for scheduled-hours math. + +## 3. Locked decisions + +| # | Decision | Choice | +|---|---|---| +| 1 | Rule model | **Per-province table**, 2-tier (`fusion.clock.break.rule`) | +| 2 | Jurisdiction source | **Company province** (`company_id.state_id`) + global default fallback | +| 3 | Override behaviour | **Fully automatic** — idempotent stored compute, recomputes on every save | +| 4 | Planned-vs-statute | **Statutory only** — the planned/scheduled break never affects the actual deduction | + +## 4. Design + +### 4.1 New model `fusion.clock.break.rule` + +`models/clock_break_rule.py`, `_name = 'fusion.clock.break.rule'`, +`_description = 'Statutory Break Rule'`, `_order = 'sequence, name'`. + +| Field | Type | Default | Notes | +|---|---|---|---| +| `name` | Char (required) | — | e.g. "Ontario" | +| `country_id` | Many2one `res.country` | — | scopes the province picker | +| `state_id` | Many2one `res.country.state` | — | the province; `domain` on `country_id` | +| `is_default` | Boolean | False | global fallback when no province matches | +| `break1_after_hours` | Float | 5.0 | first break trigger N1 | +| `break1_minutes` | Float | 30.0 | first break amount M1 (0 = disabled) | +| `break2_after_hours` | Float | 10.0 | second break trigger N2 | +| `break2_minutes` | Float | 30.0 | second break amount M2 (0 = disabled) | +| `sequence` | Integer | 10 | | +| `active` | Boolean | True | | + +**Constraints** (`models.Constraint`, per repo Odoo-19 rule 9): +- `break1_after_hours >= 0`, `break2_after_hours >= 0`, minutes `>= 0`. +- When `break2_minutes > 0`: `break2_after_hours > break1_after_hours` + (a misordered second tier is a config error). +- (Soft) at most one `is_default = True` — enforced in a Python `@api.constrains` + rather than a partial unique index, to give a friendly message. + +**Method** — `break_minutes_for(self, worked_hours)`: +``` +self.ensure_one() +total = 0.0 +if self.break1_minutes and worked_hours >= self.break1_after_hours: + total += self.break1_minutes +if self.break2_minutes and worked_hours >= self.break2_after_hours: + total += self.break2_minutes +return total +``` +`>=` is intentional and matches the requirement ("equal to or more than N1"). + +**Seed** (`data/clock_break_rule_data.xml`, `noupdate="1"`): one row — +`name="Ontario"`, `state_id=base.state_ca_on`, `is_default=True`, +`break1_after_hours=5.0`, `break1_minutes=30.0`, +`break2_after_hours=10.0`, `break2_minutes=30.0`. +(Acting as both the Ontario match and the global fallback for this deployment. +Other provinces can be added as rows.) + +### 4.2 Jurisdiction resolver — `hr.employee._get_fclk_break_rule()` + +``` +self.ensure_one() +Rule = self.env['fusion.clock.break.rule'].sudo() +state = self.company_id.state_id +rule = Rule.browse() +if state: + rule = Rule.search([('state_id', '=', state.id)], limit=1) +if not rule: + rule = Rule.search([('is_default', '=', True)], limit=1) +return rule # may be empty recordset → caller treats as 0 break +``` +`sudo()` so the portal net-hours compute (run as the employee) can read the rule table +without a direct ACL grant. Resolver is a single method → adding a per-employee override +(`x_fclk_break_rule_id`) later is a two-line change. + +### 4.3 `hr.attendance` — `x_fclk_break_minutes` becomes a stored compute + +The field changes from a plain editable Float to a **stored computed** field — this is the +single calculator that replaces all four write sites. + +```python +x_fclk_break_minutes = fields.Float( + string='Break (min)', + compute='_compute_fclk_break_minutes', + store=True, + tracking=True, + help="Unpaid break deducted from worked hours: statutory break (by province " + "rule, from actual hours worked) plus any penalty minutes.", +) + +@api.depends('worked_hours', 'check_out', + 'x_fclk_penalty_ids.penalty_minutes', 'employee_id') +def _compute_fclk_break_minutes(self): + ICP = self.env['ir.config_parameter'].sudo() + auto = ICP.get_param('fusion_clock.auto_deduct_break', 'True') == 'True' + for att in self: + statutory = 0.0 + if auto and att.check_out and att.employee_id: + rule = att.employee_id._get_fclk_break_rule() + if rule: + statutory = rule.break_minutes_for(att.worked_hours or 0.0) + penalties = sum(att.x_fclk_penalty_ids.mapped('penalty_minutes')) + att.x_fclk_break_minutes = statutory + penalties +``` + +Properties: +- **Idempotent** — same hours + same penalties always yield the same value; no drift, + nothing to wipe. +- **Fires on every path** — `worked_hours` recomputes whenever `check_in`/`check_out` + change, so portal, kiosk, NFC, cron, **and manual backend create/edit** all recompute + automatically. This is what fixes the manual-entry gap. +- **Mid-shift = 0** — `check_out` empty → statutory 0 (penalties, if any, still counted). +- **Master toggle preserved** — `auto_deduct_break` False → statutory 0 (penalties remain). +- `_compute_net_hours` is unchanged (still `worked_hours − break/60`); it now depends on a + computed-stored field, which Odoo chains correctly. + +The attendance form's Break field becomes read-only (consistent with "fully automatic"). +`views/hr_attendance_views.xml` updated accordingly. + +### 4.4 Removals (the de-duplication) + +| Remove | File | Replaced by | +|---|---|---| +| `_apply_break_deduction` method + its 3 call sites | `controllers/clock_api.py:161`, `controllers/clock_kiosk.py:158`, `controllers/clock_nfc_kiosk.py:381` | the compute | +| cron's `x_fclk_break_minutes` write | `models/hr_attendance.py:343-346` | the compute | +| penalty's `current_break + deduction` write | `controllers/clock_api.py:140-144` | the compute's `Σ penalty_minutes` | +| setting `fclk_break_threshold_hours` + `fusion_clock.break_threshold_hours` | `models/res_config_settings.py:39`, seed in `data/ir_config_parameter_data.xml` | per-rule `break1_after_hours` | + +**Kept and untouched:** `hr.employee._get_fclk_break_minutes()`, `fusion_clock.default_break_minutes`, +`fusion.clock.shift.break_minutes`, `fusion.clock.schedule.break_minutes` — these are the +**planned** break (used to compute scheduled `planned_hours`), a separate concept from the +actual worked-hours deduction. Decision #4 keeps them out of the deduction path. + +**Kept:** the `auto_deduct_break` master toggle (now gates the statutory portion only). + +### 4.5 UI / security / data + +- **Menu:** *Fusion Clock → Configuration → Break Rules* (new `ir.actions.act_window` + + list/form views in `views/clock_break_rule_views.xml`), gated to + `group_fusion_clock_manager`. Add the menu item in `views/clock_menus.xml`. +- **Security:** `security/ir.model.access.csv` — `fusion.clock.break.rule`: manager = + full CRUD; team-lead/user = read (or none — the resolver uses sudo, so no direct grant + is strictly required; grant manager full, no portal access). +- **Manifest `data`:** add `data/clock_break_rule_data.xml` (after security, before crons) + and `views/clock_break_rule_views.xml` (with the other config views, before + `clock_menus.xml`). Bump `version` to `19.0.4.1.0`. + +## 5. Edge cases + +- **No rule resolvable** (no province match, no default) → statutory 0. The seeded default + prevents this in practice. +- **Company has no `state_id`** → falls to the default rule. +- **`break2_after_hours <= break1_after_hours`** → blocked by constraint. +- **Penalty created after clock-out** → `x_fclk_penalty_ids` change retriggers the compute; + final break = statutory + penalty (preserves today's combined-field semantics, reported + as one "Break" number). +- **Open attendance** (no checkout) → break 0; recomputed when it's closed. +- **Worked hours exactly at a boundary** (5.0h, 10.0h) → tier fires (`>=`). + +## 6. Migration / upgrade + +- On upgrade, flipping `x_fclk_break_minutes` to `store=True compute` makes Odoo recompute + it for all existing rows. For closed attendances this re-derives break from + `worked_hours` + linked penalties using the seeded Ontario rule — which is the intended + corrected value. Any historical hand-edited break values are replaced (acceptable per + Decision #3, "fully automatic"). Call this out in the change log. +- No `pre`/`post` migration script is required; the recompute is automatic. (If we later + want to *avoid* touching very old periods, a guarded post-migrate could pin them — out of + scope for now.) + +## 7. Testing (`tests/test_break_rules.py`, `@tagged('-at_install','post_install','fusion_clock')`) + +1. `break_minutes_for`: 4.99h→0, 5.0h→30, 9.99h→30, 10.0h→60. +2. Resolver: company in Ontario → Ontario rule; company with unset/other province → default. +3. **Manual backend create** of a closed attendance (check_in/out spanning 6h) → break 30, + net = worked − 0.5. **Manual edit** extending to 10h → break 60. (This is the headline + gap; assert it directly via `env['hr.attendance'].create(...)`, not via a controller.) +4. Penalty additivity: 6h + one 15-min penalty record → break 45. +5. Master toggle off (`auto_deduct_break=False`) → statutory 0 (penalty-only). +6. Constraint: `break2_after_hours <= break1_after_hours` raises. + +Run (note ephemeral ports per repo CLAUDE.md): +``` +docker exec odoo-modsdev-app odoo -d modsdev --test-enable --test-tags /fusion_clock \ + -u fusion_clock --stop-after-init --http-port=0 --gevent-port=0 2>&1 | tail -60 +``` + +## 8. Rollout notes + +- **Dual-path write** during dev: edit files in **both** `K:\Github\odoo-modsdev\addons\fusion_clock` + (Docker-mounted, for tests) **and** `K:\Github\Odoo-Modules\fusion_clock` (git); commit + from the git path only. (Per project memory.) +- Live target is **entech** (`odoo-entech`); deploy after local tests pass and user review. +- Asset/version bump already covered by the manifest `version` change. + +## 9. Open questions + +None — all four design forks resolved (see §3). diff --git a/docs/superpowers/specs/2026-06-02-assessment-visit-funding-design.md b/docs/superpowers/specs/2026-06-02-assessment-visit-funding-design.md new file mode 100644 index 00000000..41352b16 --- /dev/null +++ b/docs/superpowers/specs/2026-06-02-assessment-visit-funding-design.md @@ -0,0 +1,164 @@ +# Assessment Visit — bundled, funding-routed assessments + +**Date:** 2026-06-02 +**Module:** `fusion_portal` (depends on `fusion_claims`, `fusion_tasks`); live on `odoo-westin` (DB `westin-v19`) +**Status:** Draft for review +**Author:** Brainstormed with Gurpreet (Fusion / Westin Healthcare) + +--- + +## 1. Problem & goals + +A sales rep visits a client's home **with an occupational therapist (OT) and the client present for only 30–45 minutes**, and the OT's time is the scarcest resource. In that window the team often does more than one assessment — a wheelchair (ADP) plus, opportunistically, accessibility products the rep spots (a ramp at the front steps, a stair lift inside, a tub cutout, a patient lift for transfers). Today each assessment is a **separate, standalone web form** that re-collects the client's details and creates its own sale order, and the front-end forms give the rep **no way to mark a case's funding source** — so March-of-Dimes work silently defaults to private pay and never reaches the MOD pipeline. + +**Goals** + +1. **One visit, many assessments, entered once.** Bundle every assessment from one home visit; capture the client + funding details a single time. +2. **Measurement-first.** Capture measurements while the OT is present; defer client/health-card data to after they leave; let the OT sign the ADP application on the spot. +3. **Add as you go.** The rep adds an assessment/product the instant they spot it — repeatable, with a location tag (Front / Back / Inside). +4. **Route by funding workflow.** On completion the visit emits **one sale order per funding workflow** (ADP, March of Dimes, ODSP, WSIB, private, …) — never one combined SO, and never a separate SO per item within the same funding. +5. **Let the rep set funding at assessment time** (the real MOD "tracking" gap). +6. **ADP multi-device** with valid-combination rules, including a new **mobility scooter** type and a **home-accessibility hard rule** for power mobility that feeds the accessibility upsell. + +**Non-goals (v1):** voice/dictated entry; rebuilding the measurement math; a new MOD/ADP claim model (the pipelines already exist — we reuse them). + +--- + +## 2. Current state (verified against source) + +- **Two assessment models, already two separate SO lineages.** `fusion.assessment` (ADP: rollator/wheelchair/powerchair) and `fusion.accessibility.assessment` (the 7 lift/mod types) each have their own `_create_draft_sale_order` (`assessment.py:587`, `accessibility_assessment.py:751`), their own `x_fc_sale_type`, and their own state machine — ADP's 24-state `x_fc_adp_application_status` vs MOD's 16-state `x_fc_mod_status`. Each guards against a second SO (`accessibility_assessment.py:503-511`). SO back-links are **scalar** Many2one: `assessment_id`, `accessibility_assessment_id` (`fusion_portal/models/sale_order.py:37,48`). +- **SOs are born with no order lines.** Specs become a **chatter HTML note** (`_format_assessment_html_table`, `accessibility_assessment.py:815`); a human prices the draft afterward. **No per-type product mapping exists.** +- **Funding is modelled but not on the measurement forms.** `x_fc_funding_source` (required, default `direct_private`) on the accessibility model — values `march_of_dimes`, `odsp`, `wsib`, `insurance`, `direct_private`, `other` (`accessibility_assessment.py:71-87`) — is present on the public booking form but **absent from all 7 measurement forms**, so they default to private. Canonical billing type `sale.order.x_fc_sale_type` (`fusion_claims/models/sale_order.py:320`) carries the full set incl. `adp`, `adp_odsp`, `march_of_dimes`, etc. +- **MOD tracking already exists** as `x_fc_mod_status` (16 states) + ~60 `x_fc_mod_*` fields (HVMP reference #, vendor code, drawings, PCA, POD, approved/payment amounts, dated audit trail) + MOD views + ~7 wizards + ~40 MOD/ODSP stage emails (`fusion_claims/models/sale_order.py:438,877`). An accessibility assessment funded `march_of_dimes` already lands its SO in this pipeline at `need_to_schedule`. **The gap is purely that the rep can't choose `march_of_dimes` on the form.** +- **Emails** are mostly Python-built via the shared `fusion.email.builder.mixin._email_build` (`fusion_tasks/models/email_builder_mixin.py:8`), gated by `ir.config_parameter` `fusion_claims.enable_email_notifications`. Completion email fires from inside `_create_draft_sale_order` (`assessment.py:847`; `accessibility_assessment.py:624`). Stage emails (`_adp_send_stage_email`, `_mod_email_build`, `_odsp_email_build`) are keyed off the SO's funding type + status, so **they keep working per-SO unchanged**. +- **Known bug:** backend ADP `action_complete()` sends the authorizer **two** completion emails (template pair at `assessment.py:494` + inline report via `:847`). Must consolidate before fanning out across a visit. + +--- + +## 3. The design + +### 3.1 The Visit aggregate (only net-new model) + +`fusion.assessment.visit` — the hub for one home visit. + +- **Client/context, entered once:** `partner_id`, address fields, `visit_date`, `sales_rep_id`, `authorizer_id` (OT), `x_fc_funding_source`-style default, `state` (`measuring` → `client_pending` → `done`). +- **Links to its assessments:** `adp_assessment_ids` (One2many → `fusion.assessment`) and `accessibility_assessment_ids` (One2many → `fusion.accessibility.assessment`). Each assessment gains `visit_id`. +- **Links to its sale orders:** `sale_order_ids` (One2many → `sale.order`) — one per funding workflow it produced. +- On the SO side, add `visit_id`. Each assessment already carries `sale_order_id` (Many2one — `accessibility_assessment.py:153`, `assessment.py:422`), so several same-funding assessments can already point at one SO; the redundant **scalar** `assessment_id` / `accessibility_assessment_id` on the SO (`fusion_portal/models/sale_order.py:37,48`) become **One2many** (or are dropped in favour of the `sale_order_id` reverse) so an SO no longer assumes a single source assessment. + +Client info moves to the Visit as the single source of truth; the per-assessment `client_name`-required gate is relaxed (the model keeps the field for back-compat / standalone use but the Visit flow fills it from `partner_id`). + +### 3.2 Add-as-you-go workspace (portal UX) + +A portal "visit workspace" (reps are portal users, tablet-first): + +- Always-present **"+ Add"** → pick a type + location tag (Front / Back / Inside / custom) → drop **straight into the existing measurement form** for that type. No client paperwork required to start. +- Each added assessment is a **card** showing type, location, status (To measure / Measured / Signed), and — once priced — its amount. +- **Measurement-first:** the forms render with client fields hidden/optional; a **deferred "Client + funding" step** is completed after the OT leaves and is shared by every item. +- The **OT signs the ADP application (Page 11)** inline on the wheelchair/ADP item, on-site, independent of client demographics (reuse `portal_assessment_express` Page-11 section + signature pad). +- Mockups (for reference, in repo `docs/mockups/` if committed): `fusion_portal_new_approach_mockup.html`. + +### 3.3 Multi-instance + location tags + +Any type can be added **more than once**, each its own assessment record with a **location label** ("Main stairs", "Basement", "Front porch"). Two stair lifts = two assessment records (→ two lines on the same funding SO; see §3.6). A **"Same as the previous"** action copies shared options so the rep only re-enters the differing measurements. + +### 3.4 Per-item funding selector — the MOD gap fix + +Expose `x_fc_funding_source` on **each accessibility assessment** in the flow: **Private Pay / March of Dimes / ODSP / WSIB / Hardship / Insurance / Other**. This one field drives the existing `sale_type_map` → `x_fc_sale_type` → correct pipeline (MOD 16-state tracker, ODSP, hardship, …). Defaults to the previous item's funding so an all-MOD visit isn't re-picked each time. **ADP/wheelchair items are fixed to ADP** (no picker). This is the minimal change that closes the "can't mark a case as March of Dimes" gap — no new tracking model. + +> **Patient lift** is an accessibility/equipment item that uses this same picker — funded by March of Dimes, **ODSP**, or **Hardship** (e.g. Toronto residents), so its funding is chosen per case, not fixed. +> **`sale_type_map` gap:** `x_fc_funding_source` currently lacks `hardship` while `x_fc_sale_type` already has it (`sale_order.py:320`) — add `hardship` to the picker + a `sale_type_map` entry (`accessibility_assessment.py:771`), and review the map so every offered funding routes to a real `x_fc_sale_type`. +> **MOD funding cap** applies to MOD items — see Resolved decision 1 (§4). + +### 3.5 ADP multi-device + combinations + scooter + home-access rule + +**Multi-device ADP order.** Today one ADP device per order; the visit allows a **valid combination** of ADP devices for one client, all landing on the **one ADP SO**. Each ADP device is an item; the combination check runs across the visit's ADP items. + +**Device categories:** Walker/Rollator · Manual Wheelchair · Power Wheelchair · **Scooter (new)**. + +**Combination rules (confirmed):** + +| Combination | Allowed? | +|---|---| +| Any single device | ✓ | +| Walker + Manual Wheelchair | ✓ | +| Walker + Power Wheelchair | ✓ | +| Walker + Scooter | ✓ | +| Manual + Power Wheelchair | ✗ | +| Power Wheelchair + Scooter | ✗ | +| Manual Wheelchair + Scooter | ✗ | +| Two walkers / any duplicate | ✗ | + +Rule in words: **at most one "seated-mobility" device** {manual wheelchair, power wheelchair, scooter}, **optionally one walker/rollator alongside, no duplicates.** Enforced when adding/saving an ADP device. + +**Scooter (new ADP type) fields:** `client_weight` (exists), scooter type, **maximum travel range**, and the home-accessibility check (below). Gets its own measurement section in the ADP form, mirroring the rollator/wheelchair/powerchair sections. + +**Power-mobility home-accessibility hard rule.** For **scooter and power wheelchair**, a required check: *"Is the home accessible enough for the device to be used **inside and outside** the home independently — no lifting, not left outside/in the garage?"* ADP will not fund power mobility a home can't accommodate. If the answer is **No**, the visit **flags an accessibility need** and prompts the rep to add an accessibility item (ramp / porch lift, typically March of Dimes) to remediate. This is the explicit bridge between the ADP power-mobility item and the accessibility/MOD upsell. + +> **The power-wheelchair form is already well-optimized — do NOT change its fields.** The *only* addition there is this home-accessibility warning. The new **scooter** type gets its own section (fields above); the manual-wheelchair and rollator sections are unchanged. + +### 3.6 Funding-workflow grouping → one SO per workflow + +On visit completion, group its assessments by **funding workflow** (`x_fc_sale_type`) and create **one SO per group**: + +- All `march_of_dimes` items (stair lift + porch lift + tub cutout, or two stair lifts) → **one MOD SO, multiple lines** (funding permitting). +- All ADP devices (the valid combination) → **one ADP SO**. +- Private / ODSP / WSIB / insurance → their own SO each. +- A separate SO appears **only when the case type changes**, never per-item within a funding. + +Refactor the two per-model `_create_draft_sale_order` routines into a **shared, group-aware builder** that takes a set of same-funding assessments and produces one SO, branching on funding type to stamp the right starting status field (`x_fc_adp_application_status` for ADP, `x_fc_mod_status` for MOD, etc. — mirroring `assessment.py:600-622`) and the right links. **Reuse the existing MOD/ADP/ODSP pipelines unchanged.** + +### 3.7 Emails + +- Reuse `fusion.email.builder.mixin` and the existing per-funding stage emails (they're keyed off SO type + status, so per-SO they keep working). +- **Move the completion send to per-SO** inside the new builder (not per-assessment), and **dedupe recipients**, so a 3-item visit doesn't emit 3–6 completion emails. +- **Fix the existing duplicate** (authorizer gets two completion emails on backend ADP completion) as part of this. +- Make `enable_email_notifications` gating consistent across the sends the visit touches. + +### 3.8 Reused vs net-new + +- **Reused, largely untouched:** the 7 accessibility measurement forms + their JS/Python calc; the ADP Express form + Page-11 signature; the MOD/ADP/ODSP pipelines, views, wizards, and stage emails; the email branding mixin. +- **Net-new:** the `fusion.assessment.visit` model + workspace UI; per-item funding selector on the accessibility forms; the group-aware SO builder + link-cardinality change; ADP multi-device + combination validation; scooter type + fields; power-mobility home-access rule + cross-sell flag; completion-email consolidation. + +--- + +## 4. Resolved decisions + +1. **MOD funding cap — documented rule, light-touch in v1.** March of Dimes covers **up to $15,000 per person, lifetime**, income-gated: if the client's income is **under** that year's threshold (the threshold changes annually), MOD funds the full $15k; if **over**, MOD may **deny or partially approve**. **v1:** surface this cap as a reminder on MOD items and capture an *"income under MOD threshold? (yes / no / unknown)"* flag so the rep can judge — **do not** auto-compute lifetime used-vs-remaining across the client's prior MOD orders (the SO's existing `x_fc_mod_*` approved/payment fields already record per-order amounts). **Future:** yearly-threshold config + automatic lifetime-remaining tracking + a hard warning. +2. **No auto pricing / products in v1.** The visit creates a **draft** SO per funding workflow and appends each assessment's specs to that SO's chatter (today's pattern); **the sales rep builds the quotation lines manually.** One SO can hold many items. No per-assessment-type product mapping. (Auto-pricing is a future expansion.) +3. **Patient-lift funding is chosen per case** via the funding picker — March of Dimes, **ODSP**, or **Hardship** (e.g. Toronto residents) all fund it; it is not fixed (see §3.4). +4. **Power-wheelchair form unchanged** — already well-optimized; the only addition is the **home-accessibility warning** (device usable **inside and outside** the home). The home-access rule applies to **scooter (new type, new section) and power wheelchair (warning only)**. + +--- + +## 5. Phasing + +- **Phase 1 — Funding correctness + visit backbone:** `fusion.assessment.visit`, link-cardinality change, **funding selector on the accessibility forms** (incl. Hardship; patient-lift routing), **MOD $15k-cap reminder + income-threshold flag** (informational), group-and-route to per-workflow **draft** SOs (specs to chatter, manual pricing) reusing existing pipelines, completion-email consolidation + duplicate fix. *(Delivers the MOD-routing fix and the multi-SO split.)* +- **Phase 2 — ADP expansion:** multi-device ADP order + combination validation, **scooter** type + fields, power-mobility **home-access hard rule** + accessibility cross-sell prompt. +- **Phase 3 — Seamless field UX:** the full add-as-you-go workspace, measurement-first deferral, location tags, "same as previous", OT on-site sign-off polish. +- **Later:** product-line auto-pricing, MOD funding-cap tracking, voice/quick entry. + +--- + +## 6. Risks (from investigation) + +- **Duplicate completion emails** already live on the ADP backend path — fix before fan-out (§3.7). +- **Scalar back-links + double-SO guards** assume one SO per assessment; grouping breaks them — must move to `visit_id` / One2many and make the guard visit-aware. +- **Inconsistent `enable_email_notifications`** — template sends ignore the kill-switch; don't route new traffic through templates without honoring it. +- **Label drift** `x_fc_funding_source` vs `x_fc_sale_type` (`insurance`="Private Insurance" vs "Insurance"; `direct_private`="Private Pay (Direct)" vs "Direct/Private") — keys match so routing works; align labels in any shared UI. +- **Unreachable funding types from accessibility:** `sale_type_map` (`accessibility_assessment.py:771`) covers 6 values; decide which funding types each assessment type may emit. + +--- + +## 7. Files in scope + +- `fusion_portal/models/assessment.py` — ADP `_create_draft_sale_order` (:587), completion email (:847), multi-device + scooter + home-access. +- `fusion_portal/models/accessibility_assessment.py` — accessibility `_create_draft_sale_order` (:751), `action_complete` (:493), completion email (:624), funding routing. +- `fusion_portal/models/sale_order.py` — back-links (:37,:48) → `visit_id` / One2many. +- `fusion_portal/models/visit.py` — **new** `fusion.assessment.visit`. +- `fusion_portal/views/portal_accessibility_forms.xml` + `portal_assessment_express.xml` — funding selector, scooter section, home-access check; workspace shell. +- `fusion_portal/controllers/portal_main.py` (`/my/accessibility/save` :2482) + `portal_assessment.py` — visit-aware save/group/route. +- `fusion_claims/models/sale_order.py` — reuse `x_fc_sale_type` (:320), `x_fc_mod_status` (:438), stage emails (:6876,:9038,:10063); no pipeline rebuild. +- `fusion_tasks/models/email_builder_mixin.py` — reuse for any new visit emails. + +**Deployment note:** `fusion_portal` is live on `odoo-westin` (`westin-v19`, container `odoo-dev-app`). Ship per the rename/deploy procedure (backup → code sync → `-u fusion_portal` → cache-bust → restart → verify). diff --git a/docs/superpowers/specs/2026-06-02-fusion-maintenance-design.md b/docs/superpowers/specs/2026-06-02-fusion-maintenance-design.md new file mode 100644 index 00000000..f9f9da67 --- /dev/null +++ b/docs/superpowers/specs/2026-06-02-fusion-maintenance-design.md @@ -0,0 +1,298 @@ +# fusion_maintenance — Design Spec + +> Automated preventive‑maintenance follow‑ups + self‑serve real‑time booking for Westin +> medical mobility equipment (stair lifts, porch lifts, lift chairs, wheelchairs, power +> wheelchairs/scooters), to keep clients on schedule and turn service into recurring revenue. + +| | | +|---|---| +| **Status** | Design **approved** (brainstorm dialogue 2026‑06‑02). Ready for implementation plan. | +| **Implemented by** | **Extending `fusion_repairs`** (no new module). Version bump. | +| **Target instance** | Westin production — host `odoo-westin` (192.168.1.40), container `odoo-dev-app`, DB `westin-v19`. One company / one DB running `fusion_claims` (live) + `fusion_repairs` (to be deployed). | +| **Relates to** | [`docs/plans/fusion_maintenance_brainstorm.md`](../../plans/fusion_maintenance_brainstorm.md) (brief + Step 0 + sizing), [`2026-05-20-fusion-repairs-design.md`](2026-05-20-fusion-repairs-design.md) (base module). | +| **Next step** | `writing-plans` → implementation plan. **No code until the plan is written and this spec is reviewed.** | + +--- + +## 1. Goal + +Westin sells/services mobility equipment that needs preventive maintenance every **1–6 months +depending on the product**. Today there is no system keeping clients on schedule. We want: + +1. The system **automatically emails the client** when a unit is due for maintenance. +2. The client can **book the visit themselves** (real‑time, self‑serve, no login) **or** call the + office and staff book it for them. +3. The booking **lands in our scheduling/calendar** as a real technician job. +4. The **technician accesses and updates the maintenance log** on the visit; the system keeps the + full history per unit. +5. The **next maintenance is auto‑rescheduled** → recurring loop. +6. The client is **told the cost** up front. +7. Outcome: clients stay on track **and** Westin gains **recurring revenue**. +8. Design/UX stays **consistent with `fusion_claims`** (branded emails, `x_fc_` naming, Canadian + English, `$`+`currency_id`). + +## 2. Locked decisions (from the brainstorm) + +| # | Decision | Choice | Why | +|---|----------|--------|-----| +| D1 | Separate module vs. part of `fusion_repairs` | **Build into `fusion_repairs`** | The maintenance engine already lives there (~90% built); a separate module would duplicate it. fusion_repairs already owns the equipment categories, `repair.order`, technician tasks, service plans, and the Westin rate card. | +| D2 | Pricing / revenue model | **Flat fee per equipment type** | Transparent cost to show the client; recurring per‑visit revenue. Configured per equipment **category** with per‑product override. | +| D3 | Enrollment scope | **New sales + backfill existing install base** | The recurring revenue and "keep clients on track" value is in the *existing* base, not just future sales. | +| D4 | Booking engine | **Technician‑aware picker on `fusion_tasks`** (NOT Enterprise `appointment`) | Clients see only slots a qualified tech is genuinely free for (route/skill‑aware); booking creates the technician task directly — one scheduling world, no appointment↔task bridge. Bonus: **no Enterprise dependency → Community‑testable locally.** | + +## 3. Grounding (verified, not assumed) + +### 3.1 What `fusion_repairs` ALREADY has (reuse — do not rebuild) +Source: [`fusion_repairs/models/maintenance_contract.py`](../../../fusion_repairs/models/maintenance_contract.py), [`technician_task.py`](../../../fusion_repairs/models/technician_task.py), [`repair_service_plan.py`](../../../fusion_repairs/models/repair_service_plan.py), `cloud.md`. + +- `fusion.repair.maintenance.contract` — partner/product/lot/original_SO, `interval_months`, + `last_service_date`, `next_due_date`, state machine (`draft/active/paused/cancelled`), + `booking_token` (unique), `last_reminder_band`, `booking_repair_id`. `roll_next_due_date()` + advances the cycle correctly via `relativedelta`. +- Reminder cron `cron_send_due_reminders` — daily, **30/7/1‑day** bands, per‑band dedup, queued + branded email `email_template_maintenance_due_reminder` with the tokenized link. +- Public booking controller `/repairs/maintenance/book/` — `auth='public'`, token‑validated, + already‑booked guard, thanks page. +- `create_repair_from_booking()` — spawns a `repair.order` (`x_fc_intake_source='client_portal'`), + links `x_fc_maintenance_contract_id`, dedups. +- **Roll‑forward** on technician task completion ([`technician_task.py:88`](../../../fusion_repairs/models/technician_task.py:88)): when a `task_type='maintenance'` task → `status='completed'`, sets `last_service_date`, calls `roll_next_due_date()`, posts chatter. **This is the recurring loop.** +- Pre‑paid **service‑plan subscriptions** (`fusion.repair.service.plan.subscription`) wired to + `sale.order.action_confirm()` + visit burn engine (revenue primitive; optional here). +- **Rate card** (`fusion.repair.callout.rate`, standard vs `lift_elevating`), `repair.order.x_fc_quote_total`. +- **Equipment category taxonomy** (`fusion.repair.product.category`): stairlift / porch_lift / + lift_chair flagged `equipment_class=lift_elevating`, `safety_critical=True`. +- **Inspection certificate** (`fusion.repair.inspection.certificate`, M1 — Done): PDF + expiry cron. +- Visit‑report wizard (signature, parts, labour timer). +- `product.template.x_fc_maintenance_interval_months` (exists, [product_template.py:23](../../../fusion_repairs/models/product_template.py:23)). +- `fusion_tasks` availability engine: [`_find_next_available_slot(tech_id, date, ...)`](../../../fusion_tasks/models/technician_task.py:544) and [`_get_available_gaps(tech_id, date, ...)`](../../../fusion_tasks/models/technician_task.py:664) — **route‑aware** (tech start address + geocoding + travel). Tech skills on `res.users.x_fc_repair_skills`. + +### 3.2 The 4 gaps this spec closes +1. **Contract auto‑creation trigger is dead code** — `_spawn_maintenance_contracts()` is defined on + `sale.order` ([maintenance_contract.py:198](../../../fusion_repairs/models/maintenance_contract.py:198)) but **never called**. No `action_confirm` override invokes it → no contracts exist today. +2. **No real booking** — the booking page is a bare `` ("a team member will call + to confirm"); no availability, no slots, no calendar/task. **This is the main new build.** +3. **No cost shown to the client** anywhere (email or booking page). +4. **No auto tech‑task creation, no structured maintenance log, no office‑follow‑up crons** + (`ir.config_parameter` toggles exist; no cron/Python). + +### 3.3 Install‑base sizing (Westin live, 2026‑06‑02) +- Serial numbers are captured **~only on real equipment** (parts have 0 serials) → `x_fc_serial_number` + is a de‑facto "trackable unit" marker and the natural **idempotency key**. +- ADP‑side base ≈ **138 serial‑tracked units / ~136 customers** (walkers 68, wheelchairs 45, power + bases 7, scooters 4, +14 no‑device‑type). Funders: adp 109, direct_private 13, adp_odsp 10, + march_of_dimes 7. Deliveries 2022‑10 → 2026‑05. +- **Lifts (sized 2026‑06‑02; name‑based, approximate)** — a LARGE base in Westin's Odoo: stair lifts + ~254 customers (416 lines incl. accessories), porch/VPL ~30 customers (75 lines), lift chairs ~41 + customers (47 lines) — real products (Access BDD, Handicare, Serenity VPL, Pride VivaLift). **But lift + serial coverage is ~0** (12/416 stairlift lines, 0 VPL, 2 lift‑chair). So the serial‑as‑unit‑key + approach that works for ADP wheelchairs **does NOT work for lifts** — lifts must be keyed by + (partner + base‑unit product + sale line), excluding accessory lines (curves, rails, remotes, charging + stations, rentals). This splits the backfill into two regimes (§6.2). +- Two backfill data gaps: 14 units have no device_type (need product/manual category); non‑ADP units + lack `x_fc_adp_delivery_date` (need an invoice/order‑date fallback anchor). + +## 4. Architecture + +Extend `fusion_repairs`. No new module, no new top‑level dependency for the core flow (booking uses +`fusion_tasks`, already a hard dep; pricing/Poynt already deps). The optional `fusion_claims` read +for the wheelchair backfill is a **soft** dependency (guarded `if 'fusion.claims' model present`), +so `fusion_repairs` still installs/test‑runs without `fusion_claims` on local dev. + +Reuse map: contract engine (extend), `fusion.technician.task` (booking target + availability + +roll‑forward), `repair.order` (visit container/pricing/Poynt), inspection certificate (lift +compliance), visit‑report wizard (extend with checklist), branded email pattern, rate card. + +## 5. Data model + +All new fields `x_fc_`, Canadian English labels, Monetary = `$` + `currency_id`. + +### 5.1 Maintenance policy — on `fusion.repair.product.category` ("per equipment type") +- `x_fc_maintenance_enabled` (Boolean) — is this category maintainable? +- `x_fc_maintenance_interval_months` (Integer) — default cadence (1–6+). +- `x_fc_maintenance_fee` (Monetary, `currency_id`) — the **flat fee** shown to the client. +- `x_fc_maintenance_skill_id` — the technician skill the booking matches on (maps to + `res.users.x_fc_repair_skills`). **If skills are already category‑based** (a tech's + `x_fc_repair_skills` are equipment categories), drop this field and simply match technicians whose + skills include *this* category — confirm the skills representation before modelling (§15). +- `x_fc_maintenance_service_product_id` (M2O `product.product`, optional) — the service product used + when drafting the priced invoice/SO line; falls back to a generic "Maintenance visit" product. + +**Per‑product override:** `product.template.x_fc_maintenance_interval_months` (exists) + +new `product.template.x_fc_maintenance_fee` (Monetary, optional). Resolution order at contract +creation: product override → category policy. + +### 5.2 Extend `fusion.repair.maintenance.contract` +- `x_fc_maintenance_fee` (Monetary) — resolved price snapshot, shown to client. +- `x_fc_source` (Selection: `sale` / `backfill` / `claims` / `manual`). +- `x_fc_source_sale_line_id` (M2O `sale.order.line`) — provenance + idempotency. +- `x_fc_device_serial` (Char, indexed) — idempotency key (esp. for claims/backfill where no lot). +- `x_fc_policy_category_id` (M2O `fusion.repair.product.category`). +- Constraint: at most one **active** contract per `(x_fc_device_serial)` (or per source sale line + when serial absent) — declarative `models.Constraint` / partial `models.Index`. + +### 5.3 New `fusion.repair.maintenance.visit` (the log) +A structured, queryable per‑visit record — *not* buried in chatter. +- `contract_id` (M2O, required), `technician_task_id` (M2O `fusion.technician.task`), + `repair_order_id` (M2O `repair.order`, the container), `partner_id`, `product_id`, `lot_id`. +- `visit_date`, `technician_id` (res.users), `state` (`scheduled/in_progress/done/no_show/cancelled`). +- `checklist_line_ids` (O2M to `fusion.repair.maintenance.checklist.line`: label, result + `pass/fail/na`, note) — items seeded **per equipment category** (lift checklist ≠ wheelchair + checklist). +- `findings` (Html, `Markup()`), `parts_note`, `x_fc_fee` (Monetary), `signature` (Binary), + `inspection_certificate_id` (M2O — set for `safety_critical` categories). +- "log/history" view = the list of visits per contract/unit (smart button on contract + partner). + +## 6. Enrollment — two paths + +### 6.1 Path A — new sales (fix the dead trigger) +Override `sale.order.action_confirm()` to call `_spawn_maintenance_contracts()` (reuse the existing +method; fix + wire it). For each confirmed line whose product/category has +`x_fc_maintenance_enabled` and a serial/lot: +- Create one `active` contract per unit (respect quantity), `x_fc_source='sale'`, + `x_fc_source_sale_line_id` set, serial captured. +- `next_due_date = (delivery/commitment date or date_order) + interval` (fallback chain handles + non‑ADP units lacking a delivery date). +- Resolve + snapshot `x_fc_maintenance_fee`. +- **Idempotent**: skip if an active contract already exists for the serial / sale line. + +### 6.2 Path B — backfill existing install base (one‑time wizard, idempotent) +`fusion.repair.maintenance.backfill.wizard`: +- **Scan** historical `sale.order.line` for products whose category/product is maintenance‑enabled and + were delivered. **Two unit‑identity regimes**, because lifts carry no serials (§3.3): + - **Serial‑tracked** (ADP wheelchairs/power chairs, via the `fusion_claims` serial/`device_type` data + — soft dep, guarded; map ADP `device_type` → maintenance category): require a serial, **dedup by serial**. + - **Non‑serial** (lifts — stair/porch/VPL/lift‑chair): do **NOT** require a serial. One contract per + **base‑unit line**, **dedup by (partner + maintainable product + source sale line)**. The per‑product + `x_fc_maintenance_enabled` flag is what includes base units and **excludes accessory lines** (curves, + rails, remotes, charging stations, rentals) — only the lift itself gets a contract, not its add‑ons. +- **Stagger** the first `next_due_date` across a configurable window (e.g. spread overdue units over + N weeks) so years of equipment don't all email on day one. +- **Dry‑run first**: produce a report (counts by category, # new vs already‑enrolled, # skipped for + missing serial/date, the stagger schedule). Nothing is created or emailed until the operator + approves and runs "Execute". +- Anchor fallback for units with no delivery date: invoice date → order date → today. + +## 7. Booking flow (the main build) + +### 7.1 Client self‑serve (no login) +1. Reminder email (existing branded template, **+ fee line added**) → tokenized link. +2. Public slot‑picker page (extend the existing `/repairs/maintenance/book/` route; replace + the date input). The page: + - Resolves the contract from the token; shows unit + **flat fee** ("$X + applicable tax"). + - Computes candidate technicians = users whose `x_fc_repair_skills` include the policy's + `x_fc_maintenance_skill_id`. + - Calls `fusion_tasks` `_get_available_gaps` / `_find_next_available_slot` per candidate tech over + the next ~2–3 weeks, ranked by **proximity** to the client address → presents a short list of + real open slots (date + window + implied tech). +3. Client picks a slot → POST confirm: + - **Re‑validate** the slot is still free (gap check) — if taken/expired, re‑render slots with a + gentle notice (prevents double‑booking). + - Create a `fusion.technician.task` (`task_type='maintenance'`) on that slot, **assigned to the + qualified tech** (auto‑assignment by availability+skill), linked to the contract. + - Spawn/link the maintenance‑type `repair.order` (container) + the `fusion.repair.maintenance.visit` + (state `scheduled`, checklist seeded from the category). + - Send the branded confirmation email (date/window/tech, fee, what to expect). + - Set `booking_repair_id` (dedup). +4. **No‑slot fallback:** if no qualified tech/slot in range → show "request a callback" → create an + office activity. Never a dead end. + +### 7.2 Office books on the client's behalf +- A **"Book maintenance"** action on the `fusion.repair.maintenance.contract` form opens the same + slot‑picker logic in the backend (office books while on the phone). +- The existing dispatch board remains available for manual scheduling/override. + +### 7.3 Token security fix +On `roll_next_due_date()`, **regenerate `booking_token`** (currently it is not regenerated, so an +old link stays valid across cycles). Old token → friendly "link expired" page. + +## 8. Cost & revenue + +- The **flat fee** (`x_fc_maintenance_fee`) is shown in **both** the reminder email and the + slot‑picker page, Canadian English, `$` + tax note. +- On booking, draft a priced line (SO/invoice) using `x_fc_maintenance_service_product_id` (or the + generic visit product) at the contract's fee. Payment options: **pay‑at‑door via `fusion_poynt`** + (existing `action_collect_payment` on the repair) or invoice after the visit. +- Recurring revenue = one priced visit per cycle; the roll‑forward arms the next cycle automatically. + (Pre‑paid annual plan upsell via the existing subscription engine is out of v1 — §11.) + +## 9. Maintenance log & the recurring loop + +- The technician fills the visit via the **extended visit‑report wizard** (existing tool) — checklist + results, findings, parts, signature — which writes the `fusion.repair.maintenance.visit` record. +- For `safety_critical` categories (lifts), completing the visit **issues an inspection certificate** + (reuse M1) and links it on the visit — the log doubles as compliance proof. +- On task `status='completed'` → existing **roll‑forward**: `last_service_date=today`, + `next_due_date += interval`, reset `last_reminder_band`, **regenerate token**, visit → `done`. +- Next cycle's reminder fires automatically when `next_due_date` re‑enters the 30‑day band. + +## 10. Office follow‑up crons (toggle‑gated, exist as config only today) +- **Unbooked**: reminder sent, no booking after N days → office call activity on the contract. +- **Overdue**: `next_due_date` passed with no completed visit in the cycle → escalation activity. +- Driven by the existing `ir.config_parameter` toggles in `data/ir_config_parameter_data.xml`. +- Per‑row **savepoint** isolation inside the cron loop (no `cr.commit()` in tests — CLAUDE.md #14). + +## 11. Out of scope (v1 — YAGNI) +- SMS reminders / two‑way SMS booking (needs `fusion_ringcentral`). +- Logged‑in `/my/equipment` client portal (X5). +- Pre‑paid annual maintenance‑plan auto‑upsell at booking. +- Full multi‑stop route optimization / batching (we use per‑tech availability + proximity ranking, + not a global optimizer). +- ADP funder re‑billing of maintenance (maintenance is private‑pay flat fee in v1). + +## 12. Error handling & edge cases +- **Double‑booking:** re‑validate the gap at confirm; lose the race → re‑show slots. +- **Token:** per‑cycle regeneration; invalid/expired/already‑booked → friendly pages (exist, extend). +- **No qualified tech / no slots:** callback fallback, not an error page. +- **Backfill:** dry‑run + report; strict serial dedup; stagger; fallback anchor chain; never email on + dry‑run. +- **Missing data:** units with no device_type/category → excluded from auto‑backfill, listed in the + report for manual enrollment. +- **Audit on failure paths** (if any "booking failed" row is written in an `except`): use a separate + `self.env.registry.cursor()` so it survives rollback (CLAUDE.md audit rule). +- **`message_post` HTML** bodies wrapped in `Markup()` (CLAUDE.md). + +## 13. Testing +`fusion_repairs/tests/` (none exist today). Local dev is **Community** and — because we chose +`fusion_tasks` over Enterprise `appointment` — the **entire feature is Community‑testable** on +`odoo-modsdev`. `TransactionCase` coverage: +- Contract spawn on `sale.order` confirm (enabled vs disabled category; quantity; idempotency). +- Backfill wizard: **two‑regime dedup** (serial for wheelchairs; partner+product+line for lifts), accessory‑line exclusion, stagger, dry‑run produces no records, anchor fallback. +- Booking: slot list comes from real gaps; confirm creates task+repair+visit; **double‑book guard**; + no‑slot fallback. +- Roll‑forward on completion: dates advance, band reset, **token regenerated**, visit → done. +- Crons: reminder bands; unbooked/overdue follow‑ups (savepoint isolation). +- Run: `docker exec odoo-modsdev-app odoo -d fusion-dev --test-enable --test-tags /fusion_repairs -u fusion_repairs --stop-after-init --http-port=0 --gevent-port=0`. + +## 14. Deployment & configuration +1. Land on local dev, full E2E + tests green. +2. **Deploy `fusion_repairs` to Westin** (`odoo-westin` / `westin-v19`) — the accepted bigger lift + (first production deploy of fusion_repairs; verify rate‑card numbers, ACLs, asset bundles). +3. **Configure** maintainable categories: `x_fc_maintenance_enabled`, interval, fee, skill, service + product — for lifts (stairlift/porch/lift chair) + power & manual wheelchairs. +4. Ensure technicians have `x_fc_repair_skills` + start addresses (for availability/routing). +5. Run the **backfill wizard dry‑run → review report → execute** (staggered). +6. Watch the first reminder/booking cycle; confirm emails, slots, task creation, completion → roll. + +## 15. Open items to verify at implementation (rule #1 — read live source) +- Exact representation of tech skills (`res.users.x_fc_repair_skills`) and how a category's required + skill maps to it (Selection vs M2O vs tag) — read fusion_repairs/fusion_tasks before modelling + `x_fc_maintenance_skill_id`. +- Signatures of `_find_next_available_slot` / `_get_available_gaps` (params, return shape, working + hours source) and whether they already account for travel windows. +- The visit‑report wizard's current fields/flow before extending it with the checklist. +- The inspection‑certificate issue API (how M1 creates a certificate) for the lift link. +- **Lift base sized** (§3.3): ~254 stairlift + ~30 porch/VPL + ~41 lift‑chair customers, but ~0 serials. + Still to verify: which exact products are **base units vs accessories** (so `x_fc_maintenance_enabled` + lands on base units only), plus the lift interval/fee per category. Lift products aren't yet tagged + with `fusion_repairs` categories on Westin (module not deployed there) — categorization is a deploy step. +- `fusion_claims` device_type → maintenance‑category mapping table for the wheelchair backfill. + +## 16. Build sequence (for the implementation plan) +1. **Policy + fee data model** (category fields, product override, contract extensions, constraints). +2. **Path A trigger** (wire `_spawn_maintenance_contracts` into `action_confirm`, fee resolution, anchor fallback) + tests. +3. **Cost in email** (add fee to the reminder template). +4. **Technician‑aware booking** (slot‑picker page + controller on `fusion_tasks` availability; task/repair/visit creation; double‑book guard; office action; token regen) + tests — the largest unit. +5. **Maintenance visit log + checklist** (model, per‑category seed, visit‑report‑wizard extension, inspection‑cert link) + tests. +6. **Backfill wizard** (scan/dedup/stagger/dry‑run; fusion_claims soft bridge) + tests. +7. **Office follow‑up crons** (unbooked/overdue) + tests. +8. **Deploy + configure + backfill** on Westin. diff --git a/docs/superpowers/specs/2026-06-02-nexacloud-odoo-billing-cutover-design.md b/docs/superpowers/specs/2026-06-02-nexacloud-odoo-billing-cutover-design.md new file mode 100644 index 00000000..5c60eac2 --- /dev/null +++ b/docs/superpowers/specs/2026-06-02-nexacloud-odoo-billing-cutover-design.md @@ -0,0 +1,101 @@ +# NexaCloud → Odoo Centralized Billing — Cutover (build-out · dual-run · gated flip) + +- **Date:** 2026-06-02 +- **Status:** Design approved — pending written-spec review +- **Author:** Design session (Claude + Gurpreet) +- **Parent spec:** [`2026-05-27-nexa-billing-centralized-design.md`](2026-05-27-nexa-billing-centralized-design.md) (architecture; this doc is its **phase #2** — the NexaCloud pilot) +- **Repos:** `K:\Github\Odoo-Modules\fusion_centralize_billing` (engine) + `K:\Github\Nexa-Cloud` (the NexaCloud adapter) +- **Hosts:** `odoo-nexa` (VM 315, Odoo 19 Enterprise, live DB `nexamain`); NexaCloud (LXC 102, app `192.168.1.250`, DB `192.168.1.50`) + +## 1. Goal + +Make Odoo (`fusion_centralize_billing` on `odoo-nexa`) the system of record for **NexaCloud** billing: build the engine pieces NexaCloud needs, import NexaCloud's active deployments as Odoo subscriptions, run Odoo in **shadow** alongside NexaCloud's existing Stripe billing for ≥1 cycle, reconcile to the cent, and then **flip** NexaCloud onto Odoo behind an explicit go/no-go gate. NexaCloud is the pilot; NexaDesk and NexaMaps follow in later increments. This does not touch Lago. + +## 2. Decisions locked (this session, 2026-06-02) + +1. **Sequence: NexaCloud first** (per parent spec), then NexaDesk, then NexaMaps. +2. **Granularity: one Odoo subscription per NexaCloud deployment** (mirrors `nexacloud` `subscriptions.deployment_id`; the existing usage-push and `fusion.billing.reconciliation` code already key per deployment via `x_fc_nexacloud_subscription_id`). +3. **Approach A: build → import → dual-run → gated flip**, all in this increment; the flip executes only after ≥1 green reconciliation cycle **and** explicit operator go-ahead. +4. **Go-forward billing only.** The importer sets each subscription's `next_invoice_date` so Odoo bills only future periods. Past NexaCloud periods are **never re-issued** (this is the exact failure mode of the 2026-05-27 Lago incident — see `lago-doublecharge-incident-2026-06` memory). + +## 3. Current state (recon, 2026-06-02) + +Engine is **installed** on `nexamain` (`fusion_centralize_billing` v19.0.1.1.0; deps `sale_subscription`, `payment_stripe`, `account_accountant` installed). Runtime rows: + +| Table | Rows | Read | +|---|---|---| +| `fusion_billing_service` | 1 | only `nexacloud`; **`webhook_url` empty** | +| `fusion_billing_account_link` | 7 | identities imported | +| `fusion_billing_metric` | 1 | (cpu_seconds) | +| `fusion_billing_charge` | **0** | no quota/overage pricing yet | +| `fusion_billing_usage` | **0** | nothing ingested | +| `fusion_billing_reconciliation` | **0** | dual-run never run | +| `fusion_billing_webhook` | **0** | control loop never fired | +| `sale_order` (`is_subscription`) | **0** | no subscriptions exist | + +Engine code status: `webhook.py` delivery engine (HMAC + backoff + dead-letter) is **complete** (its "TODO §8" header comment is stale); `usage.py` (idempotent upsert + pre-invoice rating cron + aggregation) and `reconciliation.py` (NexaCloud dual-run) are **complete**. `controllers/api.py` implements `/health`, `POST /customers`, `POST /usage`, `GET /plans`, `POST /subscriptions` only — the rest of parent-spec §7 is unimplemented (needed by NexaDesk, **not** NexaCloud). + +NexaCloud adapter is present but **INERT**: `config.py` `odoo_billing_enabled=False`, `odoo_billing_base_url`/`odoo_billing_api_key` empty; `usage_metering.py` pushes `cpu_seconds` only when enabled; `routers/odoo_billing.py` `/billing/webhooks/central` returns 404 when disabled; `services/odoo_billing_integration.py` is the (inert) receiver. Lago is paused (worker+clock stopped) and out of scope here. + +## 4. Scope + +### 4.1 Odoo side (`fusion_centralize_billing` + catalog data on `nexamain`) + +1. **Charge catalog (the main gap — currently 0).** + - NexaCloud plans/products → `product.template` + `sale.subscription.plan` (monthly), each tagged `plan_code` and a `product.default_code` of `NC-PLAN-` (reconciliation already filters plan lines on `default_code LIKE 'NC-PLAN-%'`). + - `cpu_seconds` metric (exists) → one `fusion.billing.charge` per plan: `included_quota` = the plan's bundled CPU-seconds, `price_per_unit`/`unit_batch` for overage derived from `usage_metering.HOURLY_RATES` (`cpu_per_core=$0.0075/core-hr` → per-cpu-second rate). Memory/disk are part of the flat plan today (not metered) — keep them flat unless a plan meters them. + - Throttle-removal fee and the CPU/RAM/disk/daily-backup **add-ons** → one-off invoice products / optional recurring add-on products tagged `NC-ADDON-`. + - HST: reuse native `account.tax` (13% ON); confirm the tax code matches what NexaCloud invoices apply today. +2. **Run the importer** (`wizards/import_wizard.py`): read the `nexacloud` DB → ensure `res.partner` + `account.link` for each active customer (7 exist; backfill any missing), and create **one shadow `sale.order` (`is_subscription=True`) per active deployment**, setting `x_fc_nexacloud_subscription_id`, `x_fc_nexacloud_plan_id`, the `NC-PLAN-*` line, and **`next_invoice_date` = the deployment's next real billing date** (go-forward only). Subscriptions start in shadow (draft/not auto-charging). +3. **Inbound API — add only what NexaCloud needs.** `POST /customers`, `POST /subscriptions`, `POST /usage`, `GET /plans` already exist. Add **subscription cancel** (`DELETE /subscriptions/:id` → terminate the `sale.order`) for NexaCloud's deprovision path. All other parent-spec §7 endpoints stay deferred to the NexaDesk increment. +4. **Wire the control loop:** set the `nexacloud` `fusion.billing.service.webhook_url` → `https://api.vps.nexasystems.ca/api/v1/billing/webhooks/central`, and confirm `cron` schedules for `usage._cron_rate_open_periods` and `webhook._cron_dispatch` are enabled. + +### 4.2 NexaCloud side (`Nexa-Cloud` repo) + +4. **Configure + activate the adapter:** set `odoo_billing_base_url=https://erp.nexasystems.ca/api/billing/v1`, `odoo_billing_api_key=`. Keep `odoo_billing_enabled` staged so usage push + the webhook receiver activate for shadow without yet disabling local Stripe. +5. **Identity + subscription sync:** on deployment create / cancel, call Odoo `POST /customers` and `POST /subscriptions` / cancel (usage push already exists in `usage_metering.py`). Send a stable `external_id` (NexaCloud user id) and `subscription_external_id` (deployment/subscription id) — namespaced, to avoid the cross-app `external_id` collision noted in `nexa-billing-architecture`. +6. **Reconciliation feed:** push NexaCloud's **actual** charged amount per (deployment, period) so `reconciliation._reconcile_rows` can diff Odoo-computed vs NexaCloud-actual. (Source: NexaCloud's own invoices/`usage_records`.) +7. **Activate the control-loop receiver:** `routers/odoo_billing.py` `/billing/webhooks/central` → `services/odoo_billing_integration.py` maps `invoice.payment_failed`→suspend (existing `network_isolation`/`throttle_checker`/`resource_manager`), `invoice.payment_succeeded`/`subscription.reactivated`→restore, `subscription.terminated`→deprovision. Verify HMAC against the `nexacloud` service `webhook_secret`. + +### 4.3 Dual-run (shadow, ≥1 billing cycle) + +NexaCloud keeps charging via its own Stripe. Odoo computes **draft, uncharged** invoices from imported subscriptions + pushed `cpu_seconds`. `fusion.billing.reconciliation` upserts one row per `(service, deployment, period)` with `odoo_amount` vs `external_amount` and a cent-level `delta`. Operators investigate every `delta` row until a full cycle is `match` within tolerance (default $0.01). + +### 4.4 Gated flip (after ≥1 green cycle + explicit go) + +1. NexaCloud **stops its own Stripe charging** (disable the charge path in `billing_service.py` / scheduler `billing_payment` + invoice generation) and treats Odoo as SoR. +2. Odoo subscriptions move from shadow → active; native subscription invoicing charges the **shared** Stripe account `acct_1ShlA9IkwUB1dVox` (saved cards carry over — no re-collection). +3. Webhooks drive suspend/restore/deprovision. Past NexaCloud invoices remain archived (PDF/opening balance) — **not** re-issued. +4. Rollback: re-enable NexaCloud local billing + set Odoo subs back to shadow (no data destroyed). + +## 5. Out of scope (YAGNI for this increment) + +- NexaDesk and NexaMaps adapters (later increments) and the inbound-API endpoints only they need (`/invoices` family, `/credit_notes`, `/catalog`, `/checkout_url`, `PUT /subscriptions` plan-change/upgrade). +- Lago changes or decommission (Lago stays paused; its remediation is tracked separately). +- Customer-portal redesign — use native Odoo portal as-is. +- Metering memory/disk/bandwidth (stay flat unless a NexaCloud plan already meters them). + +## 6. Success criteria + +- A NexaCloud deployment is created as an Odoo subscription `sale.order` (`is_subscription=True`) via `POST /subscriptions`, resolving one `res.partner` through `account.link`. +- `cpu_seconds` counters pushed to `/usage` aggregate (idempotent) into a **draft** invoice with quota → free, overage priced, HST applied — matching NexaCloud's own computed amount within $0.01. +- A simulated `invoice.payment_failed` webhook reaches `/billing/webhooks/central` (valid HMAC) and triggers a NexaCloud suspend; `invoice.payment_succeeded` restores. +- `fusion.billing.reconciliation` is `match` for **every** active deployment across ≥1 full cycle before any flip. +- Re-sending the same usage counter (same `idempotency_key`) does **not** double-bill (constraint + upsert verified by test). +- Post-flip: Odoo charges go-forward periods only; **zero** past-period re-issues. + +## 7. Risks & open items + +- **Re-billing regression (highest):** the importer MUST set `next_invoice_date` go-forward and must not finalize/charge historical periods. Add an explicit test asserting no invoice is generated for any period earlier than import time. (Direct mitigation of the 2026-05-27 Lago incident.) +- **Odoo 19 correctness:** read live reference files from the container (`docker exec odoo-nexa-app cat …`) for `sale.order` subscription flow, `account.move`, `payment_stripe` before coding internals — never from memory (per `K:\Github\CLAUDE.md`). +- **Idempotency:** `fusion.billing.usage` unique `(subscription, metric, idempotency_key)` already enforces it; the NexaCloud key is `nexacloud:cpu_seconds::` — keep it stable across retries. +- **external_id namespacing:** NexaCloud must send namespaced ids so it can never collide with NexaDesk/NexaMaps in the shared Odoo identity space. +- **Reconciliation source:** confirm where NexaCloud's "actual amount" comes from (its `invoices`/`usage_records`) and that it's net of the same HST basis Odoo uses. +- **Flip switch safety:** disabling NexaCloud's local Stripe must be a single, reversible config flag, and the `billing_payment` scheduler job must be guarded so it can't charge once Odoo is SoR. +- **Spec/branch target:** `Odoo-Modules` is on `feat/fusion-login-audit` with `-wt-portal`/`-wt-fm` worktrees; confirm the branch for engine changes; NexaCloud changes land on its own branch (note: pushing `Nexa-Cloud` `main` auto-deploys to prod). + +## 8. Test plan + +- Odoo unit tests (extend `fusion_centralize_billing/tests/`): catalog→charge mapping; usage aggregation + quota/overage; idempotent re-push; reconciliation match/delta; webhook HMAC sign/verify + backoff; **importer go-forward `next_invoice_date` assertion**. +- NexaCloud tests: adapter customer/subscription calls; `/billing/webhooks/central` HMAC verify + suspend/restore/deprovision dispatch; reconciliation-amount push. +- Dual-run acceptance: a full cycle of `match` reconciliation on real (or staged) deployments before the flip gate. diff --git a/fusion_authorizer_portal/.DS_Store b/fusion_authorizer_portal/.DS_Store deleted file mode 100644 index 1a29dce9..00000000 Binary files a/fusion_authorizer_portal/.DS_Store and /dev/null differ diff --git a/fusion_authorizer_portal/graphify-out/GRAPH_REPORT.md b/fusion_authorizer_portal/graphify-out/GRAPH_REPORT.md deleted file mode 100644 index 76156c9b..00000000 --- a/fusion_authorizer_portal/graphify-out/GRAPH_REPORT.md +++ /dev/null @@ -1,883 +0,0 @@ -# Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal (2026-04-22) - -## Corpus Check -- 33 files · ~40,589 words -- Verdict: corpus is large enough that graph structure adds value. - -## Summary -- 470 nodes · 550 edges · 123 communities detected -- Extraction: 89% EXTRACTED · 11% INFERRED · 0% AMBIGUOUS · INFERRED: 60 edges (avg confidence: 0.76) -- 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]] - -## God Nodes (most connected - your core abstractions) -1. `create()` - 22 edges -2. `FusionAssessment` - 20 edges -3. `AuthorizerPortal` - 19 edges -4. `ResPartner` - 16 edges -5. `accessibility_assessment_save()` - 12 edges -6. `FusionAccessibilityAssessment` - 11 edges -7. `selectField()` - 11 edges -8. `PDFTemplateFiller` - 10 edges -9. `SaleOrder` - 10 edges -10. `FusionPdfTemplate` - 9 edges - -## Surprising Connections (you probably didn't know these) -- `create_field()` --calls--> `create()` [INFERRED] - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py → /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py -- `FusionPdfTemplatePreview` --uses--> `PDFTemplateFiller` [INFERRED] - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py → /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py -- `FusionPdfTemplateField` --uses--> `PDFTemplateFiller` [INFERRED] - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py → /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py -- `Generate PNG preview images from the PDF using poppler (pdftoppm). Falls` --uses--> `PDFTemplateFiller` [INFERRED] - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py → /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py -- `Set template to active.` --uses--> `PDFTemplateFiller` [INFERRED] - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py → /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py - -## Communities - -### Community 0 - "Community 0" -Cohesion: 0.05 -Nodes (29): accessibility_bathroom(), accessibility_ceiling_lift(), accessibility_ramp(), accessibility_stairlift_curved(), accessibility_stairlift_straight(), accessibility_tub_cutout(), accessibility_vpl(), home() (+21 more) - -### Community 1 - "Community 1" -Cohesion: 0.06 -Nodes (20): Assign role-specific portal groups to a portal user based on contact checkboxes., Assign backend groups to an internal user based on contact checkboxes. A, Grant portal access to this partner, or update permissions for existing users., Create a role-specific welcome Knowledge article for the new portal user., Send a professional portal invitation email to the partner. Gen, Resend portal invitation email to an existing portal user., Open the list of assigned sale orders, Open the list of assessments for this partner (+12 more) - -### Community 2 - "Community 2" -Cohesion: 0.07 -Nodes (19): create(), FusionAssessment, Format assessment data as HTML table for chatter, Format wheelchair specifications for the sale order notes (legacy), Generate document records for signed pages, Send email notifications when assessment is completed, View related documents, View the created sale order (+11 more) - -### Community 3 - "Community 3" -Cohesion: 0.08 -Nodes (15): create(), FusionAccessibilityAssessment, Complete the assessment and create a Sale Order. 2026-04 portal audit f, Add a tag to the sale order based on assessment type, Copy assessment photos to sale order chatter, Send email notification to office about assessment completion, Schedule a follow-up activity for the sales rep, Find or create a partner for the client (+7 more) - -### Community 4 - "Community 4" -Cohesion: 0.08 -Nodes (20): Complete express assessment and create draft sale order (no signatures required), CustomerPortal, Ensure all module views are active after install/update. Odoo silently deac, _reactivate_views(), AssessmentPortal, portal_assessment_express_edit(), portal_assessment_express_new(), portal_assessment_express_save() (+12 more) - -### Community 5 - "Community 5" -Cohesion: 0.09 -Nodes (14): authorizer_cases_search(), sales_rep_cases_search(), get_authorizer_portal_cases(), get_sales_rep_portal_cases(), Open composer to send message to authorizer only, Send email when an authorizer is assigned to the order, View portal documents, Get data for portal display, excluding sensitive information (+6 more) - -### Community 6 - "Community 6" -Cohesion: 0.12 -Nodes (14): preview_pdf(), _draw_field(), fill_template(), PDFTemplateFiller, Generic PDF template filler. Works with any template, any number of pages., create(), FusionPdfTemplate, FusionPdfTemplateField (+6 more) - -### Community 7 - "Community 7" -Cohesion: 0.11 -Nodes (14): accessibility_assessment_save(), AuthorizerPortal, Portal controller for Authorizers (OTs/Therapists), Parse straight stair lift specific fields, Parse curved stair lift specific fields, Parse VPL specific fields, Parse ceiling lift specific fields, Parse ramp specific fields (+6 more) - -### Community 8 - "Community 8" -Cohesion: 0.21 -Nodes (22): buildDataKeyOptions(), buildDataKeysSidebar(), init(), jsonrpc(), loadFields(), normalize(), onFieldDragStart(), renderFieldMarker() (+14 more) - -### Community 9 - "Community 9" -Cohesion: 0.29 -Nodes (11): checkClockStatus(), ensureModal(), getLocation(), hideModal(), isTechnicianPortal(), logLocation(), showDeniedBanner(), showModal() (+3 more) - -### Community 10 - "Community 10" -Cohesion: 0.18 -Nodes (3): ADPDocument, Download the document, Get the download URL for portal access - -### Community 11 - "Community 11" -Cohesion: 0.2 -Nodes (5): create_field(), FusionPdfEditorController, Controller for the PDF field position visual editor., update_field(), upload_preview_image() - -### Community 12 - "Community 12" -Cohesion: 0.38 -Nodes (4): page11_sign_form(), page11_sign_submit(), Page11PublicSignController, Look up and validate a signing request by token. - -### Community 13 - "Community 13" -Cohesion: 0.4 -Nodes (1): migrate() - -### Community 14 - "Community 14" -Cohesion: 0.5 -Nodes (1): AuthorizerComment - -### Community 15 - "Community 15" -Cohesion: 0.83 -Nodes (3): _detectAndSaveTimezone(), _getCookie(), start() - -### Community 16 - "Community 16" -Cohesion: 0.67 -Nodes (1): FusionLoanerCheckoutAssessment - -### Community 17 - "Community 17" -Cohesion: 0.67 -Nodes (0): - -### Community 18 - "Community 18" -Cohesion: 1.0 -Nodes (2): registerPushSubscription(), urlBase64ToUint8Array() - -### Community 19 - "Community 19" -Cohesion: 1.0 -Nodes (0): - -### Community 20 - "Community 20" -Cohesion: 1.0 -Nodes (0): - -### Community 21 - "Community 21" -Cohesion: 1.0 -Nodes (0): - -### Community 22 - "Community 22" -Cohesion: 1.0 -Nodes (0): - -### Community 23 - "Community 23" -Cohesion: 1.0 -Nodes (1): Fill a PDF template by overlaying text/checkmarks/signatures at configured posit - -### Community 24 - "Community 24" -Cohesion: 1.0 -Nodes (1): Draw a single field onto the reportlab canvas. Args: c: rep - -### Community 25 - "Community 25" -Cohesion: 1.0 -Nodes (1): Override create to generate reference number - -### Community 26 - "Community 26" -Cohesion: 1.0 -Nodes (1): Get authorizer from x_fc_authorizer_id field - -### Community 27 - "Community 27" -Cohesion: 1.0 -Nodes (1): Get cases for authorizer portal with optional search - -### Community 28 - "Community 28" -Cohesion: 1.0 -Nodes (1): Get cases for sales rep portal with optional search - -### Community 29 - "Community 29" -Cohesion: 1.0 -Nodes (1): Override create to handle revision numbering - -### Community 30 - "Community 30" -Cohesion: 1.0 -Nodes (1): Get documents for a sale order, optionally filtered by type - -### Community 31 - "Community 31" -Cohesion: 1.0 -Nodes (1): Get all revisions of a specific document type - -### Community 32 - "Community 32" -Cohesion: 1.0 -Nodes (1): Override create to set author from current user if not provided - -### Community 33 - "Community 33" -Cohesion: 1.0 -Nodes (1): Kanban group expansion — always show all 6 workflow states. - -### Community 34 - "Community 34" -Cohesion: 1.0 -Nodes (1): Straight stair lift: (steps × nose_to_nose) + 13" top landing - -### Community 35 - "Community 35" -Cohesion: 1.0 -Nodes (1): Use manual override if provided, otherwise use calculated - -### Community 36 - "Community 36" -Cohesion: 1.0 -Nodes (1): Curved stair lift calculation: - 12" per step - 16" per curve - -### Community 37 - "Community 37" -Cohesion: 1.0 -Nodes (1): Use manual override if provided, otherwise use calculated - -### Community 38 - "Community 38" -Cohesion: 1.0 -Nodes (1): Ontario Building Code: 12 inches length per 1 inch height (1:12 ratio) - -### Community 39 - "Community 39" -Cohesion: 1.0 -Nodes (1): Landing required every 30 feet (360 inches) - -### Community 40 - "Community 40" -Cohesion: 1.0 -Nodes (1): Total length including landings (5 feet = 60 inches each) - -### Community 41 - "Community 41" -Cohesion: 1.0 -Nodes (1): Compute portal access status based on user account and login history. - -### Community 42 - "Community 42" -Cohesion: 1.0 -Nodes (1): Count sale orders where this partner is the authorizer - -### Community 43 - "Community 43" -Cohesion: 1.0 -Nodes (1): Count assessments where this partner is involved - -### Community 44 - "Community 44" -Cohesion: 1.0 -Nodes (1): Count sale orders assigned to this partner as delivery technician - -### Community 45 - "Community 45" -Cohesion: 1.0 -Nodes (0): - -### Community 46 - "Community 46" -Cohesion: 1.0 -Nodes (0): - -### Community 47 - "Community 47" -Cohesion: 1.0 -Nodes (0): - -### Community 48 - "Community 48" -Cohesion: 1.0 -Nodes (0): - -### Community 49 - "Community 49" -Cohesion: 1.0 -Nodes (0): - -### Community 50 - "Community 50" -Cohesion: 1.0 -Nodes (1): Display the Page 11 signing form. - -### Community 51 - "Community 51" -Cohesion: 1.0 -Nodes (1): Process the submitted Page 11 signature. - -### Community 52 - "Community 52" -Cohesion: 1.0 -Nodes (1): Download the signed Page 11 PDF. - -### Community 53 - "Community 53" -Cohesion: 1.0 -Nodes (1): Start a new assessment - -### Community 54 - "Community 54" -Cohesion: 1.0 -Nodes (1): View/edit an assessment - -### Community 55 - "Community 55" -Cohesion: 1.0 -Nodes (1): Save assessment data (create or update) - -### Community 56 - "Community 56" -Cohesion: 1.0 -Nodes (1): Signature capture page - -### Community 57 - "Community 57" -Cohesion: 1.0 -Nodes (1): Save a signature (AJAX) - -### Community 58 - "Community 58" -Cohesion: 1.0 -Nodes (1): Complete the assessment - -### Community 59 - "Community 59" -Cohesion: 1.0 -Nodes (1): Start a new express assessment (Page 1 - Equipment Selection) - -### Community 60 - "Community 60" -Cohesion: 1.0 -Nodes (1): Continue/edit an express assessment - -### Community 61 - "Community 61" -Cohesion: 1.0 -Nodes (1): Save express assessment data (create or update) - -### Community 62 - "Community 62" -Cohesion: 1.0 -Nodes (1): Public page for booking an accessibility assessment. - -### Community 63 - "Community 63" -Cohesion: 1.0 -Nodes (1): Process assessment booking form submission. - -### Community 64 - "Community 64" -Cohesion: 1.0 -Nodes (1): Render the visual field editor for a PDF template. - -### Community 65 - "Community 65" -Cohesion: 1.0 -Nodes (1): Return all fields for a template. - -### Community 66 - "Community 66" -Cohesion: 1.0 -Nodes (1): Update a field's position or properties. - -### Community 67 - "Community 67" -Cohesion: 1.0 -Nodes (1): Create a new field on a template. - -### Community 68 - "Community 68" -Cohesion: 1.0 -Nodes (1): Delete a field from a template. - -### Community 69 - "Community 69" -Cohesion: 1.0 -Nodes (1): Return the preview image URL for a specific page. - -### Community 70 - "Community 70" -Cohesion: 1.0 -Nodes (1): Upload a preview image for a template page directly from the editor. - -### Community 71 - "Community 71" -Cohesion: 1.0 -Nodes (1): Generate a preview filled PDF with sample data. - -### Community 72 - "Community 72" -Cohesion: 1.0 -Nodes (1): Auto-save browser-detected timezone to the user profile if not already set. - -### Community 73 - "Community 73" -Cohesion: 1.0 -Nodes (1): Override home to add ADP posting info for Fusion users - -### Community 74 - "Community 74" -Cohesion: 1.0 -Nodes (1): Authorizer dashboard - simplified mobile-first view - -### Community 75 - "Community 75" -Cohesion: 1.0 -Nodes (1): List of cases assigned to the authorizer - -### Community 76 - "Community 76" -Cohesion: 1.0 -Nodes (1): AJAX search endpoint for real-time search - -### Community 77 - "Community 77" -Cohesion: 1.0 -Nodes (1): Add a comment to a case - posts to sale order chatter and emails salesperson - -### Community 78 - "Community 78" -Cohesion: 1.0 -Nodes (1): Upload a document for a case - -### Community 79 - "Community 79" -Cohesion: 1.0 -Nodes (1): Download an attachment from sale order (original application, xml, proof of deli - -### Community 80 - "Community 80" -Cohesion: 1.0 -Nodes (1): View an approval photo - -### Community 81 - "Community 81" -Cohesion: 1.0 -Nodes (1): Sales rep dashboard with search and filters - -### Community 82 - "Community 82" -Cohesion: 1.0 -Nodes (1): List of cases for the sales rep - -### Community 83 - "Community 83" -Cohesion: 1.0 -Nodes (1): AJAX search endpoint for sales rep real-time search - -### Community 84 - "Community 84" -Cohesion: 1.0 -Nodes (1): View a specific case for sales rep - -### Community 85 - "Community 85" -Cohesion: 1.0 -Nodes (1): Add a comment to a case (sales rep) - posts to sale order chatter and emails aut - -### Community 86 - "Community 86" -Cohesion: 1.0 -Nodes (1): List of funding claims for the client - -### Community 87 - "Community 87" -Cohesion: 1.0 -Nodes (1): View a specific funding claim - -### Community 88 - "Community 88" -Cohesion: 1.0 -Nodes (1): Download a document from a funding claim - -### Community 89 - "Community 89" -Cohesion: 1.0 -Nodes (1): Download proof of delivery from a funding claim - -### Community 90 - "Community 90" -Cohesion: 1.0 -Nodes (1): Technician dashboard - today's schedule with timeline. - -### Community 91 - "Community 91" -Cohesion: 1.0 -Nodes (1): List of all tasks for the technician. - -### Community 92 - "Community 92" -Cohesion: 1.0 -Nodes (1): View a specific technician task. - -### Community 93 - "Community 93" -Cohesion: 1.0 -Nodes (1): Add notes (and optional photos) to a completed task. :param notes: text - -### Community 94 - "Community 94" -Cohesion: 1.0 -Nodes (1): Handle task status changes (start, complete, en_route, cancel). Location - -### Community 95 - "Community 95" -Cohesion: 1.0 -Nodes (1): Transcribe voice recording using OpenAI Whisper, translate to English. - -### Community 96 - "Community 96" -Cohesion: 1.0 -Nodes (1): Use GPT to clean up and format raw notes text. - -### Community 97 - "Community 97" -Cohesion: 1.0 -Nodes (1): Format transcription with GPT and complete the task. - -### Community 98 - "Community 98" -Cohesion: 1.0 -Nodes (1): Next day preparation view. - -### Community 99 - "Community 99" -Cohesion: 1.0 -Nodes (1): View schedule for a specific date. - -### Community 100 - "Community 100" -Cohesion: 1.0 -Nodes (1): Admin map view showing latest technician locations using Google Maps. - -### Community 101 - "Community 101" -Cohesion: 1.0 -Nodes (1): Log the technician's current GPS location. - -### Community 102 - "Community 102" -Cohesion: 1.0 -Nodes (1): Check if the current technician is clocked in. Returns {clocked_in: boo - -### Community 103 - "Community 103" -Cohesion: 1.0 -Nodes (1): Save the technician's personal start location. - -### Community 104 - "Community 104" -Cohesion: 1.0 -Nodes (1): Register a push notification subscription. - -### Community 105 - "Community 105" -Cohesion: 1.0 -Nodes (1): Legacy: List of deliveries for the technician (redirects to tasks). - -### Community 106 - "Community 106" -Cohesion: 1.0 -Nodes (1): View a specific delivery for technician (legacy, still works). - -### Community 107 - "Community 107" -Cohesion: 1.0 -Nodes (1): POD signature capture page - accessible by technicians and sales reps - -### Community 108 - "Community 108" -Cohesion: 1.0 -Nodes (1): Save POD signature via AJAX - -### Community 109 - "Community 109" -Cohesion: 1.0 -Nodes (1): Task-level POD signature capture page (works for all tasks including shadow). - -### Community 110 - "Community 110" -Cohesion: 1.0 -Nodes (1): Save POD signature directly on a task. - -### Community 111 - "Community 111" -Cohesion: 1.0 -Nodes (1): Show the accessibility assessment type selector - -### Community 112 - "Community 112" -Cohesion: 1.0 -Nodes (1): List all accessibility assessments for the current user (sales rep or authorizer - -### Community 113 - "Community 113" -Cohesion: 1.0 -Nodes (1): Straight stair lift assessment form - -### Community 114 - "Community 114" -Cohesion: 1.0 -Nodes (1): Curved stair lift assessment form - -### Community 115 - "Community 115" -Cohesion: 1.0 -Nodes (1): Vertical Platform Lift assessment form - -### Community 116 - "Community 116" -Cohesion: 1.0 -Nodes (1): Ceiling Lift assessment form - -### Community 117 - "Community 117" -Cohesion: 1.0 -Nodes (1): Custom Ramp assessment form - -### Community 118 - "Community 118" -Cohesion: 1.0 -Nodes (1): Bathroom Modification assessment form - -### Community 119 - "Community 119" -Cohesion: 1.0 -Nodes (1): Tub Cutout assessment form - -### Community 120 - "Community 120" -Cohesion: 1.0 -Nodes (1): Save an accessibility assessment and optionally create a Sale Order - -### Community 121 - "Community 121" -Cohesion: 1.0 -Nodes (1): Render the rental pickup inspection form for the technician. - -### Community 122 - "Community 122" -Cohesion: 1.0 -Nodes (1): Save the rental inspection results. - -## Knowledge Gaps -- **177 isolated node(s):** `Ensure all module views are active after install/update. Odoo silently deac`, `Generic PDF template filler. Works with any template, any number of pages.`, `Fill a PDF template by overlaying text/checkmarks/signatures at configured posit`, `Draw a single field onto the reportlab canvas. Args: c: rep`, `Override create to generate reference number` (+172 more) - These have ≤1 connection - possible missing edges or undocumented components. -- **Thin community `Community 19`** (1 nodes): `__init__.py` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 20`** (1 nodes): `__init__.py` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 21`** (1 nodes): `__init__.py` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 22`** (1 nodes): `__manifest__.py` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 23`** (1 nodes): `Fill a PDF template by overlaying text/checkmarks/signatures at configured posit` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 24`** (1 nodes): `Draw a single field onto the reportlab canvas. Args: c: rep` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 25`** (1 nodes): `Override create to generate reference number` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 26`** (1 nodes): `Get authorizer from x_fc_authorizer_id field` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 27`** (1 nodes): `Get cases for authorizer portal with optional search` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 28`** (1 nodes): `Get cases for sales rep portal with optional search` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 29`** (1 nodes): `Override create to handle revision numbering` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 30`** (1 nodes): `Get documents for a sale order, optionally filtered by type` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 31`** (1 nodes): `Get all revisions of a specific document type` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 32`** (1 nodes): `Override create to set author from current user if not provided` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 33`** (1 nodes): `Kanban group expansion — always show all 6 workflow states.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 34`** (1 nodes): `Straight stair lift: (steps × nose_to_nose) + 13" top landing` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 35`** (1 nodes): `Use manual override if provided, otherwise use calculated` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 36`** (1 nodes): `Curved stair lift calculation: - 12" per step - 16" per curve` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 37`** (1 nodes): `Use manual override if provided, otherwise use calculated` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 38`** (1 nodes): `Ontario Building Code: 12 inches length per 1 inch height (1:12 ratio)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 39`** (1 nodes): `Landing required every 30 feet (360 inches)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 40`** (1 nodes): `Total length including landings (5 feet = 60 inches each)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 41`** (1 nodes): `Compute portal access status based on user account and login history.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 42`** (1 nodes): `Count sale orders where this partner is the authorizer` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 43`** (1 nodes): `Count assessments where this partner is involved` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 44`** (1 nodes): `Count sale orders assigned to this partner as delivery technician` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 45`** (1 nodes): `assessment_form.js` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 46`** (1 nodes): `technician_sw.js` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 47`** (1 nodes): `loaner_portal.js` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 48`** (1 nodes): `signature_pad.js` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 49`** (1 nodes): `portal_search.js` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 50`** (1 nodes): `Display the Page 11 signing form.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 51`** (1 nodes): `Process the submitted Page 11 signature.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 52`** (1 nodes): `Download the signed Page 11 PDF.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 53`** (1 nodes): `Start a new assessment` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 54`** (1 nodes): `View/edit an assessment` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 55`** (1 nodes): `Save assessment data (create or update)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 56`** (1 nodes): `Signature capture page` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 57`** (1 nodes): `Save a signature (AJAX)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 58`** (1 nodes): `Complete the assessment` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 59`** (1 nodes): `Start a new express assessment (Page 1 - Equipment Selection)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 60`** (1 nodes): `Continue/edit an express assessment` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 61`** (1 nodes): `Save express assessment data (create or update)` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 62`** (1 nodes): `Public page for booking an accessibility assessment.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 63`** (1 nodes): `Process assessment booking form submission.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 64`** (1 nodes): `Render the visual field editor for a PDF template.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 65`** (1 nodes): `Return all fields for a template.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 66`** (1 nodes): `Update a field's position or properties.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 67`** (1 nodes): `Create a new field on a template.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 68`** (1 nodes): `Delete a field from a template.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 69`** (1 nodes): `Return the preview image URL for a specific page.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 70`** (1 nodes): `Upload a preview image for a template page directly from the editor.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 71`** (1 nodes): `Generate a preview filled PDF with sample data.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 72`** (1 nodes): `Auto-save browser-detected timezone to the user profile if not already set.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 73`** (1 nodes): `Override home to add ADP posting info for Fusion users` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 74`** (1 nodes): `Authorizer dashboard - simplified mobile-first view` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 75`** (1 nodes): `List of cases assigned to the authorizer` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 76`** (1 nodes): `AJAX search endpoint for real-time search` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 77`** (1 nodes): `Add a comment to a case - posts to sale order chatter and emails salesperson` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 78`** (1 nodes): `Upload a document for a case` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 79`** (1 nodes): `Download an attachment from sale order (original application, xml, proof of deli` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 80`** (1 nodes): `View an approval photo` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 81`** (1 nodes): `Sales rep dashboard with search and filters` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 82`** (1 nodes): `List of cases for the sales rep` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 83`** (1 nodes): `AJAX search endpoint for sales rep real-time search` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 84`** (1 nodes): `View a specific case for sales rep` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 85`** (1 nodes): `Add a comment to a case (sales rep) - posts to sale order chatter and emails aut` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 86`** (1 nodes): `List of funding claims for the client` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 87`** (1 nodes): `View a specific funding claim` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 88`** (1 nodes): `Download a document from a funding claim` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 89`** (1 nodes): `Download proof of delivery from a funding claim` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 90`** (1 nodes): `Technician dashboard - today's schedule with timeline.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 91`** (1 nodes): `List of all tasks for the technician.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 92`** (1 nodes): `View a specific technician task.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 93`** (1 nodes): `Add notes (and optional photos) to a completed task. :param notes: text` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 94`** (1 nodes): `Handle task status changes (start, complete, en_route, cancel). Location` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 95`** (1 nodes): `Transcribe voice recording using OpenAI Whisper, translate to English.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 96`** (1 nodes): `Use GPT to clean up and format raw notes text.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 97`** (1 nodes): `Format transcription with GPT and complete the task.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 98`** (1 nodes): `Next day preparation view.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 99`** (1 nodes): `View schedule for a specific date.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 100`** (1 nodes): `Admin map view showing latest technician locations using Google Maps.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 101`** (1 nodes): `Log the technician's current GPS location.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 102`** (1 nodes): `Check if the current technician is clocked in. Returns {clocked_in: boo` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 103`** (1 nodes): `Save the technician's personal start location.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 104`** (1 nodes): `Register a push notification subscription.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 105`** (1 nodes): `Legacy: List of deliveries for the technician (redirects to tasks).` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 106`** (1 nodes): `View a specific delivery for technician (legacy, still works).` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 107`** (1 nodes): `POD signature capture page - accessible by technicians and sales reps` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 108`** (1 nodes): `Save POD signature via AJAX` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 109`** (1 nodes): `Task-level POD signature capture page (works for all tasks including shadow).` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 110`** (1 nodes): `Save POD signature directly on a task.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 111`** (1 nodes): `Show the accessibility assessment type selector` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 112`** (1 nodes): `List all accessibility assessments for the current user (sales rep or authorizer` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 113`** (1 nodes): `Straight stair lift assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 114`** (1 nodes): `Curved stair lift assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 115`** (1 nodes): `Vertical Platform Lift assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 116`** (1 nodes): `Ceiling Lift assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 117`** (1 nodes): `Custom Ramp assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 118`** (1 nodes): `Bathroom Modification assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 119`** (1 nodes): `Tub Cutout assessment form` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 120`** (1 nodes): `Save an accessibility assessment and optionally create a Sale Order` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 121`** (1 nodes): `Render the rental pickup inspection form for the technician.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 122`** (1 nodes): `Save the rental inspection results.` - Too small to be a meaningful cluster - may be noise or needs more connections extracted. - -## Suggested Questions -_Questions this graph is uniquely positioned to answer:_ - -- **Why does `create()` connect `Community 3` to `Community 0`, `Community 1`, `Community 4`, `Community 7`, `Community 11`?** - _High betweenness centrality (0.080) - this node is a cross-community bridge._ -- **Why does `FusionAssessment` connect `Community 2` to `Community 4`?** - _High betweenness centrality (0.059) - this node is a cross-community bridge._ -- **Why does `AuthorizerPortal` connect `Community 7` to `Community 0`, `Community 4`?** - _High betweenness centrality (0.047) - this node is a cross-community bridge._ -- **Are the 17 inferred relationships involving `create()` (e.g. with `._generate_tutorial_articles()` and `.action_grant_portal_access()`) actually correct?** - _`create()` has 17 INFERRED edges - model-reasoned connections that need verification._ -- **Are the 2 inferred relationships involving `accessibility_assessment_save()` (e.g. with `create()` and `.action_complete()`) actually correct?** - _`accessibility_assessment_save()` has 2 INFERRED edges - model-reasoned connections that need verification._ -- **What connects `Ensure all module views are active after install/update. Odoo silently deac`, `Generic PDF template filler. Works with any template, any number of pages.`, `Fill a PDF template by overlaying text/checkmarks/signatures at configured posit` to the rest of the system?** - _177 weakly-connected nodes found - possible documentation gaps or missing edges._ -- **Should `Community 0` be split into smaller, more focused modules?** - _Cohesion score 0.05 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/046056455412ebee936412c1240a69f937f190344b64ec0454b6063195d45271.json b/fusion_authorizer_portal/graphify-out/cache/046056455412ebee936412c1240a69f937f190344b64ec0454b6063195d45271.json deleted file mode 100644 index b63718b8..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/046056455412ebee936412c1240a69f937f190344b64ec0454b6063195d45271.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "label": "authorizer_comment.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L1"}, {"id": "authorizer_comment_authorizercomment", "label": "AuthorizerComment", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L9"}, {"id": "authorizer_comment_compute_display_name", "label": "_compute_display_name()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L70"}, {"id": "authorizer_comment_create", "label": "create()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L78"}, {"id": "authorizer_comment_rationale_79", "label": "Override create to set author from current user if not provided", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L79"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "target": "authorizer_comment_authorizercomment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "target": "authorizer_comment_compute_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L70", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", "target": "authorizer_comment_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L78", "weight": 1.0}, {"source": "authorizer_comment_rationale_79", "target": "authorizer_comment_authorizercomment_create", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L79", "weight": 1.0}], "raw_calls": [{"caller_nid": "authorizer_comment_compute_display_name", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L73"}, {"caller_nid": "authorizer_comment_compute_display_name", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L75"}, {"caller_nid": "authorizer_comment_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L81"}, {"caller_nid": "authorizer_comment_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L83"}, {"caller_nid": "authorizer_comment_create", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", "source_location": "L85"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/0dbc415dbdb5043766ee65132be139c99ffcfe5603aa07e4e59a40c420352ea6.json b/fusion_authorizer_portal/graphify-out/cache/0dbc415dbdb5043766ee65132be139c99ffcfe5603aa07e4e59a40c420352ea6.json deleted file mode 100644 index b9cb70de..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/0dbc415dbdb5043766ee65132be139c99ffcfe5603aa07e4e59a40c420352ea6.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "label": "portal_main.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1"}, {"id": "portal_main_authorizerportal", "label": "AuthorizerPortal", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L14"}, {"id": "customerportal", "label": "CustomerPortal", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "portal_main_authorizerportal_get_user_tz", "label": "._get_user_tz()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L17"}, {"id": "portal_main_timezone_auto_detect", "label": "timezone_auto_detect()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L42"}, {"id": "portal_main_home", "label": "home()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L57"}, {"id": "portal_main_authorizerportal_prepare_home_portal_values", "label": "._prepare_home_portal_values()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L91"}, {"id": "portal_main_authorizerportal_get_adp_posting_info", "label": "._get_adp_posting_info()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L138"}, {"id": "portal_main_authorizer_dashboard", "label": "authorizer_dashboard()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L211"}, {"id": "portal_main_authorizer_cases", "label": "authorizer_cases()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L292"}, {"id": "portal_main_authorizer_cases_search", "label": "authorizer_cases_search()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L370"}, {"id": "portal_main_authorizer_case_detail", "label": "authorizer_case_detail()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L401"}, {"id": "portal_main_authorizer_add_comment", "label": "authorizer_add_comment()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L461"}, {"id": "portal_main_authorizer_upload_document", "label": "authorizer_upload_document()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L510"}, {"id": "portal_main_authorizer_download_document", "label": "authorizer_download_document()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L547"}, {"id": "portal_main_authorizer_download_attachment", "label": "authorizer_download_attachment()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L590"}, {"id": "portal_main_authorizer_view_photo", "label": "authorizer_view_photo()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L648"}, {"id": "portal_main_sales_rep_dashboard", "label": "sales_rep_dashboard()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L691"}, {"id": "portal_main_sales_rep_cases", "label": "sales_rep_cases()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L764"}, {"id": "portal_main_sales_rep_cases_search", "label": "sales_rep_cases_search()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L824"}, {"id": "portal_main_sales_rep_case_detail", "label": "sales_rep_case_detail()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L856"}, {"id": "portal_main_sales_rep_add_comment", "label": "sales_rep_add_comment()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L916"}, {"id": "portal_main_client_funding_claims", "label": "client_funding_claims()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L981"}, {"id": "portal_main_client_funding_claim_detail", "label": "client_funding_claim_detail()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1024"}, {"id": "portal_main_client_download_document", "label": "client_download_document()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1061"}, {"id": "portal_main_client_download_proof_of_delivery", "label": "client_download_proof_of_delivery()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1094"}, {"id": "portal_main_authorizerportal_get_clock_status_data", "label": "._get_clock_status_data()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1128"}, {"id": "portal_main_authorizerportal_check_technician_access", "label": "._check_technician_access()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1179"}, {"id": "portal_main_technician_dashboard", "label": "technician_dashboard()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1195"}, {"id": "portal_main_technician_tasks", "label": "technician_tasks()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1275"}, {"id": "portal_main_technician_task_detail", "label": "technician_task_detail()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1329"}, {"id": "portal_main_technician_task_add_notes", "label": "technician_task_add_notes()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1388"}, {"id": "portal_main_technician_task_action", "label": "technician_task_action()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1533"}, {"id": "portal_main_technician_voice_transcribe", "label": "technician_voice_transcribe()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1609"}, {"id": "portal_main_technician_ai_format", "label": "technician_ai_format()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1674"}, {"id": "portal_main_technician_voice_complete", "label": "technician_voice_complete()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1734"}, {"id": "portal_main_technician_tomorrow", "label": "technician_tomorrow()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1833"}, {"id": "portal_main_technician_schedule_date", "label": "technician_schedule_date()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1872"}, {"id": "portal_main_technician_location_map", "label": "technician_location_map()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1904"}, {"id": "portal_main_technician_location_log", "label": "technician_location_log()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1922"}, {"id": "portal_main_technician_clock_status", "label": "technician_clock_status()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1938"}, {"id": "portal_main_technician_save_start_location", "label": "technician_save_start_location()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1957"}, {"id": "portal_main_technician_push_subscribe", "label": "technician_push_subscribe()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1971"}, {"id": "portal_main_technician_deliveries", "label": "technician_deliveries()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1981"}, {"id": "portal_main_technician_delivery_detail", "label": "technician_delivery_detail()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1986"}, {"id": "portal_main_pod_signature_page", "label": "pod_signature_page()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2008"}, {"id": "portal_main_pod_save_signature", "label": "pod_save_signature()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2074"}, {"id": "portal_main_task_pod_signature_page", "label": "task_pod_signature_page()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2226"}, {"id": "portal_main_task_pod_save_signature", "label": "task_pod_save_signature()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2252"}, {"id": "portal_main_authorizerportal_generate_signed_pod_pdf", "label": "._generate_signed_pod_pdf()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2311"}, {"id": "portal_main_accessibility_assessment_selector", "label": "accessibility_assessment_selector()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2354"}, {"id": "portal_main_accessibility_assessment_list", "label": "accessibility_assessment_list()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2372"}, {"id": "portal_main_accessibility_stairlift_straight", "label": "accessibility_stairlift_straight()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2413"}, {"id": "portal_main_accessibility_stairlift_curved", "label": "accessibility_stairlift_curved()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2418"}, {"id": "portal_main_accessibility_vpl", "label": "accessibility_vpl()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2423"}, {"id": "portal_main_accessibility_ceiling_lift", "label": "accessibility_ceiling_lift()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2428"}, {"id": "portal_main_accessibility_ramp", "label": "accessibility_ramp()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2433"}, {"id": "portal_main_accessibility_bathroom", "label": "accessibility_bathroom()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2438"}, {"id": "portal_main_accessibility_tub_cutout", "label": "accessibility_tub_cutout()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2443"}, {"id": "portal_main_authorizerportal_render_accessibility_form", "label": "._render_accessibility_form()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2447"}, {"id": "portal_main_accessibility_assessment_save", "label": "accessibility_assessment_save()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2483"}, {"id": "portal_main_authorizerportal_parse_stairlift_straight_fields", "label": "._parse_stairlift_straight_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2593"}, {"id": "portal_main_authorizerportal_parse_stairlift_curved_fields", "label": "._parse_stairlift_curved_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2605"}, {"id": "portal_main_authorizerportal_parse_vpl_fields", "label": "._parse_vpl_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2625"}, {"id": "portal_main_authorizerportal_parse_ceiling_lift_fields", "label": "._parse_ceiling_lift_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2640"}, {"id": "portal_main_authorizerportal_parse_ramp_fields", "label": "._parse_ramp_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2650"}, {"id": "portal_main_authorizerportal_parse_bathroom_fields", "label": "._parse_bathroom_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2660"}, {"id": "portal_main_authorizerportal_parse_tub_cutout_fields", "label": "._parse_tub_cutout_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2666"}, {"id": "portal_main_authorizerportal_attach_accessibility_photos", "label": "._attach_accessibility_photos()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2674"}, {"id": "portal_main_authorizerportal_attach_accessibility_video", "label": "._attach_accessibility_video()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2714"}, {"id": "portal_main_rental_inspection_page", "label": "rental_inspection_page()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2769"}, {"id": "portal_main_rental_inspection_submit", "label": "rental_inspection_submit()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2795"}, {"id": "portal_main_rationale_15", "label": "Portal controller for Authorizers (OTs/Therapists)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L15"}, {"id": "portal_main_rationale_18", "label": "Return a pytz timezone from the best available source. Priority: user tz", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L18"}, {"id": "portal_main_rationale_43", "label": "Auto-save browser-detected timezone to the user profile if not already set.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L43"}, {"id": "portal_main_rationale_58", "label": "Override home to add ADP posting info for Fusion users", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L58"}, {"id": "portal_main_rationale_92", "label": "Add authorizer/sales rep counts to portal home", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L92"}, {"id": "portal_main_rationale_139", "label": "Get ADP posting schedule information for the portal home.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L139"}, {"id": "portal_main_rationale_212", "label": "Authorizer dashboard - simplified mobile-first view", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L212"}, {"id": "portal_main_rationale_293", "label": "List of cases assigned to the authorizer", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L293"}, {"id": "portal_main_rationale_371", "label": "AJAX search endpoint for real-time search", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L371"}, {"id": "portal_main_rationale_462", "label": "Add a comment to a case - posts to sale order chatter and emails salesperson", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L462"}, {"id": "portal_main_rationale_511", "label": "Upload a document for a case", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L511"}, {"id": "portal_main_rationale_591", "label": "Download an attachment from sale order (original application, xml, proof of deli", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L591"}, {"id": "portal_main_rationale_649", "label": "View an approval photo", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L649"}, {"id": "portal_main_rationale_692", "label": "Sales rep dashboard with search and filters", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L692"}, {"id": "portal_main_rationale_765", "label": "List of cases for the sales rep", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L765"}, {"id": "portal_main_rationale_825", "label": "AJAX search endpoint for sales rep real-time search", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L825"}, {"id": "portal_main_rationale_857", "label": "View a specific case for sales rep", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L857"}, {"id": "portal_main_rationale_917", "label": "Add a comment to a case (sales rep) - posts to sale order chatter and emails aut", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L917"}, {"id": "portal_main_rationale_967", "label": "Add client funding claims count to portal home", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L967"}, {"id": "portal_main_rationale_982", "label": "List of funding claims for the client", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L982"}, {"id": "portal_main_rationale_1025", "label": "View a specific funding claim", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1025"}, {"id": "portal_main_rationale_1062", "label": "Download a document from a funding claim", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1062"}, {"id": "portal_main_rationale_1095", "label": "Download proof of delivery from a funding claim", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1095"}, {"id": "portal_main_rationale_1129", "label": "Get clock in/out status for the current portal user.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1129"}, {"id": "portal_main_rationale_1180", "label": "Check if current user is a technician portal user.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1180"}, {"id": "portal_main_rationale_1196", "label": "Technician dashboard - today's schedule with timeline.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1196"}, {"id": "portal_main_rationale_1276", "label": "List of all tasks for the technician.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1276"}, {"id": "portal_main_rationale_1330", "label": "View a specific technician task.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1330"}, {"id": "portal_main_rationale_1389", "label": "Add notes (and optional photos) to a completed task. :param notes: text", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1389"}, {"id": "portal_main_rationale_1534", "label": "Handle task status changes (start, complete, en_route, cancel). Location", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1534"}, {"id": "portal_main_rationale_1610", "label": "Transcribe voice recording using OpenAI Whisper, translate to English.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1610"}, {"id": "portal_main_rationale_1675", "label": "Use GPT to clean up and format raw notes text.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1675"}, {"id": "portal_main_rationale_1735", "label": "Format transcription with GPT and complete the task.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1735"}, {"id": "portal_main_rationale_1834", "label": "Next day preparation view.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1834"}, {"id": "portal_main_rationale_1873", "label": "View schedule for a specific date.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1873"}, {"id": "portal_main_rationale_1905", "label": "Admin map view showing latest technician locations using Google Maps.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1905"}, {"id": "portal_main_rationale_1923", "label": "Log the technician's current GPS location.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1923"}, {"id": "portal_main_rationale_1939", "label": "Check if the current technician is clocked in. Returns {clocked_in: boo", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1939"}, {"id": "portal_main_rationale_1958", "label": "Save the technician's personal start location.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1958"}, {"id": "portal_main_rationale_1972", "label": "Register a push notification subscription.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1972"}, {"id": "portal_main_rationale_1982", "label": "Legacy: List of deliveries for the technician (redirects to tasks).", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1982"}, {"id": "portal_main_rationale_1987", "label": "View a specific delivery for technician (legacy, still works).", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1987"}, {"id": "portal_main_rationale_2009", "label": "POD signature capture page - accessible by technicians and sales reps", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2009"}, {"id": "portal_main_rationale_2075", "label": "Save POD signature via AJAX", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2075"}, {"id": "portal_main_rationale_2227", "label": "Task-level POD signature capture page (works for all tasks including shadow).", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2227"}, {"id": "portal_main_rationale_2253", "label": "Save POD signature directly on a task.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2253"}, {"id": "portal_main_rationale_2312", "label": "Generate a signed POD PDF with the signature embedded. Args:", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2312"}, {"id": "portal_main_rationale_2355", "label": "Show the accessibility assessment type selector", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2355"}, {"id": "portal_main_rationale_2373", "label": "List all accessibility assessments for the current user (sales rep or authorizer", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2373"}, {"id": "portal_main_rationale_2414", "label": "Straight stair lift assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2414"}, {"id": "portal_main_rationale_2419", "label": "Curved stair lift assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2419"}, {"id": "portal_main_rationale_2424", "label": "Vertical Platform Lift assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2424"}, {"id": "portal_main_rationale_2429", "label": "Ceiling Lift assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2429"}, {"id": "portal_main_rationale_2434", "label": "Custom Ramp assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2434"}, {"id": "portal_main_rationale_2439", "label": "Bathroom Modification assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2439"}, {"id": "portal_main_rationale_2444", "label": "Tub Cutout assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2444"}, {"id": "portal_main_rationale_2448", "label": "Render an accessibility assessment form", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2448"}, {"id": "portal_main_rationale_2484", "label": "Save an accessibility assessment and optionally create a Sale Order", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2484"}, {"id": "portal_main_rationale_2594", "label": "Parse straight stair lift specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2594"}, {"id": "portal_main_rationale_2606", "label": "Parse curved stair lift specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2606"}, {"id": "portal_main_rationale_2626", "label": "Parse VPL specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2626"}, {"id": "portal_main_rationale_2641", "label": "Parse ceiling lift specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2641"}, {"id": "portal_main_rationale_2651", "label": "Parse ramp specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2651"}, {"id": "portal_main_rationale_2661", "label": "Parse bathroom modification specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2661"}, {"id": "portal_main_rationale_2667", "label": "Parse tub cutout specific fields", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2667"}, {"id": "portal_main_rationale_2675", "label": "Attach photos to the accessibility assessment Args:", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2675"}, {"id": "portal_main_rationale_2715", "label": "Attach a video to the accessibility assessment Args:", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2715"}, {"id": "portal_main_rationale_2770", "label": "Render the rental pickup inspection form for the technician.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2770"}, {"id": "portal_main_rationale_2796", "label": "Save the rental inspection results.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2796"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "odoo_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "odoo_addons_portal_controllers_portal", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "pytz", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizerportal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L14", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "customerportal", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L14", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_get_user_tz", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L17", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_timezone_auto_detect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L42", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_home", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L57", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_prepare_home_portal_values", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L91", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_get_adp_posting_info", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L138", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L211", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_cases", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L292", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_cases_search", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L370", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_case_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L401", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_add_comment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L461", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_upload_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L510", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_download_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L547", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_download_attachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L590", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_authorizer_view_photo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L648", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_sales_rep_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L691", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_sales_rep_cases", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L764", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_sales_rep_cases_search", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L824", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_sales_rep_case_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L856", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_sales_rep_add_comment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L916", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_prepare_home_portal_values", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L966", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_client_funding_claims", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L981", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_client_funding_claim_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1024", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_client_download_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1061", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_client_download_proof_of_delivery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1094", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_get_clock_status_data", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1128", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_check_technician_access", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1179", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1195", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1275", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_task_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1329", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_task_add_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1388", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_task_action", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1533", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_voice_transcribe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1609", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_ai_format", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1674", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_voice_complete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1734", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_tomorrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1833", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_schedule_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1872", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_location_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1904", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_location_log", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1922", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_clock_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1938", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_save_start_location", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1957", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_push_subscribe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1971", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_deliveries", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1981", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_technician_delivery_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1986", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_pod_signature_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2008", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_pod_save_signature", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2074", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_task_pod_signature_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2226", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_task_pod_save_signature", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2252", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_generate_signed_pod_pdf", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2311", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_assessment_selector", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2354", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_assessment_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2372", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_stairlift_straight", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2413", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_stairlift_curved", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2418", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_vpl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2423", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_ceiling_lift", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2428", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_ramp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2433", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_bathroom", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2438", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_tub_cutout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2443", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2447", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_accessibility_assessment_save", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2483", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_stairlift_straight_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2593", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_stairlift_curved_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2605", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_vpl_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2625", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_ceiling_lift_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2640", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_ramp_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2650", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_bathroom_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2660", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_parse_tub_cutout_fields", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2666", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_attach_accessibility_photos", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2674", "weight": 1.0}, {"source": "portal_main_authorizerportal", "target": "portal_main_authorizerportal_attach_accessibility_video", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2714", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_rental_inspection_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2769", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", "target": "portal_main_rental_inspection_submit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2795", "weight": 1.0}, {"source": "portal_main_home", "target": "portal_main_authorizerportal_get_adp_posting_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L66", "weight": 1.0}, {"source": "portal_main_home", "target": "portal_main_authorizerportal_get_clock_status_data", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L68", "weight": 1.0}, {"source": "portal_main_authorizerportal_prepare_home_portal_values", "target": "portal_main_authorizerportal_get_adp_posting_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L134", "weight": 1.0}, {"source": "portal_main_authorizerportal_get_adp_posting_info", "target": "portal_main_authorizerportal_get_user_tz", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L154", "weight": 1.0}, {"source": "portal_main_sales_rep_dashboard", "target": "portal_main_authorizerportal_get_clock_status_data", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L760", "weight": 1.0}, {"source": "portal_main_authorizerportal_get_clock_status_data", "target": "portal_main_authorizerportal_get_user_tz", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1155", "weight": 1.0}, {"source": "portal_main_technician_dashboard", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1197", "weight": 1.0}, {"source": "portal_main_technician_dashboard", "target": "portal_main_authorizerportal_get_clock_status_data", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1254", "weight": 1.0}, {"source": "portal_main_technician_tasks", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1277", "weight": 1.0}, {"source": "portal_main_technician_task_detail", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1331", "weight": 1.0}, {"source": "portal_main_technician_task_add_notes", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1394", "weight": 1.0}, {"source": "portal_main_technician_task_add_notes", "target": "portal_main_authorizerportal_get_user_tz", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1442", "weight": 1.0}, {"source": "portal_main_technician_task_action", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1536", "weight": 1.0}, {"source": "portal_main_technician_voice_transcribe", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1611", "weight": 1.0}, {"source": "portal_main_technician_ai_format", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1676", "weight": 1.0}, {"source": "portal_main_technician_voice_complete", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1736", "weight": 1.0}, {"source": "portal_main_technician_tomorrow", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1835", "weight": 1.0}, {"source": "portal_main_technician_schedule_date", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1874", "weight": 1.0}, {"source": "portal_main_technician_location_log", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1924", "weight": 1.0}, {"source": "portal_main_technician_clock_status", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1944", "weight": 1.0}, {"source": "portal_main_technician_save_start_location", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1959", "weight": 1.0}, {"source": "portal_main_technician_delivery_detail", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1988", "weight": 1.0}, {"source": "portal_main_pod_save_signature", "target": "portal_main_authorizerportal_generate_signed_pod_pdf", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2143", "weight": 1.0}, {"source": "portal_main_task_pod_signature_page", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2228", "weight": 1.0}, {"source": "portal_main_task_pod_save_signature", "target": "portal_main_authorizerportal_check_technician_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2254", "weight": 1.0}, {"source": "portal_main_accessibility_stairlift_straight", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2415", "weight": 1.0}, {"source": "portal_main_accessibility_stairlift_curved", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2420", "weight": 1.0}, {"source": "portal_main_accessibility_vpl", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2425", "weight": 1.0}, {"source": "portal_main_accessibility_ceiling_lift", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2430", "weight": 1.0}, {"source": "portal_main_accessibility_ramp", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2435", "weight": 1.0}, {"source": "portal_main_accessibility_bathroom", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2440", "weight": 1.0}, {"source": "portal_main_accessibility_tub_cutout", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2445", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_stairlift_straight_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2524", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_stairlift_curved_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2526", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_vpl_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2528", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_ceiling_lift_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2530", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_ramp_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2532", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_bathroom_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2534", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_parse_tub_cutout_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2536", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_attach_accessibility_photos", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2549", "weight": 1.0}, {"source": "portal_main_accessibility_assessment_save", "target": "portal_main_authorizerportal_attach_accessibility_video", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2565", "weight": 1.0}, {"source": "portal_main_rationale_15", "target": "portal_main_authorizerportal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L15", "weight": 1.0}, {"source": "portal_main_rationale_18", "target": "portal_main_authorizerportal_get_user_tz", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L18", "weight": 1.0}, {"source": "portal_main_rationale_43", "target": "portal_main_authorizerportal_timezone_auto_detect", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L43", "weight": 1.0}, {"source": "portal_main_rationale_58", "target": "portal_main_authorizerportal_home", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L58", "weight": 1.0}, {"source": "portal_main_rationale_92", "target": "portal_main_authorizerportal_prepare_home_portal_values", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L92", "weight": 1.0}, {"source": "portal_main_rationale_139", "target": "portal_main_authorizerportal_get_adp_posting_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L139", "weight": 1.0}, {"source": "portal_main_rationale_212", "target": "portal_main_authorizerportal_authorizer_dashboard", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L212", "weight": 1.0}, {"source": "portal_main_rationale_293", "target": "portal_main_authorizerportal_authorizer_cases", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L293", "weight": 1.0}, {"source": "portal_main_rationale_371", "target": "portal_main_authorizerportal_authorizer_cases_search", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L371", "weight": 1.0}, {"source": "portal_main_rationale_462", "target": "portal_main_authorizerportal_authorizer_add_comment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L462", "weight": 1.0}, {"source": "portal_main_rationale_511", "target": "portal_main_authorizerportal_authorizer_upload_document", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L511", "weight": 1.0}, {"source": "portal_main_rationale_591", "target": "portal_main_authorizerportal_authorizer_download_attachment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L591", "weight": 1.0}, {"source": "portal_main_rationale_649", "target": "portal_main_authorizerportal_authorizer_view_photo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L649", "weight": 1.0}, {"source": "portal_main_rationale_692", "target": "portal_main_authorizerportal_sales_rep_dashboard", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L692", "weight": 1.0}, {"source": "portal_main_rationale_765", "target": "portal_main_authorizerportal_sales_rep_cases", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L765", "weight": 1.0}, {"source": "portal_main_rationale_825", "target": "portal_main_authorizerportal_sales_rep_cases_search", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L825", "weight": 1.0}, {"source": "portal_main_rationale_857", "target": "portal_main_authorizerportal_sales_rep_case_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L857", "weight": 1.0}, {"source": "portal_main_rationale_917", "target": "portal_main_authorizerportal_sales_rep_add_comment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L917", "weight": 1.0}, {"source": "portal_main_rationale_967", "target": "portal_main_authorizerportal_prepare_home_portal_values", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L967", "weight": 1.0}, {"source": "portal_main_rationale_982", "target": "portal_main_authorizerportal_client_funding_claims", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L982", "weight": 1.0}, {"source": "portal_main_rationale_1025", "target": "portal_main_authorizerportal_client_funding_claim_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1025", "weight": 1.0}, {"source": "portal_main_rationale_1062", "target": "portal_main_authorizerportal_client_download_document", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1062", "weight": 1.0}, {"source": "portal_main_rationale_1095", "target": "portal_main_authorizerportal_client_download_proof_of_delivery", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1095", "weight": 1.0}, {"source": "portal_main_rationale_1129", "target": "portal_main_authorizerportal_get_clock_status_data", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1129", "weight": 1.0}, {"source": "portal_main_rationale_1180", "target": "portal_main_authorizerportal_check_technician_access", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1180", "weight": 1.0}, {"source": "portal_main_rationale_1196", "target": "portal_main_authorizerportal_technician_dashboard", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1196", "weight": 1.0}, {"source": "portal_main_rationale_1276", "target": "portal_main_authorizerportal_technician_tasks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1276", "weight": 1.0}, {"source": "portal_main_rationale_1330", "target": "portal_main_authorizerportal_technician_task_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1330", "weight": 1.0}, {"source": "portal_main_rationale_1389", "target": "portal_main_authorizerportal_technician_task_add_notes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1389", "weight": 1.0}, {"source": "portal_main_rationale_1534", "target": "portal_main_authorizerportal_technician_task_action", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1534", "weight": 1.0}, {"source": "portal_main_rationale_1610", "target": "portal_main_authorizerportal_technician_voice_transcribe", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1610", "weight": 1.0}, {"source": "portal_main_rationale_1675", "target": "portal_main_authorizerportal_technician_ai_format", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1675", "weight": 1.0}, {"source": "portal_main_rationale_1735", "target": "portal_main_authorizerportal_technician_voice_complete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1735", "weight": 1.0}, {"source": "portal_main_rationale_1834", "target": "portal_main_authorizerportal_technician_tomorrow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1834", "weight": 1.0}, {"source": "portal_main_rationale_1873", "target": "portal_main_authorizerportal_technician_schedule_date", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1873", "weight": 1.0}, {"source": "portal_main_rationale_1905", "target": "portal_main_authorizerportal_technician_location_map", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1905", "weight": 1.0}, {"source": "portal_main_rationale_1923", "target": "portal_main_authorizerportal_technician_location_log", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1923", "weight": 1.0}, {"source": "portal_main_rationale_1939", "target": "portal_main_authorizerportal_technician_clock_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1939", "weight": 1.0}, {"source": "portal_main_rationale_1958", "target": "portal_main_authorizerportal_technician_save_start_location", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1958", "weight": 1.0}, {"source": "portal_main_rationale_1972", "target": "portal_main_authorizerportal_technician_push_subscribe", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1972", "weight": 1.0}, {"source": "portal_main_rationale_1982", "target": "portal_main_authorizerportal_technician_deliveries", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1982", "weight": 1.0}, {"source": "portal_main_rationale_1987", "target": "portal_main_authorizerportal_technician_delivery_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1987", "weight": 1.0}, {"source": "portal_main_rationale_2009", "target": "portal_main_authorizerportal_pod_signature_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2009", "weight": 1.0}, {"source": "portal_main_rationale_2075", "target": "portal_main_authorizerportal_pod_save_signature", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2075", "weight": 1.0}, {"source": "portal_main_rationale_2227", "target": "portal_main_authorizerportal_task_pod_signature_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2227", "weight": 1.0}, {"source": "portal_main_rationale_2253", "target": "portal_main_authorizerportal_task_pod_save_signature", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2253", "weight": 1.0}, {"source": "portal_main_rationale_2312", "target": "portal_main_authorizerportal_generate_signed_pod_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2312", "weight": 1.0}, {"source": "portal_main_rationale_2355", "target": "portal_main_authorizerportal_accessibility_assessment_selector", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2355", "weight": 1.0}, {"source": "portal_main_rationale_2373", "target": "portal_main_authorizerportal_accessibility_assessment_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2373", "weight": 1.0}, {"source": "portal_main_rationale_2414", "target": "portal_main_authorizerportal_accessibility_stairlift_straight", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2414", "weight": 1.0}, {"source": "portal_main_rationale_2419", "target": "portal_main_authorizerportal_accessibility_stairlift_curved", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2419", "weight": 1.0}, {"source": "portal_main_rationale_2424", "target": "portal_main_authorizerportal_accessibility_vpl", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2424", "weight": 1.0}, {"source": "portal_main_rationale_2429", "target": "portal_main_authorizerportal_accessibility_ceiling_lift", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2429", "weight": 1.0}, {"source": "portal_main_rationale_2434", "target": "portal_main_authorizerportal_accessibility_ramp", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2434", "weight": 1.0}, {"source": "portal_main_rationale_2439", "target": "portal_main_authorizerportal_accessibility_bathroom", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2439", "weight": 1.0}, {"source": "portal_main_rationale_2444", "target": "portal_main_authorizerportal_accessibility_tub_cutout", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2444", "weight": 1.0}, {"source": "portal_main_rationale_2448", "target": "portal_main_authorizerportal_render_accessibility_form", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2448", "weight": 1.0}, {"source": "portal_main_rationale_2484", "target": "portal_main_authorizerportal_accessibility_assessment_save", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2484", "weight": 1.0}, {"source": "portal_main_rationale_2594", "target": "portal_main_authorizerportal_parse_stairlift_straight_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2594", "weight": 1.0}, {"source": "portal_main_rationale_2606", "target": "portal_main_authorizerportal_parse_stairlift_curved_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2606", "weight": 1.0}, {"source": "portal_main_rationale_2626", "target": "portal_main_authorizerportal_parse_vpl_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2626", "weight": 1.0}, {"source": "portal_main_rationale_2641", "target": "portal_main_authorizerportal_parse_ceiling_lift_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2641", "weight": 1.0}, {"source": "portal_main_rationale_2651", "target": "portal_main_authorizerportal_parse_ramp_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2651", "weight": 1.0}, {"source": "portal_main_rationale_2661", "target": "portal_main_authorizerportal_parse_bathroom_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2661", "weight": 1.0}, {"source": "portal_main_rationale_2667", "target": "portal_main_authorizerportal_parse_tub_cutout_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2667", "weight": 1.0}, {"source": "portal_main_rationale_2675", "target": "portal_main_authorizerportal_attach_accessibility_photos", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2675", "weight": 1.0}, {"source": "portal_main_rationale_2715", "target": "portal_main_authorizerportal_attach_accessibility_video", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2715", "weight": 1.0}, {"source": "portal_main_rationale_2770", "target": "portal_main_authorizerportal_rental_inspection_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2770", "weight": 1.0}, {"source": "portal_main_rationale_2796", "target": "portal_main_authorizerportal_rental_inspection_submit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2796", "weight": 1.0}], "raw_calls": [{"caller_nid": "portal_main_authorizerportal_get_user_tz", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L24"}, {"caller_nid": "portal_main_authorizerportal_get_user_tz", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L24"}, {"caller_nid": "portal_main_authorizerportal_get_user_tz", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L30"}, {"caller_nid": "portal_main_authorizerportal_get_user_tz", "callee": "timezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L36"}, {"caller_nid": "portal_main_timezone_auto_detect", "callee": "timezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L50"}, {"caller_nid": "portal_main_timezone_auto_detect", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L53"}, {"caller_nid": "portal_main_timezone_auto_detect", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L53"}, {"caller_nid": "portal_main_home", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L62"}, {"caller_nid": "portal_main_home", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L65"}, {"caller_nid": "portal_main_home", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L67"}, {"caller_nid": "portal_main_home", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L68"}, {"caller_nid": "portal_main_home", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L74"}, {"caller_nid": "portal_main_home", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L74"}, {"caller_nid": "portal_main_home", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L81"}, {"caller_nid": "portal_main_home", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L82"}, {"caller_nid": "portal_main_home", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L83"}, {"caller_nid": "portal_main_home", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L84"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L93"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L98"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L98"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L106"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L106"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L115"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L115"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L119"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L119"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L126"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L126"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L134"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L142"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L145"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L146"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L146"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "fromisoformat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L149"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "date", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L151"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L155"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "astimezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L156"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "date", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L157"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L165"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L169"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "weekday", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L173"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "weekday", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L174"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L176"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "range", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L181"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L182"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "isoformat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L183"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L184"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L186"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L188"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L191"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L198"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L199"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L201"}, {"caller_nid": "portal_main_authorizerportal_get_adp_posting_info", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L204"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L216"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L218"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L219"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L225"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L228"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L231"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L231"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L237"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L248"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L253"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L255"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L258"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L266"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L269"}, {"caller_nid": "portal_main_authorizer_dashboard", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L289"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L297"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L299"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L315"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "AND", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L327"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L331"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L332"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L333"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L334"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L336"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L339"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L340"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L349"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L358"}, {"caller_nid": "portal_main_authorizer_cases", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L367"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L377"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L380"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "get_authorizer_portal_cases", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L381"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L385"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L389"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L391"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L391"}, {"caller_nid": "portal_main_authorizer_cases_search", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L392"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L406"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L409"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L409"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L410"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L411"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L411"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L413"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L416"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L416"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L423"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L423"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L449"}, {"caller_nid": "portal_main_authorizer_case_detail", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L458"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L466"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L468"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L469"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L472"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L472"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L473"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L474"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L474"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L477"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L478"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "message_notify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L488"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L490"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L490"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L497"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L497"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L500"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L505"}, {"caller_nid": "portal_main_authorizer_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L507"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L515"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L518"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L521"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L521"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L522"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L523"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L523"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L529"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L530"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L532"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L532"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L542"}, {"caller_nid": "portal_main_authorizer_upload_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L544"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L552"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L555"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L555"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L556"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L557"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L557"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L567"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L567"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L569"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L572"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L575"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L580"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L585"}, {"caller_nid": "portal_main_authorizer_download_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L586"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L595"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L598"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L598"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L599"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L600"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L600"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L608"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L608"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L619"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L619"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L623"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L623"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L624"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L624"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L626"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L626"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L627"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L630"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L633"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L638"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L643"}, {"caller_nid": "portal_main_authorizer_download_attachment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L644"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L653"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L656"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L656"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L657"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L658"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L658"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L666"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L666"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L669"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L669"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L670"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L671"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L671"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L673"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L675"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L680"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L685"}, {"caller_nid": "portal_main_authorizer_view_photo", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L686"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L697"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L699"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L700"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L705"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L706"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L707"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L708"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "copy", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L711"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L715"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L733"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L737"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L741"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L760"}, {"caller_nid": "portal_main_sales_rep_dashboard", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L761"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L770"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L772"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "AND", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L788"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L792"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L793"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L794"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L795"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L797"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L800"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L801"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L810"}, {"caller_nid": "portal_main_sales_rep_cases", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L821"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L832"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L835"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "get_sales_rep_portal_cases", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L836"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L840"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L844"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L846"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L846"}, {"caller_nid": "portal_main_sales_rep_cases_search", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L847"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L862"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L865"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L865"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L866"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L867"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L867"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L869"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L872"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L872"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L878"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L878"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L904"}, {"caller_nid": "portal_main_sales_rep_case_detail", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L913"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L922"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L924"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L925"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L928"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L928"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L929"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L930"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L930"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L933"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L934"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "message_notify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L943"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L945"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L945"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L952"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L952"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L955"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L960"}, {"caller_nid": "portal_main_sales_rep_add_comment", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L962"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L968"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L973"}, {"caller_nid": "portal_main_authorizerportal_prepare_home_portal_values", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L973"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L984"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L994"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L995"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L996"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L998"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1001"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1002"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1011"}, {"caller_nid": "portal_main_client_funding_claims", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1021"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1029"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1029"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1030"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1031"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1031"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1033"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1041"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1041"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1048"}, {"caller_nid": "portal_main_client_funding_claim_detail", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1058"}, {"caller_nid": "portal_main_client_download_document", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1066"}, {"caller_nid": "portal_main_client_download_document", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1066"}, {"caller_nid": "portal_main_client_download_document", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1067"}, {"caller_nid": "portal_main_client_download_document", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1068"}, {"caller_nid": "portal_main_client_download_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1068"}, {"caller_nid": "portal_main_client_download_document", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1072"}, {"caller_nid": "portal_main_client_download_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1072"}, {"caller_nid": "portal_main_client_download_document", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1074"}, {"caller_nid": "portal_main_client_download_document", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1074"}, {"caller_nid": "portal_main_client_download_document", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1075"}, {"caller_nid": "portal_main_client_download_document", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1076"}, {"caller_nid": "portal_main_client_download_document", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1076"}, {"caller_nid": "portal_main_client_download_document", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1078"}, {"caller_nid": "portal_main_client_download_document", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1080"}, {"caller_nid": "portal_main_client_download_document", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1085"}, {"caller_nid": "portal_main_client_download_document", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1090"}, {"caller_nid": "portal_main_client_download_document", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1091"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1099"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1099"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1100"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1101"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1101"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1105"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1105"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1108"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1108"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1110"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1113"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1118"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1123"}, {"caller_nid": "portal_main_client_download_proof_of_delivery", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1124"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1132"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1133"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1135"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1139"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1146"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1146"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "isoformat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1151"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "astimezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1156"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "localize", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1156"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1156"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "date", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1157"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1158"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "astimezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1158"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "localize", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1158"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "combine", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1158"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "time", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1158"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1159"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1159"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1164"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "round", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1171"}, {"caller_nid": "portal_main_authorizerportal_get_clock_status_data", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1174"}, {"caller_nid": "portal_main_authorizerportal_check_technician_access", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1184"}, {"caller_nid": "portal_main_authorizerportal_check_technician_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1184"}, {"caller_nid": "portal_main_authorizerportal_check_technician_access", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1190"}, {"caller_nid": "portal_main_authorizerportal_check_technician_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1190"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1198"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1202"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1203"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "context_today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1204"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1207"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1216"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1219"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1222"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1222"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1223"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1223"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1224"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1227"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "mapped", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1227"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1231"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1238"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1239"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1248"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1251"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1252"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1271"}, {"caller_nid": "portal_main_technician_dashboard", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1272"}, {"caller_nid": "portal_main_technician_tasks", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1278"}, {"caller_nid": "portal_main_technician_tasks", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1281"}, {"caller_nid": "portal_main_technician_tasks", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1286"}, {"caller_nid": "portal_main_technician_tasks", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1288"}, {"caller_nid": "portal_main_technician_tasks", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1290"}, {"caller_nid": "portal_main_technician_tasks", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1292"}, {"caller_nid": "portal_main_technician_tasks", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1296"}, {"caller_nid": "portal_main_technician_tasks", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1306"}, {"caller_nid": "portal_main_technician_tasks", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1307"}, {"caller_nid": "portal_main_technician_tasks", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1315"}, {"caller_nid": "portal_main_technician_tasks", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1326"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1332"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1335"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1338"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1339"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1343"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1343"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1345"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1348"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1365"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1372"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1372"}, {"caller_nid": "portal_main_technician_task_detail", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1385"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1397"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1398"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1400"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1401"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "enumerate", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1415"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1416"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1417"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1422"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1424"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1432"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1434"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1439"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1439"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "sub", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1440"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "astimezone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1443"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "localize", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1443"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1443"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1444"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1445"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1445"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1446"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1446"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1448"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1448"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1449"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1459"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1463"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1466"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1471"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1471"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1471"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1471"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1474"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1479"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1483"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1485"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1491"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1491"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1491"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1493"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1502"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1508"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1508"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1508"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1508"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1508"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1513"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "copy", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1514"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1518"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1520"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1529"}, {"caller_nid": "portal_main_technician_task_add_notes", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1530"}, {"caller_nid": "portal_main_technician_task_action", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1545"}, {"caller_nid": "portal_main_technician_task_action", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1548"}, {"caller_nid": "portal_main_technician_task_action", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1549"}, {"caller_nid": "portal_main_technician_task_action", "callee": "log_location", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1555"}, {"caller_nid": "portal_main_technician_task_action", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1555"}, {"caller_nid": "portal_main_technician_task_action", "callee": "_push_technician_location", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1563"}, {"caller_nid": "portal_main_technician_task_action", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1563"}, {"caller_nid": "portal_main_technician_task_action", "callee": "action_start_en_route", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1575"}, {"caller_nid": "portal_main_technician_task_action", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1575"}, {"caller_nid": "portal_main_technician_task_action", "callee": "action_start_task", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1577"}, {"caller_nid": "portal_main_technician_task_action", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1577"}, {"caller_nid": "portal_main_technician_task_action", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1579"}, {"caller_nid": "portal_main_technician_task_action", "callee": "action_complete_task", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1582"}, {"caller_nid": "portal_main_technician_task_action", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1582"}, {"caller_nid": "portal_main_technician_task_action", "callee": "action_cancel_task", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1584"}, {"caller_nid": "portal_main_technician_task_action", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1584"}, {"caller_nid": "portal_main_technician_task_action", "callee": "get_next_task_for_technician", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1594"}, {"caller_nid": "portal_main_technician_task_action", "callee": "_float_to_time_str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1599"}, {"caller_nid": "portal_main_technician_task_action", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1605"}, {"caller_nid": "portal_main_technician_task_action", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1606"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1615"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1616"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1618"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1619"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1625"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1625"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1636"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1638"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "NamedTemporaryFile", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1640"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1641"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "open", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1645"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1646"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "unlink", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1654"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1659"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1662"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1670"}, {"caller_nid": "portal_main_technician_voice_transcribe", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1671"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1680"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1681"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1683"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1684"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1690"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1690"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1694"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1698"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1698"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1708"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1724"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1730"}, {"caller_nid": "portal_main_technician_ai_format", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1731"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1744"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1745"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1747"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1748"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1754"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1754"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1755"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1762"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1762"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1777"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1793"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1796"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1800"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1803"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1803"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1809"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "log_location", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1814"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1814"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "action_complete_task", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1824"}, {"caller_nid": "portal_main_technician_voice_complete", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1824"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1836"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1839"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "context_today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1841"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1842"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1844"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1852"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "mapped", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1852"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1853"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "mapped", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1853"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1859"}, {"caller_nid": "portal_main_technician_tomorrow", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1869"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1875"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1878"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "from_string", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1881"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1883"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1885"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "sum", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1893"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "mapped", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1893"}, {"caller_nid": "portal_main_technician_schedule_date", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1901"}, {"caller_nid": "portal_main_technician_location_map", "callee": "has_group", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1907"}, {"caller_nid": "portal_main_technician_location_map", "callee": "has_group", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1907"}, {"caller_nid": "portal_main_technician_location_map", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1908"}, {"caller_nid": "portal_main_technician_location_map", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1910"}, {"caller_nid": "portal_main_technician_location_map", "callee": "get_latest_locations", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1911"}, {"caller_nid": "portal_main_technician_location_map", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1912"}, {"caller_nid": "portal_main_technician_location_map", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1912"}, {"caller_nid": "portal_main_technician_location_map", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1919"}, {"caller_nid": "portal_main_technician_location_log", "callee": "log_location", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1927"}, {"caller_nid": "portal_main_technician_location_log", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1927"}, {"caller_nid": "portal_main_technician_location_log", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1934"}, {"caller_nid": "portal_main_technician_clock_status", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1947"}, {"caller_nid": "portal_main_technician_clock_status", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1947"}, {"caller_nid": "portal_main_technician_save_start_location", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1962"}, {"caller_nid": "portal_main_technician_save_start_location", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1962"}, {"caller_nid": "portal_main_technician_save_start_location", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1963"}, {"caller_nid": "portal_main_technician_save_start_location", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1967"}, {"caller_nid": "portal_main_technician_save_start_location", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1968"}, {"caller_nid": "portal_main_technician_push_subscribe", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1974"}, {"caller_nid": "portal_main_technician_push_subscribe", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1975"}, {"caller_nid": "portal_main_technician_push_subscribe", "callee": "register_subscription", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1976"}, {"caller_nid": "portal_main_technician_deliveries", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1983"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1989"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1993"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1993"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1994"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1995"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1995"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L1997"}, {"caller_nid": "portal_main_technician_delivery_detail", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2003"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2014"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2014"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2015"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2016"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2016"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2029"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2029"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2054"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2054"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2057"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2058"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2067"}, {"caller_nid": "portal_main_pod_signature_page", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2071"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2080"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2080"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2081"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2089"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2089"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2106"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2114"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "date", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2121"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strptime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2121"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2129"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2132"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2134"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2137"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2147"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2152"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2156"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2165"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2165"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2166"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2168"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2173"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2180"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2183"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2187"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2196"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2196"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2197"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2199"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2204"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2211"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2220"}, {"caller_nid": "portal_main_pod_save_signature", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2221"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2229"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2232"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2235"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2236"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2240"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2240"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2242"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2246"}, {"caller_nid": "portal_main_task_pod_signature_page", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2249"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2258"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2261"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2262"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2268"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2274"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "date", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2280"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "strptime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2280"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2284"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2286"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2289"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2293"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2295"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2298"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2308"}, {"caller_nid": "portal_main_task_pod_save_signature", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2309"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2326"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2328"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "_render_qweb_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2331"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2331"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2337"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2338"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2339"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2342"}, {"caller_nid": "portal_main_authorizerportal_generate_signed_pod_pdf", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2346"}, {"caller_nid": "portal_main_accessibility_assessment_selector", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2359"}, {"caller_nid": "portal_main_accessibility_assessment_selector", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2362"}, {"caller_nid": "portal_main_accessibility_assessment_selector", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2363"}, {"caller_nid": "portal_main_accessibility_assessment_selector", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2369"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2377"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2379"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2390"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2391"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2398"}, {"caller_nid": "portal_main_accessibility_assessment_list", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2410"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2452"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2455"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2456"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "isoformat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2465"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2465"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2479"}, {"caller_nid": "portal_main_authorizerportal_render_accessibility_form", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2480"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2491"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2493"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2501"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2501"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2502"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2502"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2503"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2503"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2504"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2504"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2505"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2505"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2506"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2506"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2507"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2507"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2508"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2508"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2509"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2509"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2510"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2510"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2514"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "fromisoformat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2518"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2520"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2524"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2526"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2528"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2530"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2532"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2534"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2536"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2543"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2544"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2547"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2552"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2557"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2562"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2563"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2568"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "action_complete", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2570"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2590"}, {"caller_nid": "portal_main_accessibility_assessment_save", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2591"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2596"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2596"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2597"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2597"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2598"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2599"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2600"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2601"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2602"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_straight_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2602"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2608"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2608"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2609"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2609"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2610"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2611"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2612"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2612"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2613"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2613"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2614"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2615"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2616"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2617"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2618"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2619"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2620"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2621"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2622"}, {"caller_nid": "portal_main_authorizerportal_parse_stairlift_curved_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2622"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2628"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2628"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2629"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2629"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2630"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2630"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2631"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2632"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2632"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2633"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2634"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2635"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2636"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2637"}, {"caller_nid": "portal_main_authorizerportal_parse_vpl_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2637"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2643"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2643"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2644"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2645"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2646"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2647"}, {"caller_nid": "portal_main_authorizerportal_parse_ceiling_lift_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2647"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2653"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2653"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2654"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2654"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2655"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2656"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2656"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2657"}, {"caller_nid": "portal_main_authorizerportal_parse_ramp_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2657"}, {"caller_nid": "portal_main_authorizerportal_parse_bathroom_fields", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2663"}, {"caller_nid": "portal_main_authorizerportal_parse_bathroom_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2663"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2669"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2669"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2670"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2670"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2671"}, {"caller_nid": "portal_main_authorizerportal_parse_tub_cutout_fields", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2671"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2682"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2690"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "enumerate", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2692"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2698"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2701"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "title", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2708"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2708"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2710"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_photos", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2712"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2725"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "isinstance", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2729"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2731"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2733"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2733"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2734"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2743"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2748"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2757"}, {"caller_nid": "portal_main_authorizerportal_attach_accessibility_video", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2759"}, {"caller_nid": "portal_main_rental_inspection_page", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2772"}, {"caller_nid": "portal_main_rental_inspection_page", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2772"}, {"caller_nid": "portal_main_rental_inspection_page", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2775"}, {"caller_nid": "portal_main_rental_inspection_page", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2780"}, {"caller_nid": "portal_main_rental_inspection_page", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2782"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2798"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2798"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2801"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2808"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2809"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2810"}, {"caller_nid": "portal_main_rental_inspection_submit", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", "source_location": "L2822"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/201bffcfb9df81c1c697f76723db3d2b55f70a670695aa4cffad72f1e543c31a.json b/fusion_authorizer_portal/graphify-out/cache/201bffcfb9df81c1c697f76723db3d2b55f70a670695aa4cffad72f1e543c31a.json deleted file mode 100644 index 56b71d68..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/201bffcfb9df81c1c697f76723db3d2b55f70a670695aa4cffad72f1e543c31a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", "label": "end-migrate.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L1"}, {"id": "end_migrate_migrate", "label": "migrate()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L16"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", "target": "end_migrate_migrate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L20"}, {"caller_nid": "end_migrate_migrate", "callee": "fetchall", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L31"}, {"caller_nid": "end_migrate_migrate", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L33"}, {"caller_nid": "end_migrate_migrate", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", "source_location": "L35"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/308a1a5138c86acd5683293941dccb2eddc57c55e2795de263eee8f7ceaf4785.json b/fusion_authorizer_portal/graphify-out/cache/308a1a5138c86acd5683293941dccb2eddc57c55e2795de263eee8f7ceaf4785.json deleted file mode 100644 index e9f4a95f..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/308a1a5138c86acd5683293941dccb2eddc57c55e2795de263eee8f7ceaf4785.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "label": "chatter_message_authorizer.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L1"}, {"id": "chatter_message_authorizer_setup", "label": "setup()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L14"}, {"id": "chatter_message_authorizer_onclickmessageauthorizer", "label": "onClickMessageAuthorizer()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L20"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "target": "chatter", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "target": "patch", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "target": "hooks", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "target": "chatter_message_authorizer_setup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L14", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", "target": "chatter_message_authorizer_onclickmessageauthorizer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L20", "weight": 1.0}], "raw_calls": [{"caller_nid": "chatter_message_authorizer_setup", "callee": "useService", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L16"}, {"caller_nid": "chatter_message_authorizer_setup", "callee": "useService", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L17"}, {"caller_nid": "chatter_message_authorizer_onclickmessageauthorizer", "callee": "call", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L25"}, {"caller_nid": "chatter_message_authorizer_onclickmessageauthorizer", "callee": "map", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L32"}, {"caller_nid": "chatter_message_authorizer_onclickmessageauthorizer", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L32"}, {"caller_nid": "chatter_message_authorizer_onclickmessageauthorizer", "callee": "doAction", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L34"}, {"caller_nid": "chatter_message_authorizer_onclickmessageauthorizer", "callee": "warn", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", "source_location": "L37"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/344325bcf48b6dae6ea42a035e0cc7e4cec0dfedec2b4e2bd28faece240df747.json b/fusion_authorizer_portal/graphify-out/cache/344325bcf48b6dae6ea42a035e0cc7e4cec0dfedec2b4e2bd28faece240df747.json deleted file mode 100644 index 0f360aa7..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/344325bcf48b6dae6ea42a035e0cc7e4cec0dfedec2b4e2bd28faece240df747.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L1"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", "source_location": "L11", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/3bd9ca6c402373c66eb4922b9d6ba658e2386a32cd63c119daea3714ef5ca4fa.json b/fusion_authorizer_portal/graphify-out/cache/3bd9ca6c402373c66eb4922b9d6ba658e2386a32cd63c119daea3714ef5ca4fa.json deleted file mode 100644 index 1ad39f0f..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/3bd9ca6c402373c66eb4922b9d6ba658e2386a32cd63c119daea3714ef5ca4fa.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", "label": "timezone_detect.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L1"}, {"id": "timezone_detect_start", "label": "start()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L8"}, {"id": "timezone_detect_detectandsavetimezone", "label": "_detectAndSaveTimezone()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L13"}, {"id": "timezone_detect_getcookie", "label": "_getCookie()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L30"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", "target": "public_widget", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", "target": "timezone_detect_start", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", "target": "timezone_detect_detectandsavetimezone", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L13", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", "target": "timezone_detect_getcookie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L30", "weight": 1.0}, {"source": "timezone_detect_start", "target": "timezone_detect_detectandsavetimezone", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L10", "weight": 1.0}, {"source": "timezone_detect_detectandsavetimezone", "target": "timezone_detect_getcookie", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L22", "weight": 1.0}], "raw_calls": [{"caller_nid": "timezone_detect_start", "callee": "_super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L9"}, {"caller_nid": "timezone_detect_detectandsavetimezone", "callee": "resolvedOptions", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L16"}, {"caller_nid": "timezone_detect_detectandsavetimezone", "callee": "DateTimeFormat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L16"}, {"caller_nid": "timezone_detect_detectandsavetimezone", "callee": "catch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L27"}, {"caller_nid": "timezone_detect_detectandsavetimezone", "callee": "_rpc", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L27"}, {"caller_nid": "timezone_detect_getcookie", "callee": "match", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L31"}, {"caller_nid": "timezone_detect_getcookie", "callee": "decodeURIComponent", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", "source_location": "L32"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/3c8153d244043ce50d63f92e28c5047a85aa0403183feb9318309e281c3a3aee.json b/fusion_authorizer_portal/graphify-out/cache/3c8153d244043ce50d63f92e28c5047a85aa0403183feb9318309e281c3a3aee.json deleted file mode 100644 index c46f307d..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/3c8153d244043ce50d63f92e28c5047a85aa0403183feb9318309e281c3a3aee.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", "source_location": "L1"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", "source_location": "L6", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/3cd6493213bae26920500259650a0498e68c60d6ba1969312a624edc63c9fd93.json b/fusion_authorizer_portal/graphify-out/cache/3cd6493213bae26920500259650a0498e68c60d6ba1969312a624edc63c9fd93.json deleted file mode 100644 index 35d77ce0..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/3cd6493213bae26920500259650a0498e68c60d6ba1969312a624edc63c9fd93.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", "label": "end-migrate.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L1"}, {"id": "end_migrate_migrate", "label": "migrate()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L24"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", "target": "end_migrate_migrate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L24", "weight": 1.0}], "raw_calls": [{"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L28"}, {"caller_nid": "end_migrate_migrate", "callee": "fetchone", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L33"}, {"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L35"}, {"caller_nid": "end_migrate_migrate", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L36"}, {"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L39"}, {"caller_nid": "end_migrate_migrate", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L44"}, {"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L49"}, {"caller_nid": "end_migrate_migrate", "callee": "fetchall", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L60"}, {"caller_nid": "end_migrate_migrate", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L62"}, {"caller_nid": "end_migrate_migrate", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", "source_location": "L64"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/55625cb82706d37b738a37ae8c2666788e3e3bde08167936cd99f4a7b65dd586.json b/fusion_authorizer_portal/graphify-out/cache/55625cb82706d37b738a37ae8c2666788e3e3bde08167936cd99f4a7b65dd586.json deleted file mode 100644 index de069e9e..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/55625cb82706d37b738a37ae8c2666788e3e3bde08167936cd99f4a7b65dd586.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L1"}, {"id": "init_reactivate_views", "label": "_reactivate_views()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L7"}, {"id": "init_rationale_8", "label": "Ensure all module views are active after install/update. Odoo silently deac", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L8"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", "target": "init_reactivate_views", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L7", "weight": 1.0}, {"source": "init_rationale_8", "target": "init_reactivate_views", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "init_reactivate_views", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L15"}, {"caller_nid": "init_reactivate_views", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L15"}, {"caller_nid": "init_reactivate_views", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L20"}, {"caller_nid": "init_reactivate_views", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L21"}, {"caller_nid": "init_reactivate_views", "callee": "fetchall", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L26"}, {"caller_nid": "init_reactivate_views", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L28"}, {"caller_nid": "init_reactivate_views", "callee": "getLogger", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L28"}, {"caller_nid": "init_reactivate_views", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", "source_location": "L29"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/5e06da4bd569ef8ff94d79611571501a0fe7ccc3d3d3a1355cafc7d83441e575.json b/fusion_authorizer_portal/graphify-out/cache/5e06da4bd569ef8ff94d79611571501a0fe7ccc3d3d3a1355cafc7d83441e575.json deleted file mode 100644 index d922e53a..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/5e06da4bd569ef8ff94d79611571501a0fe7ccc3d3d3a1355cafc7d83441e575.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_manifest_py", "label": "__manifest__.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__manifest__.py", "source_location": "L1"}], "edges": [], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/66efd778b81d727e4df14662ff378f4d8c31bca05f87fa387c0760f7ecb8e0bf.json b/fusion_authorizer_portal/graphify-out/cache/66efd778b81d727e4df14662ff378f4d8c31bca05f87fa387c0760f7ecb8e0bf.json deleted file mode 100644 index dc387157..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/66efd778b81d727e4df14662ff378f4d8c31bca05f87fa387c0760f7ecb8e0bf.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_signature_pad_js", "label": "signature_pad.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/signature_pad.js", "source_location": "L1"}], "edges": [], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/7d20ac007e5248a11a2f5cb3b450b1ef4afd402dbfc8b7f488fd6f6ecb8b3a48.json b/fusion_authorizer_portal/graphify-out/cache/7d20ac007e5248a11a2f5cb3b450b1ef4afd402dbfc8b7f488fd6f6ecb8b3a48.json deleted file mode 100644 index 9bde3195..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/7d20ac007e5248a11a2f5cb3b450b1ef4afd402dbfc8b7f488fd6f6ecb8b3a48.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "label": "pdf_editor.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L1"}, {"id": "pdf_editor_fusionpdfeditorcontroller", "label": "FusionPdfEditorController", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L15"}, {"id": "pdf_editor_pdf_field_editor", "label": "pdf_field_editor()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L23"}, {"id": "pdf_editor_get_fields", "label": "get_fields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L52"}, {"id": "pdf_editor_update_field", "label": "update_field()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L68"}, {"id": "pdf_editor_create_field", "label": "create_field()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L90"}, {"id": "pdf_editor_delete_field", "label": "delete_field()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L118"}, {"id": "pdf_editor_get_page_image", "label": "get_page_image()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L130"}, {"id": "pdf_editor_upload_preview_image", "label": "upload_preview_image()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L147"}, {"id": "pdf_editor_preview_pdf", "label": "preview_pdf()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L181"}, {"id": "pdf_editor_rationale_16", "label": "Controller for the PDF field position visual editor.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L16"}, {"id": "pdf_editor_rationale_24", "label": "Render the visual field editor for a PDF template.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L24"}, {"id": "pdf_editor_rationale_53", "label": "Return all fields for a template.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L53"}, {"id": "pdf_editor_rationale_69", "label": "Update a field's position or properties.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L69"}, {"id": "pdf_editor_rationale_91", "label": "Create a new field on a template.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L91"}, {"id": "pdf_editor_rationale_119", "label": "Delete a field from a template.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L119"}, {"id": "pdf_editor_rationale_131", "label": "Return the preview image URL for a specific page.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L131"}, {"id": "pdf_editor_rationale_148", "label": "Upload a preview image for a template page directly from the editor.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L148"}, {"id": "pdf_editor_rationale_182", "label": "Generate a preview filled PDF with sample data.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L182"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "odoo_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_fusionpdfeditorcontroller", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L15", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_pdf_field_editor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L23", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_get_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L52", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_update_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L68", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_create_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L90", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_delete_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L118", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_get_page_image", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L130", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_upload_preview_image", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L147", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", "target": "pdf_editor_preview_pdf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L181", "weight": 1.0}, {"source": "pdf_editor_rationale_16", "target": "pdf_editor_fusionpdfeditorcontroller", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L16", "weight": 1.0}, {"source": "pdf_editor_rationale_24", "target": "pdf_editor_fusionpdfeditorcontroller_pdf_field_editor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L24", "weight": 1.0}, {"source": "pdf_editor_rationale_53", "target": "pdf_editor_fusionpdfeditorcontroller_get_fields", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L53", "weight": 1.0}, {"source": "pdf_editor_rationale_69", "target": "pdf_editor_fusionpdfeditorcontroller_update_field", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L69", "weight": 1.0}, {"source": "pdf_editor_rationale_91", "target": "pdf_editor_fusionpdfeditorcontroller_create_field", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L91", "weight": 1.0}, {"source": "pdf_editor_rationale_119", "target": "pdf_editor_fusionpdfeditorcontroller_delete_field", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L119", "weight": 1.0}, {"source": "pdf_editor_rationale_131", "target": "pdf_editor_fusionpdfeditorcontroller_get_page_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L131", "weight": 1.0}, {"source": "pdf_editor_rationale_148", "target": "pdf_editor_fusionpdfeditorcontroller_upload_preview_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L148", "weight": 1.0}, {"source": "pdf_editor_rationale_182", "target": "pdf_editor_fusionpdfeditorcontroller_preview_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L182", "weight": 1.0}], "raw_calls": [{"caller_nid": "pdf_editor_pdf_field_editor", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L25"}, {"caller_nid": "pdf_editor_pdf_field_editor", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L26"}, {"caller_nid": "pdf_editor_pdf_field_editor", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L27"}, {"caller_nid": "pdf_editor_pdf_field_editor", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L31"}, {"caller_nid": "pdf_editor_pdf_field_editor", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L35"}, {"caller_nid": "pdf_editor_pdf_field_editor", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L41"}, {"caller_nid": "pdf_editor_get_fields", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L54"}, {"caller_nid": "pdf_editor_get_fields", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L55"}, {"caller_nid": "pdf_editor_get_fields", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L57"}, {"caller_nid": "pdf_editor_update_field", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L70"}, {"caller_nid": "pdf_editor_update_field", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L71"}, {"caller_nid": "pdf_editor_update_field", "callee": "items", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L80"}, {"caller_nid": "pdf_editor_update_field", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L82"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L92"}, {"caller_nid": "pdf_editor_create_field", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L97"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L98"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L99"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L100"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L101"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L101"}, {"caller_nid": "pdf_editor_create_field", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L102"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L102"}, {"caller_nid": "pdf_editor_create_field", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L103"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L103"}, {"caller_nid": "pdf_editor_create_field", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L104"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L104"}, {"caller_nid": "pdf_editor_create_field", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L105"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L105"}, {"caller_nid": "pdf_editor_create_field", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L106"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L106"}, {"caller_nid": "pdf_editor_create_field", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L107"}, {"caller_nid": "pdf_editor_create_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L107"}, {"caller_nid": "pdf_editor_create_field", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L110"}, {"caller_nid": "pdf_editor_delete_field", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L120"}, {"caller_nid": "pdf_editor_delete_field", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L121"}, {"caller_nid": "pdf_editor_delete_field", "callee": "unlink", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L122"}, {"caller_nid": "pdf_editor_get_page_image", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L132"}, {"caller_nid": "pdf_editor_get_page_image", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L133"}, {"caller_nid": "pdf_editor_get_page_image", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L136"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L149"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L149"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L150"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L150"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L151"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L152"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "dumps", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L153"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L155"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "dumps", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L157"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L159"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L159"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L162"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L164"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L166"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L173"}, {"caller_nid": "pdf_editor_upload_preview_image", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L174"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L183"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L184"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L185"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "generate_filled_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L210"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L215"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L217"}, {"caller_nid": "pdf_editor_preview_pdf", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", "source_location": "L218"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/82b54859e3cdc0d06aa234bd56e490b57a84237c34185a8293d42ea42e64f01c.json b/fusion_authorizer_portal/graphify-out/cache/82b54859e3cdc0d06aa234bd56e490b57a84237c34185a8293d42ea42e64f01c.json deleted file mode 100644 index 5b2814ad..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/82b54859e3cdc0d06aa234bd56e490b57a84237c34185a8293d42ea42e64f01c.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_assessment_form_js", "label": "assessment_form.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/assessment_form.js", "source_location": "L1"}], "edges": [], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/87cfe4c3e9c1c7a8094aa28e49a4a8b51d5f7697f2af4d0e5d1d5722f0bdc491.json b/fusion_authorizer_portal/graphify-out/cache/87cfe4c3e9c1c7a8094aa28e49a4a8b51d5f7697f2af4d0e5d1d5722f0bdc491.json deleted file mode 100644 index 579ae3d6..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/87cfe4c3e9c1c7a8094aa28e49a4a8b51d5f7697f2af4d0e5d1d5722f0bdc491.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "label": "technician_location.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L1"}, {"id": "technician_location_ensuremodal", "label": "ensureModal()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L26"}, {"id": "technician_location_showmodal", "label": "showModal()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L54"}, {"id": "technician_location_hidemodal", "label": "hideModal()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L59"}, {"id": "technician_location_showdeniedbanner", "label": "showDeniedBanner()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L69"}, {"id": "technician_location_getlocation", "label": "getLocation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L87"}, {"id": "technician_location_opengooglemapsnav", "label": "openGoogleMapsNav()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L120"}, {"id": "technician_location_istechnicianportal", "label": "isTechnicianPortal()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L144"}, {"id": "technician_location_checkclockstatus", "label": "checkClockStatus()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L148"}, {"id": "technician_location_loglocation", "label": "logLocation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L171"}, {"id": "technician_location_startlocationtimer", "label": "startLocationTimer()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L202"}, {"id": "technician_location_stoplocationtimer", "label": "stopLocationTimer()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L208"}, {"id": "technician_location_startlocationlogging", "label": "startLocationLogging()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L215"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_ensuremodal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L26", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_showmodal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L54", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_hidemodal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L59", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_showdeniedbanner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L69", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_getlocation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L87", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_opengooglemapsnav", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L120", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_istechnicianportal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L144", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_checkclockstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L148", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_loglocation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L171", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_startlocationtimer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L202", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_stoplocationtimer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L208", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", "target": "technician_location_startlocationlogging", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L215", "weight": 1.0}, {"source": "technician_location_ensuremodal", "target": "technician_location_hidemodal", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L47", "weight": 1.0}, {"source": "technician_location_ensuremodal", "target": "technician_location_showmodal", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L49", "weight": 1.0}, {"source": "technician_location_showmodal", "target": "technician_location_ensuremodal", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L55", "weight": 1.0}, {"source": "technician_location_getlocation", "target": "technician_location_showdeniedbanner", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L105", "weight": 1.0}, {"source": "technician_location_checkclockstatus", "target": "technician_location_startlocationtimer", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L160", "weight": 1.0}, {"source": "technician_location_checkclockstatus", "target": "technician_location_stoplocationtimer", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L163", "weight": 1.0}, {"source": "technician_location_loglocation", "target": "technician_location_getlocation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L174", "weight": 1.0}, {"source": "technician_location_startlocationtimer", "target": "technician_location_loglocation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L204", "weight": 1.0}, {"source": "technician_location_startlocationlogging", "target": "technician_location_istechnicianportal", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L216", "weight": 1.0}, {"source": "technician_location_startlocationlogging", "target": "technician_location_checkclockstatus", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L219", "weight": 1.0}, {"source": "technician_location_startlocationlogging", "target": "technician_location_stoplocationtimer", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L225", "weight": 1.0}, {"source": "technician_location_startlocationlogging", "target": "technician_location_startlocationtimer", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L227", "weight": 1.0}], "raw_calls": [{"caller_nid": "technician_location_ensuremodal", "callee": "createElement", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L28"}, {"caller_nid": "technician_location_ensuremodal", "callee": "appendChild", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L44"}, {"caller_nid": "technician_location_ensuremodal", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L46"}, {"caller_nid": "technician_location_ensuremodal", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L46"}, {"caller_nid": "technician_location_ensuremodal", "callee": "catch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L48"}, {"caller_nid": "technician_location_ensuremodal", "callee": "fusionGetLocation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L48"}, {"caller_nid": "technician_location_showdeniedbanner", "callee": "createElement", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L71"}, {"caller_nid": "technician_location_showdeniedbanner", "callee": "appendChild", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L80"}, {"caller_nid": "technician_location_getlocation", "callee": "reject", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L90"}, {"caller_nid": "technician_location_getlocation", "callee": "getCurrentPosition", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L93"}, {"caller_nid": "technician_location_getlocation", "callee": "remove", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L96"}, {"caller_nid": "technician_location_getlocation", "callee": "resolve", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L97"}, {"caller_nid": "technician_location_getlocation", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L106"}, {"caller_nid": "technician_location_getlocation", "callee": "reject", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L107"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "trim", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L121"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "encodeURIComponent", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L125"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L125"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "test", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L126"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "test", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L127"}, {"caller_nid": "technician_location_opengooglemapsnav", "callee": "open", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L134"}, {"caller_nid": "technician_location_istechnicianportal", "callee": "indexOf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L145"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "catch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L149"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L149"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L149"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "fetch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L149"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "stringify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L152"}, {"caller_nid": "technician_location_checkclockstatus", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L154"}, {"caller_nid": "technician_location_loglocation", "callee": "catch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L174"}, {"caller_nid": "technician_location_loglocation", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L174"}, {"caller_nid": "technician_location_loglocation", "callee": "catch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L175"}, {"caller_nid": "technician_location_loglocation", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L175"}, {"caller_nid": "technician_location_loglocation", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L175"}, {"caller_nid": "technician_location_loglocation", "callee": "fetch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L175"}, {"caller_nid": "technician_location_loglocation", "callee": "stringify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L178"}, {"caller_nid": "technician_location_loglocation", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L188"}, {"caller_nid": "technician_location_loglocation", "callee": "warn", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L191"}, {"caller_nid": "technician_location_loglocation", "callee": "warn", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L195"}, {"caller_nid": "technician_location_startlocationtimer", "callee": "setInterval", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L205"}, {"caller_nid": "technician_location_stoplocationtimer", "callee": "clearInterval", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L210"}, {"caller_nid": "technician_location_startlocationlogging", "callee": "setInterval", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L220"}, {"caller_nid": "technician_location_startlocationlogging", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", "source_location": "L223"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/8e18c26853be951ba743bc6bc1f889014ea593bbdb3f096de5307c4a29291298.json b/fusion_authorizer_portal/graphify-out/cache/8e18c26853be951ba743bc6bc1f889014ea593bbdb3f096de5307c4a29291298.json deleted file mode 100644 index 6d6e1b89..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/8e18c26853be951ba743bc6bc1f889014ea593bbdb3f096de5307c4a29291298.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", "label": "end-migrate.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L1"}, {"id": "end_migrate_migrate", "label": "migrate()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L16"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", "target": "end_migrate_migrate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L20"}, {"caller_nid": "end_migrate_migrate", "callee": "fetchall", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L31"}, {"caller_nid": "end_migrate_migrate", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L33"}, {"caller_nid": "end_migrate_migrate", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", "source_location": "L35"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/97d68be7369c9365cfb063917a10cffb7597afaf33664675d434a2e74a1f7693.json b/fusion_authorizer_portal/graphify-out/cache/97d68be7369c9365cfb063917a10cffb7597afaf33664675d434a2e74a1f7693.json deleted file mode 100644 index ab439b5e..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/97d68be7369c9365cfb063917a10cffb7597afaf33664675d434a2e74a1f7693.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "label": "accessibility_assessment.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L1"}, {"id": "accessibility_assessment_fusionaccessibilityassessment", "label": "FusionAccessibilityAssessment", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L13"}, {"id": "accessibility_assessment_expand_states", "label": "_expand_states()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L90"}, {"id": "accessibility_assessment_compute_display_name", "label": "_compute_display_name()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L364"}, {"id": "accessibility_assessment_compute_stair_straight_length", "label": "_compute_stair_straight_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L371"}, {"id": "accessibility_assessment_compute_stair_final_length", "label": "_compute_stair_final_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L380"}, {"id": "accessibility_assessment_compute_stair_curved_length", "label": "_compute_stair_curved_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L391"}, {"id": "accessibility_assessment_compute_stair_curved_final_length", "label": "_compute_stair_curved_final_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L440"}, {"id": "accessibility_assessment_compute_ramp_length", "label": "_compute_ramp_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L449"}, {"id": "accessibility_assessment_compute_ramp_landings", "label": "_compute_ramp_landings()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L458"}, {"id": "accessibility_assessment_compute_ramp_total_length", "label": "_compute_ramp_total_length()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L468"}, {"id": "accessibility_assessment_create", "label": "create()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L481"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "label": ".action_complete()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L493"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "label": "._add_assessment_tag()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L551"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "label": "._copy_photos_to_sale_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L582"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "label": "._send_completion_email()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L624"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "label": "._schedule_followup_activity()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L678"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "label": "._ensure_partner()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L709"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "label": "._create_draft_sale_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L751"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "label": "._format_assessment_html_table()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L815"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", "label": ".action_cancel()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L958"}, {"id": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", "label": ".action_reset_to_draft()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L963"}, {"id": "accessibility_assessment_rationale_91", "label": "Kanban group expansion \u2014 always show all 6 workflow states.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L91"}, {"id": "accessibility_assessment_rationale_372", "label": "Straight stair lift: (steps \u00d7 nose_to_nose) + 13\" top landing", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L372"}, {"id": "accessibility_assessment_rationale_381", "label": "Use manual override if provided, otherwise use calculated", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L381"}, {"id": "accessibility_assessment_rationale_392", "label": "Curved stair lift calculation: - 12\" per step - 16\" per curve", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L392"}, {"id": "accessibility_assessment_rationale_441", "label": "Use manual override if provided, otherwise use calculated", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L441"}, {"id": "accessibility_assessment_rationale_450", "label": "Ontario Building Code: 12 inches length per 1 inch height (1:12 ratio)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L450"}, {"id": "accessibility_assessment_rationale_459", "label": "Landing required every 30 feet (360 inches)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L459"}, {"id": "accessibility_assessment_rationale_469", "label": "Total length including landings (5 feet = 60 inches each)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L469"}, {"id": "accessibility_assessment_rationale_494", "label": "Complete the assessment and create a Sale Order. 2026-04 portal audit f", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L494"}, {"id": "accessibility_assessment_rationale_552", "label": "Add a tag to the sale order based on assessment type", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L552"}, {"id": "accessibility_assessment_rationale_583", "label": "Copy assessment photos to sale order chatter", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L583"}, {"id": "accessibility_assessment_rationale_625", "label": "Send email notification to office about assessment completion", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L625"}, {"id": "accessibility_assessment_rationale_679", "label": "Schedule a follow-up activity for the sales rep", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L679"}, {"id": "accessibility_assessment_rationale_710", "label": "Find or create a partner for the client", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L710"}, {"id": "accessibility_assessment_rationale_752", "label": "Create a draft sale order from the accessibility assessment. 2026-04 po", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L752"}, {"id": "accessibility_assessment_rationale_816", "label": "Format assessment details as HTML for chatter", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L816"}, {"id": "accessibility_assessment_rationale_959", "label": "Cancel the assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L959"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "markupsafe", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_fusionaccessibilityassessment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L13", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_expand_states", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L90", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L364", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_stair_straight_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L371", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_stair_final_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L380", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_stair_curved_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L391", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_stair_curved_final_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L440", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_ramp_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L449", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_ramp_landings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L458", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_compute_ramp_total_length", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L468", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", "target": "accessibility_assessment_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L481", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L493", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L551", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L582", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L624", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L678", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L709", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L751", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L815", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L958", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment", "target": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L963", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L523", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L526", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L529", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L532", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L542", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "target": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L545", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "target": "accessibility_assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L574", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "target": "accessibility_assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L672", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "target": "accessibility_assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L747", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "target": "accessibility_assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L802", "weight": 1.0}, {"source": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "target": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L806", "weight": 1.0}, {"source": "accessibility_assessment_rationale_91", "target": "accessibility_assessment_fusionaccessibilityassessment_expand_states", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L91", "weight": 1.0}, {"source": "accessibility_assessment_rationale_372", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_stair_straight_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L372", "weight": 1.0}, {"source": "accessibility_assessment_rationale_381", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_stair_final_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L381", "weight": 1.0}, {"source": "accessibility_assessment_rationale_392", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_stair_curved_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L392", "weight": 1.0}, {"source": "accessibility_assessment_rationale_441", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_stair_curved_final_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L441", "weight": 1.0}, {"source": "accessibility_assessment_rationale_450", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_ramp_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L450", "weight": 1.0}, {"source": "accessibility_assessment_rationale_459", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_ramp_landings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L459", "weight": 1.0}, {"source": "accessibility_assessment_rationale_469", "target": "accessibility_assessment_fusionaccessibilityassessment_compute_ramp_total_length", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L469", "weight": 1.0}, {"source": "accessibility_assessment_rationale_494", "target": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L494", "weight": 1.0}, {"source": "accessibility_assessment_rationale_552", "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L552", "weight": 1.0}, {"source": "accessibility_assessment_rationale_583", "target": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L583", "weight": 1.0}, {"source": "accessibility_assessment_rationale_625", "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L625", "weight": 1.0}, {"source": "accessibility_assessment_rationale_679", "target": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L679", "weight": 1.0}, {"source": "accessibility_assessment_rationale_710", "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L710", "weight": 1.0}, {"source": "accessibility_assessment_rationale_752", "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L752", "weight": 1.0}, {"source": "accessibility_assessment_rationale_816", "target": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L816", "weight": 1.0}, {"source": "accessibility_assessment_rationale_959", "target": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L959", "weight": 1.0}], "raw_calls": [{"caller_nid": "accessibility_assessment_compute_display_name", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L365"}, {"caller_nid": "accessibility_assessment_compute_display_name", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L367"}, {"caller_nid": "accessibility_assessment_compute_stair_curved_length", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L425"}, {"caller_nid": "accessibility_assessment_compute_stair_curved_length", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L431"}, {"caller_nid": "accessibility_assessment_compute_ramp_landings", "callee": "ceil", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L463"}, {"caller_nid": "accessibility_assessment_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L483"}, {"caller_nid": "accessibility_assessment_create", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L483"}, {"caller_nid": "accessibility_assessment_create", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L483"}, {"caller_nid": "accessibility_assessment_create", "callee": "next_by_code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L484"}, {"caller_nid": "accessibility_assessment_create", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L486"}, {"caller_nid": "accessibility_assessment_create", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L487"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L501"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L504"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L504"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L506"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L506"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L508"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L508"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L514"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L514"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L516"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L516"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L535"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_complete", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L547"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L553"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L566"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L571"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L572"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L575"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L578"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L579"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L580"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L584"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L586"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L589"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "copy", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L601"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L605"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L608"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L609"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L611"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L612"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L615"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L622"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L622"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L626"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L628"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L631"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L636"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L638"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L641"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L644"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L645"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "_email_build", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L647"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "lower", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L649"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "get_base_url", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L659"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L672"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "send", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L673"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L674"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L676"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L680"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L685"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L686"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L689"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L691"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L695"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L695"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "activity_schedule", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L698"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L705"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L707"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L711"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L712"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L716"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L734"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L734"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L743"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L748"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L762"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L764"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L766"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L767"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L779"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L803"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L807"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L808"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L817"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L818"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L838"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L838"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L851"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L851"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L852"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L852"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L893"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L893"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L906"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L906"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L960"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L961"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L965"}, {"caller_nid": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", "source_location": "L966"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/981affc1cb4fba527fb82791302fe24ac5545837cfbee9b24c21353d415775e5.json b/fusion_authorizer_portal/graphify-out/cache/981affc1cb4fba527fb82791302fe24ac5545837cfbee9b24c21353d415775e5.json deleted file mode 100644 index a86a8ab6..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/981affc1cb4fba527fb82791302fe24ac5545837cfbee9b24c21353d415775e5.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "label": "pdf_filler.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L1"}, {"id": "pdf_filler_pdftemplatefiller", "label": "PDFTemplateFiller", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L21"}, {"id": "pdf_filler_fill_template", "label": "fill_template()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L25"}, {"id": "pdf_filler_draw_field", "label": "_draw_field()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L89"}, {"id": "pdf_filler_rationale_22", "label": "Generic PDF template filler. Works with any template, any number of pages.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L22"}, {"id": "pdf_filler_rationale_26", "label": "Fill a PDF template by overlaying text/checkmarks/signatures at configured posit", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L26"}, {"id": "pdf_filler_rationale_91", "label": "Draw a single field onto the reportlab canvas. Args: c: rep", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L91"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "io", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "reportlab_pdfgen", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L13", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "reportlab_lib_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L14", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "odoo_tools_pdf", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L16", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "pdf_filler_pdftemplatefiller", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L21", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "pdf_filler_fill_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L25", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", "target": "pdf_filler_draw_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L89", "weight": 1.0}, {"source": "pdf_filler_fill_template", "target": "pdf_filler_draw_field", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L70", "weight": 1.0}, {"source": "pdf_filler_rationale_22", "target": "pdf_filler_pdftemplatefiller", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L22", "weight": 1.0}, {"source": "pdf_filler_rationale_26", "target": "pdf_filler_pdftemplatefiller_fill_template", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L26", "weight": 1.0}, {"source": "pdf_filler_rationale_91", "target": "pdf_filler_pdftemplatefiller_draw_field", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L91", "weight": 1.0}], "raw_calls": [{"caller_nid": "pdf_filler_fill_template", "callee": "PdfFileReader", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L43"}, {"caller_nid": "pdf_filler_fill_template", "callee": "BytesIO", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L43"}, {"caller_nid": "pdf_filler_fill_template", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L45"}, {"caller_nid": "pdf_filler_fill_template", "callee": "PdfFileWriter", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L48"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getNumPages", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L49"}, {"caller_nid": "pdf_filler_fill_template", "callee": "range", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L51"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getPage", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L52"}, {"caller_nid": "pdf_filler_fill_template", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L55"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getWidth", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L55"}, {"caller_nid": "pdf_filler_fill_template", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L56"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getHeight", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L56"}, {"caller_nid": "pdf_filler_fill_template", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L57"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getLowerLeft_x", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L57"}, {"caller_nid": "pdf_filler_fill_template", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L58"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getLowerLeft_y", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L58"}, {"caller_nid": "pdf_filler_fill_template", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L60"}, {"caller_nid": "pdf_filler_fill_template", "callee": "BytesIO", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L63"}, {"caller_nid": "pdf_filler_fill_template", "callee": "Canvas", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L64"}, {"caller_nid": "pdf_filler_fill_template", "callee": "save", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L75"}, {"caller_nid": "pdf_filler_fill_template", "callee": "seek", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L76"}, {"caller_nid": "pdf_filler_fill_template", "callee": "PdfFileReader", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L79"}, {"caller_nid": "pdf_filler_fill_template", "callee": "mergePage", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L80"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getPage", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L80"}, {"caller_nid": "pdf_filler_fill_template", "callee": "addPage", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L82"}, {"caller_nid": "pdf_filler_fill_template", "callee": "BytesIO", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L84"}, {"caller_nid": "pdf_filler_fill_template", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L85"}, {"caller_nid": "pdf_filler_fill_template", "callee": "getvalue", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L86"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L103"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L103"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L104"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L105"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L105"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L117"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L118"}, {"caller_nid": "pdf_filler_draw_field", "callee": "setFont", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L121"}, {"caller_nid": "pdf_filler_draw_field", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L122"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L123"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L125"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L127"}, {"caller_nid": "pdf_filler_draw_field", "callee": "drawCentredString", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L128"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L130"}, {"caller_nid": "pdf_filler_draw_field", "callee": "drawRightString", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L131"}, {"caller_nid": "pdf_filler_draw_field", "callee": "drawString", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L133"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L138"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L139"}, {"caller_nid": "pdf_filler_draw_field", "callee": "min", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L141"}, {"caller_nid": "pdf_filler_draw_field", "callee": "saveState", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L146"}, {"caller_nid": "pdf_filler_draw_field", "callee": "setStrokeColorRGB", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L147"}, {"caller_nid": "pdf_filler_draw_field", "callee": "setLineWidth", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L148"}, {"caller_nid": "pdf_filler_draw_field", "callee": "line", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L150"}, {"caller_nid": "pdf_filler_draw_field", "callee": "line", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L151"}, {"caller_nid": "pdf_filler_draw_field", "callee": "restoreState", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L152"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L155"}, {"caller_nid": "pdf_filler_draw_field", "callee": "ImageReader", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L158"}, {"caller_nid": "pdf_filler_draw_field", "callee": "BytesIO", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L158"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L159"}, {"caller_nid": "pdf_filler_draw_field", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L160"}, {"caller_nid": "pdf_filler_draw_field", "callee": "drawImage", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L162"}, {"caller_nid": "pdf_filler_draw_field", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", "source_location": "L168"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/991fea8a8e9658057e8b874623b125d8973d600ad00231f99a42a70561f80b69.json b/fusion_authorizer_portal/graphify-out/cache/991fea8a8e9658057e8b874623b125d8973d600ad00231f99a42a70561f80b69.json deleted file mode 100644 index d20698da..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/991fea8a8e9658057e8b874623b125d8973d600ad00231f99a42a70561f80b69.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "label": "pdf_template.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L1"}, {"id": "pdf_template_fusionpdftemplate", "label": "FusionPdfTemplate", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L15"}, {"id": "pdf_template_fusionpdftemplate_write", "label": ".write()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L65"}, {"id": "pdf_template_create", "label": "create()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L76"}, {"id": "pdf_template_compute_page_count", "label": "_compute_page_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L87"}, {"id": "pdf_template_fusionpdftemplate_action_generate_previews", "label": ".action_generate_previews()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L101"}, {"id": "pdf_template_compute_field_count", "label": "_compute_field_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L172"}, {"id": "pdf_template_fusionpdftemplate_action_activate", "label": ".action_activate()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L176"}, {"id": "pdf_template_fusionpdftemplate_action_archive", "label": ".action_archive()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L183"}, {"id": "pdf_template_fusionpdftemplate_action_reset_draft", "label": ".action_reset_draft()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L188"}, {"id": "pdf_template_fusionpdftemplate_action_open_field_editor", "label": ".action_open_field_editor()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L193"}, {"id": "pdf_template_fusionpdftemplate_generate_filled_pdf", "label": ".generate_filled_pdf()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L202"}, {"id": "pdf_template_fusionpdftemplatepreview", "label": "FusionPdfTemplatePreview", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L246"}, {"id": "pdf_template_fusionpdftemplatefield", "label": "FusionPdfTemplateField", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L260"}, {"id": "pdf_template_rationale_102", "label": "Generate PNG preview images from the PDF using poppler (pdftoppm). Falls", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L102"}, {"id": "pdf_template_rationale_177", "label": "Set template to active.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L177"}, {"id": "pdf_template_rationale_184", "label": "Archive the template.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L184"}, {"id": "pdf_template_rationale_194", "label": "Open the visual field position editor.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L194"}, {"id": "pdf_template_rationale_203", "label": "Generate a filled PDF using this template and the provided data. Args:", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L203"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "io", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_fusionpdftemplate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L15", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_write", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L65", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L76", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_compute_page_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L87", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_action_generate_previews", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L101", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_compute_field_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L172", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_action_activate", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L176", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_action_archive", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L183", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_action_reset_draft", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L188", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_action_open_field_editor", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L193", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate", "target": "pdf_template_fusionpdftemplate_generate_filled_pdf", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L202", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_fusionpdftemplatepreview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L246", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", "target": "pdf_template_fusionpdftemplatefield", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L260", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate_write", "target": "pdf_template_fusionpdftemplate_action_generate_previews", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L70", "weight": 1.0}, {"source": "pdf_template_create", "target": "pdf_template_fusionpdftemplate_action_generate_previews", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L81", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate_action_generate_previews", "target": "pdf_template_fusionpdftemplate_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L119", "weight": 1.0}, {"source": "pdf_template_fusionpdftemplate_action_generate_previews", "target": "pdf_template_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L154", "weight": 1.0}, {"source": "pdf_template_rationale_102", "target": "pdf_template_fusionpdftemplate_action_generate_previews", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L102", "weight": 1.0}, {"source": "pdf_template_rationale_177", "target": "pdf_template_fusionpdftemplate_action_activate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L177", "weight": 1.0}, {"source": "pdf_template_rationale_184", "target": "pdf_template_fusionpdftemplate_action_archive", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L184", "weight": 1.0}, {"source": "pdf_template_rationale_194", "target": "pdf_template_fusionpdftemplate_action_open_field_editor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L194", "weight": 1.0}, {"source": "pdf_template_rationale_203", "target": "pdf_template_fusionpdftemplate_generate_filled_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L203", "weight": 1.0}], "raw_calls": [{"caller_nid": "pdf_template_fusionpdftemplate_write", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L66"}, {"caller_nid": "pdf_template_fusionpdftemplate_write", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L72"}, {"caller_nid": "pdf_template_create", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L77"}, {"caller_nid": "pdf_template_create", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L83"}, {"caller_nid": "pdf_template_compute_page_count", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L92"}, {"caller_nid": "pdf_template_compute_page_count", "callee": "PdfFileReader", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L93"}, {"caller_nid": "pdf_template_compute_page_count", "callee": "BytesIO", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L93"}, {"caller_nid": "pdf_template_compute_page_count", "callee": "getNumPages", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L94"}, {"caller_nid": "pdf_template_compute_page_count", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L96"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L105"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L107"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L107"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L113"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "TemporaryDirectory", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L116"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L117"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "open", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L118"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "run", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L122"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L123"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L128"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L129"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L130"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L130"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "sorted", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L137"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "listdir", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L138"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "startswith", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L139"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "endswith", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L139"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L143"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L143"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "unlink", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L146"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "enumerate", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L149"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L150"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "open", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L151"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L152"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L152"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L161"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L161"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L164"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L164"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L166"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_generate_previews", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L166"}, {"caller_nid": "pdf_template_compute_field_count", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L174"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_activate", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L178"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_activate", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L180"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_activate", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L180"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_archive", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L185"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_reset_draft", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L190"}, {"caller_nid": "pdf_template_fusionpdftemplate_action_open_field_editor", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L195"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L212"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L214"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L214"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L216"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L220"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "filtered", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L224"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L228"}, {"caller_nid": "pdf_template_fusionpdftemplate_generate_filled_pdf", "callee": "fill_template", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", "source_location": "L241"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/a0b44e9d1d686feedbb45abc7155102474b444c2375e41ec4e884d331befcef4.json b/fusion_authorizer_portal/graphify-out/cache/a0b44e9d1d686feedbb45abc7155102474b444c2375e41ec4e884d331befcef4.json deleted file mode 100644 index 3968a5b4..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/a0b44e9d1d686feedbb45abc7155102474b444c2375e41ec4e884d331befcef4.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", "label": "end-migrate.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L1"}, {"id": "end_migrate_migrate", "label": "migrate()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L16"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", "target": "end_migrate_migrate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "end_migrate_migrate", "callee": "execute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L20"}, {"caller_nid": "end_migrate_migrate", "callee": "fetchall", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L31"}, {"caller_nid": "end_migrate_migrate", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L33"}, {"caller_nid": "end_migrate_migrate", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", "source_location": "L35"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/a21ffbd475c5f44de511b89dd7fb990e6226567d8a459c03bb47c1a1f083939b.json b/fusion_authorizer_portal/graphify-out/cache/a21ffbd475c5f44de511b89dd7fb990e6226567d8a459c03bb47c1a1f083939b.json deleted file mode 100644 index a8b667fa..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/a21ffbd475c5f44de511b89dd7fb990e6226567d8a459c03bb47c1a1f083939b.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "label": "res_users.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L1"}, {"id": "res_users_portalwizarduser", "label": "PortalWizardUser", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L10"}, {"id": "res_users_portalwizarduser_action_grant_access", "label": ".action_grant_access()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L14"}, {"id": "res_users_resusers", "label": "ResUsers", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L67"}, {"id": "res_users_resusers_generate_tutorial_articles", "label": "._generate_tutorial_articles()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L70"}, {"id": "res_users_rationale_11", "label": "Override standard portal wizard to handle internal users with Fusion roles.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L11"}, {"id": "res_users_rationale_15", "label": "Override: Handle Fusion portal roles when granting portal access. - Inte", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L15"}, {"id": "res_users_rationale_71", "label": "Override to create custom welcome articles for internal staff instead of", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L71"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "target": "res_users_portalwizarduser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L10", "weight": 1.0}, {"source": "res_users_portalwizarduser", "target": "res_users_portalwizarduser_action_grant_access", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L14", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", "target": "res_users_resusers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L67", "weight": 1.0}, {"source": "res_users_resusers", "target": "res_users_resusers_generate_tutorial_articles", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L70", "weight": 1.0}, {"source": "res_users_rationale_11", "target": "res_users_portalwizarduser", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L11", "weight": 1.0}, {"source": "res_users_rationale_15", "target": "res_users_portalwizarduser_action_grant_access", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L15", "weight": 1.0}, {"source": "res_users_rationale_71", "target": "res_users_resusers_generate_tutorial_articles", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L71", "weight": 1.0}], "raw_calls": [{"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L19"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L23"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L24"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "getattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L25"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "_is_internal", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L29"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "_assign_internal_role_groups", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L31"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L37"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L38"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L45"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L52"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L52"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "_assign_portal_role_groups", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L58"}, {"caller_nid": "res_users_portalwizarduser_action_grant_access", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L61"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L75"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "_render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L87"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L95"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L96"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L98"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L98"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L114"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L117"}, {"caller_nid": "res_users_resusers_generate_tutorial_articles", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", "source_location": "L119"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/a5dcebdf32a06dc2880bfe6e27a778f2e3de3b661d3a69ad297484b4d58c791c.json b/fusion_authorizer_portal/graphify-out/cache/a5dcebdf32a06dc2880bfe6e27a778f2e3de3b661d3a69ad297484b4d58c791c.json deleted file mode 100644 index 4fac3cb5..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/a5dcebdf32a06dc2880bfe6e27a778f2e3de3b661d3a69ad297484b4d58c791c.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "label": "adp_document.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L1"}, {"id": "adp_document_adpdocument", "label": "ADPDocument", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L11"}, {"id": "adp_document_compute_file_size", "label": "_compute_file_size()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L114"}, {"id": "adp_document_compute_display_name", "label": "_compute_display_name()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L122"}, {"id": "adp_document_create", "label": "create()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L129"}, {"id": "adp_document_adpdocument_action_download", "label": ".action_download()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L153"}, {"id": "adp_document_adpdocument_get_document_url", "label": ".get_document_url()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L162"}, {"id": "adp_document_get_documents_for_order", "label": "get_documents_for_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L168"}, {"id": "adp_document_get_revision_history", "label": "get_revision_history()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L178"}, {"id": "adp_document_rationale_130", "label": "Override create to handle revision numbering", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L130"}, {"id": "adp_document_rationale_154", "label": "Download the document", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L154"}, {"id": "adp_document_rationale_163", "label": "Get the download URL for portal access", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L163"}, {"id": "adp_document_rationale_169", "label": "Get documents for a sale order, optionally filtered by type", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L169"}, {"id": "adp_document_rationale_179", "label": "Get all revisions of a specific document type", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L179"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_adpdocument", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_compute_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L114", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_compute_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L122", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L129", "weight": 1.0}, {"source": "adp_document_adpdocument", "target": "adp_document_adpdocument_action_download", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L153", "weight": 1.0}, {"source": "adp_document_adpdocument", "target": "adp_document_adpdocument_get_document_url", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L162", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_get_documents_for_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L168", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", "target": "adp_document_get_revision_history", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L178", "weight": 1.0}, {"source": "adp_document_rationale_130", "target": "adp_document_adpdocument_create", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L130", "weight": 1.0}, {"source": "adp_document_rationale_154", "target": "adp_document_adpdocument_action_download", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L154", "weight": 1.0}, {"source": "adp_document_rationale_163", "target": "adp_document_adpdocument_get_document_url", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L163", "weight": 1.0}, {"source": "adp_document_rationale_169", "target": "adp_document_adpdocument_get_documents_for_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L169", "weight": 1.0}, {"source": "adp_document_rationale_179", "target": "adp_document_adpdocument_get_revision_history", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L179", "weight": 1.0}], "raw_calls": [{"caller_nid": "adp_document_compute_file_size", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L117"}, {"caller_nid": "adp_document_compute_file_size", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L117"}, {"caller_nid": "adp_document_compute_display_name", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L123"}, {"caller_nid": "adp_document_compute_display_name", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L125"}, {"caller_nid": "adp_document_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L133"}, {"caller_nid": "adp_document_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L135"}, {"caller_nid": "adp_document_create", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L136"}, {"caller_nid": "adp_document_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L136"}, {"caller_nid": "adp_document_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L137"}, {"caller_nid": "adp_document_create", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L138"}, {"caller_nid": "adp_document_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L138"}, {"caller_nid": "adp_document_create", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L140"}, {"caller_nid": "adp_document_create", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L151"}, {"caller_nid": "adp_document_adpdocument_action_download", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L155"}, {"caller_nid": "adp_document_adpdocument_get_document_url", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L164"}, {"caller_nid": "adp_document_get_documents_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L172"}, {"caller_nid": "adp_document_get_documents_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L174"}, {"caller_nid": "adp_document_get_documents_for_order", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L175"}, {"caller_nid": "adp_document_get_revision_history", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", "source_location": "L180"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/adeb8dd4ce55111ffd86c41804940dc0bba334af2e7a1a4e2caa11d2a5fded3d.json b/fusion_authorizer_portal/graphify-out/cache/adeb8dd4ce55111ffd86c41804940dc0bba334af2e7a1a4e2caa11d2a5fded3d.json deleted file mode 100644 index 88003b02..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/adeb8dd4ce55111ffd86c41804940dc0bba334af2e7a1a4e2caa11d2a5fded3d.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_portal_search_js", "label": "portal_search.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/portal_search.js", "source_location": "L1"}], "edges": [], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/bdab7c3bffb56f3c01889c19039dda8139704dae111032451eee29d4da1aba7e.json b/fusion_authorizer_portal/graphify-out/cache/bdab7c3bffb56f3c01889c19039dda8139704dae111032451eee29d4da1aba7e.json deleted file mode 100644 index 077489e1..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/bdab7c3bffb56f3c01889c19039dda8139704dae111032451eee29d4da1aba7e.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", "label": "loaner_checkout.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L1"}, {"id": "loaner_checkout_fusionloanercheckoutassessment", "label": "FusionLoanerCheckoutAssessment", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L6"}, {"id": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", "label": ".action_view_assessment()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L17"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", "target": "loaner_checkout_fusionloanercheckoutassessment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L6", "weight": 1.0}, {"source": "loaner_checkout_fusionloanercheckoutassessment", "target": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L17", "weight": 1.0}], "raw_calls": [{"caller_nid": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", "source_location": "L18"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/bdadca0a69fae44893e3cd9e9e3178034415564cc70f31d6353ea1a688d5e54e.json b/fusion_authorizer_portal/graphify-out/cache/bdadca0a69fae44893e3cd9e9e3178034415564cc70f31d6353ea1a688d5e54e.json deleted file mode 100644 index c1958ab8..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/bdadca0a69fae44893e3cd9e9e3178034415564cc70f31d6353ea1a688d5e54e.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_loaner_portal_js", "label": "loaner_portal.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/loaner_portal.js", "source_location": "L1"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_loaner_portal_js", "target": "public_widget", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/loaner_portal.js", "source_location": "L3", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/ceda503b76190ee8ed15a66976054aec5eba64b6bf5a0e7aeb859256a6d4a47a.json b/fusion_authorizer_portal/graphify-out/cache/ceda503b76190ee8ed15a66976054aec5eba64b6bf5a0e7aeb859256a6d4a47a.json deleted file mode 100644 index 71b874e5..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/ceda503b76190ee8ed15a66976054aec5eba64b6bf5a0e7aeb859256a6d4a47a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "label": "portal_page11_sign.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L1"}, {"id": "portal_page11_sign_page11publicsigncontroller", "label": "Page11PublicSignController", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L15"}, {"id": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "label": "._get_sign_request()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L17"}, {"id": "portal_page11_sign_page11_sign_form", "label": "page11_sign_form()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L38"}, {"id": "portal_page11_sign_page11_sign_submit", "label": "page11_sign_submit()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L109"}, {"id": "portal_page11_sign_page11_download_pdf", "label": "page11_download_pdf()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L186"}, {"id": "portal_page11_sign_rationale_18", "label": "Look up and validate a signing request by token.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L18"}, {"id": "portal_page11_sign_rationale_39", "label": "Display the Page 11 signing form.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L39"}, {"id": "portal_page11_sign_rationale_110", "label": "Process the submitted Page 11 signature.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L110"}, {"id": "portal_page11_sign_rationale_187", "label": "Download the signed Page 11 PDF.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L187"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "odoo_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "portal_page11_sign_page11publicsigncontroller", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L15", "weight": 1.0}, {"source": "portal_page11_sign_page11publicsigncontroller", "target": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L17", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "portal_page11_sign_page11_sign_form", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L38", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "portal_page11_sign_page11_sign_submit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L109", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", "target": "portal_page11_sign_page11_download_pdf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L186", "weight": 1.0}, {"source": "portal_page11_sign_page11_sign_form", "target": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L40", "weight": 1.0}, {"source": "portal_page11_sign_page11_sign_submit", "target": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L111", "weight": 1.0}, {"source": "portal_page11_sign_rationale_18", "target": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L18", "weight": 1.0}, {"source": "portal_page11_sign_rationale_39", "target": "portal_page11_sign_page11publicsigncontroller_page11_sign_form", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L39", "weight": 1.0}, {"source": "portal_page11_sign_rationale_110", "target": "portal_page11_sign_page11publicsigncontroller_page11_sign_submit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L110", "weight": 1.0}, {"source": "portal_page11_sign_rationale_187", "target": "portal_page11_sign_page11publicsigncontroller_page11_download_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L187", "weight": 1.0}], "raw_calls": [{"caller_nid": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L19"}, {"caller_nid": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L19"}, {"caller_nid": "portal_page11_sign_page11publicsigncontroller_get_sign_request", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L29"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L43"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L48"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L54"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L62"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L62"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L66"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L67"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "_get_client_name_parts", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L82"}, {"caller_nid": "portal_page11_sign_page11_sign_form", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L102"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L114"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L116"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L118"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "startswith", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L120"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L121"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L123"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L125"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L127"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L128"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L144"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L146"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L147"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L148"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L149"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "update", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L153"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L154"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L155"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L156"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L157"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L158"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L159"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L160"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L161"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L162"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L163"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L164"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L167"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L167"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "_generate_signed_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L170"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L170"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L172"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "_update_sale_order", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L175"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L175"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L177"}, {"caller_nid": "portal_page11_sign_page11_sign_submit", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L179"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L188"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L188"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L194"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L196"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "make_response", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L199"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L204"}, {"caller_nid": "portal_page11_sign_page11_download_pdf", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", "source_location": "L204"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/cfdac7ae3f93be15e7e1c1bd7f6e77b36cb09b6bd64d2f829ff1a872d8b0a620.json b/fusion_authorizer_portal/graphify-out/cache/cfdac7ae3f93be15e7e1c1bd7f6e77b36cb09b6bd64d2f829ff1a872d8b0a620.json deleted file mode 100644 index 567d25cc..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/cfdac7ae3f93be15e7e1c1bd7f6e77b36cb09b6bd64d2f829ff1a872d8b0a620.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "label": "res_partner.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L1"}, {"id": "res_partner_respartner", "label": "ResPartner", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L11"}, {"id": "res_partner_compute_portal_access_status", "label": "_compute_portal_access_status()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L90"}, {"id": "res_partner_compute_assigned_case_count", "label": "_compute_assigned_case_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L101"}, {"id": "res_partner_compute_assessment_count", "label": "_compute_assessment_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L113"}, {"id": "res_partner_compute_assigned_delivery_count", "label": "_compute_assigned_delivery_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L125"}, {"id": "res_partner_respartner_assign_portal_role_groups", "label": "._assign_portal_role_groups()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L136"}, {"id": "res_partner_respartner_assign_internal_role_groups", "label": "._assign_internal_role_groups()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L154"}, {"id": "res_partner_respartner_action_grant_portal_access", "label": ".action_grant_portal_access()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L186"}, {"id": "res_partner_respartner_create_welcome_article", "label": "._create_welcome_article()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L355"}, {"id": "res_partner_respartner_send_portal_invitation_email", "label": "._send_portal_invitation_email()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L431"}, {"id": "res_partner_respartner_action_resend_portal_invitation", "label": ".action_resend_portal_invitation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L521"}, {"id": "res_partner_respartner_action_view_assigned_cases", "label": ".action_view_assigned_cases()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L591"}, {"id": "res_partner_respartner_action_view_assessments", "label": ".action_view_assessments()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L604"}, {"id": "res_partner_respartner_action_mark_as_authorizer", "label": ".action_mark_as_authorizer()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L624"}, {"id": "res_partner_respartner_action_batch_send_portal_invitation", "label": ".action_batch_send_portal_invitation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L638"}, {"id": "res_partner_respartner_action_mark_and_send_invitation", "label": ".action_mark_and_send_invitation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L687"}, {"id": "res_partner_respartner_action_view_assigned_deliveries", "label": ".action_view_assigned_deliveries()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L692"}, {"id": "res_partner_respartner_action_mark_as_technician", "label": ".action_mark_as_technician()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L706"}, {"id": "res_partner_respartner_geocode_address", "label": "._geocode_address()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L724"}, {"id": "res_partner_respartner_write", "label": ".write()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L756"}, {"id": "res_partner_rationale_91", "label": "Compute portal access status based on user account and login history.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L91"}, {"id": "res_partner_rationale_102", "label": "Count sale orders where this partner is the authorizer", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L102"}, {"id": "res_partner_rationale_114", "label": "Count assessments where this partner is involved", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L114"}, {"id": "res_partner_rationale_126", "label": "Count sale orders assigned to this partner as delivery technician", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L126"}, {"id": "res_partner_rationale_137", "label": "Assign role-specific portal groups to a portal user based on contact checkboxes.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L137"}, {"id": "res_partner_rationale_155", "label": "Assign backend groups to an internal user based on contact checkboxes. A", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L155"}, {"id": "res_partner_rationale_187", "label": "Grant portal access to this partner, or update permissions for existing users.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L187"}, {"id": "res_partner_rationale_356", "label": "Create a role-specific welcome Knowledge article for the new portal user.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L356"}, {"id": "res_partner_rationale_432", "label": "Send a professional portal invitation email to the partner. Gen", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L432"}, {"id": "res_partner_rationale_522", "label": "Resend portal invitation email to an existing portal user.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L522"}, {"id": "res_partner_rationale_592", "label": "Open the list of assigned sale orders", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L592"}, {"id": "res_partner_rationale_605", "label": "Open the list of assessments for this partner", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L605"}, {"id": "res_partner_rationale_625", "label": "Batch action to mark selected contacts as authorizers", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L625"}, {"id": "res_partner_rationale_639", "label": "Batch action to send portal invitations to selected authorizers", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L639"}, {"id": "res_partner_rationale_688", "label": "Combined action: mark as authorizer and send invitation", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L688"}, {"id": "res_partner_rationale_693", "label": "Open the list of assigned deliveries for technician", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L693"}, {"id": "res_partner_rationale_707", "label": "Batch action to mark selected contacts as technicians", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L707"}, {"id": "res_partner_rationale_725", "label": "Geocode partner address using Google Geocoding API and cache lat/lng.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L725"}, {"id": "res_partner_rationale_757", "label": "Override write to auto-geocode when address changes.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L757"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "markupsafe", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "res_partner_respartner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "res_partner_compute_portal_access_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L90", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "res_partner_compute_assigned_case_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L101", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "res_partner_compute_assessment_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L113", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", "target": "res_partner_compute_assigned_delivery_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L125", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_assign_portal_role_groups", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L136", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_assign_internal_role_groups", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L154", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_grant_portal_access", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L186", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_create_welcome_article", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L355", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_send_portal_invitation_email", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L431", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_resend_portal_invitation", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L521", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_view_assigned_cases", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L591", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_view_assessments", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L604", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_mark_as_authorizer", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L624", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_batch_send_portal_invitation", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L638", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_mark_and_send_invitation", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L687", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_view_assigned_deliveries", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L692", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_action_mark_as_technician", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L706", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_geocode_address", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L724", "weight": 1.0}, {"source": "res_partner_respartner", "target": "res_partner_respartner_write", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L756", "weight": 1.0}, {"source": "res_partner_respartner_assign_portal_role_groups", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L152", "weight": 1.0}, {"source": "res_partner_respartner_assign_internal_role_groups", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L165", "weight": 1.0}, {"source": "res_partner_respartner_action_grant_portal_access", "target": "res_partner_respartner_assign_internal_role_groups", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L217", "weight": 1.0}, {"source": "res_partner_respartner_action_grant_portal_access", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L242", "weight": 1.0}, {"source": "res_partner_respartner_action_grant_portal_access", "target": "res_partner_respartner_assign_portal_role_groups", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L243", "weight": 1.0}, {"source": "res_partner_respartner_action_grant_portal_access", "target": "res_partner_respartner_create_welcome_article", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L297", "weight": 1.0}, {"source": "res_partner_respartner_action_grant_portal_access", "target": "res_partner_respartner_send_portal_invitation_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L302", "weight": 1.0}, {"source": "res_partner_respartner_action_resend_portal_invitation", "target": "res_partner_respartner_send_portal_invitation_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L533", "weight": 1.0}, {"source": "res_partner_respartner_action_mark_as_authorizer", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L626", "weight": 1.0}, {"source": "res_partner_respartner_action_batch_send_portal_invitation", "target": "res_partner_respartner_action_grant_portal_access", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L658", "weight": 1.0}, {"source": "res_partner_respartner_action_mark_and_send_invitation", "target": "res_partner_respartner_action_mark_as_authorizer", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L689", "weight": 1.0}, {"source": "res_partner_respartner_action_mark_and_send_invitation", "target": "res_partner_respartner_action_batch_send_portal_invitation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L690", "weight": 1.0}, {"source": "res_partner_respartner_action_mark_as_technician", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L708", "weight": 1.0}, {"source": "res_partner_respartner_geocode_address", "target": "res_partner_respartner_write", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L749", "weight": 1.0}, {"source": "res_partner_respartner_write", "target": "res_partner_respartner_geocode_address", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L766", "weight": 1.0}, {"source": "res_partner_rationale_91", "target": "res_partner_respartner_compute_portal_access_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L91", "weight": 1.0}, {"source": "res_partner_rationale_102", "target": "res_partner_respartner_compute_assigned_case_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L102", "weight": 1.0}, {"source": "res_partner_rationale_114", "target": "res_partner_respartner_compute_assessment_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L114", "weight": 1.0}, {"source": "res_partner_rationale_126", "target": "res_partner_respartner_compute_assigned_delivery_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L126", "weight": 1.0}, {"source": "res_partner_rationale_137", "target": "res_partner_respartner_assign_portal_role_groups", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L137", "weight": 1.0}, {"source": "res_partner_rationale_155", "target": "res_partner_respartner_assign_internal_role_groups", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L155", "weight": 1.0}, {"source": "res_partner_rationale_187", "target": "res_partner_respartner_action_grant_portal_access", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L187", "weight": 1.0}, {"source": "res_partner_rationale_356", "target": "res_partner_respartner_create_welcome_article", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L356", "weight": 1.0}, {"source": "res_partner_rationale_432", "target": "res_partner_respartner_send_portal_invitation_email", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L432", "weight": 1.0}, {"source": "res_partner_rationale_522", "target": "res_partner_respartner_action_resend_portal_invitation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L522", "weight": 1.0}, {"source": "res_partner_rationale_592", "target": "res_partner_respartner_action_view_assigned_cases", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L592", "weight": 1.0}, {"source": "res_partner_rationale_605", "target": "res_partner_respartner_action_view_assessments", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L605", "weight": 1.0}, {"source": "res_partner_rationale_625", "target": "res_partner_respartner_action_mark_as_authorizer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L625", "weight": 1.0}, {"source": "res_partner_rationale_639", "target": "res_partner_respartner_action_batch_send_portal_invitation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L639", "weight": 1.0}, {"source": "res_partner_rationale_688", "target": "res_partner_respartner_action_mark_and_send_invitation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L688", "weight": 1.0}, {"source": "res_partner_rationale_693", "target": "res_partner_respartner_action_view_assigned_deliveries", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L693", "weight": 1.0}, {"source": "res_partner_rationale_707", "target": "res_partner_respartner_action_mark_as_technician", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L707", "weight": 1.0}, {"source": "res_partner_rationale_725", "target": "res_partner_respartner_geocode_address", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L725", "weight": 1.0}, {"source": "res_partner_rationale_757", "target": "res_partner_respartner_write", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L757", "weight": 1.0}], "raw_calls": [{"caller_nid": "res_partner_compute_assigned_case_count", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L103"}, {"caller_nid": "res_partner_compute_assigned_case_count", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L108"}, {"caller_nid": "res_partner_compute_assessment_count", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L115"}, {"caller_nid": "res_partner_compute_assessment_count", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L119"}, {"caller_nid": "res_partner_compute_assessment_count", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L121"}, {"caller_nid": "res_partner_compute_assigned_delivery_count", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L127"}, {"caller_nid": "res_partner_compute_assigned_delivery_count", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L132"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L140"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L142"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L144"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L146"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L148"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L150"}, {"caller_nid": "res_partner_respartner_assign_portal_role_groups", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L152"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L163"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L165"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L166"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L171"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L176"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L179"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L181"}, {"caller_nid": "res_partner_respartner_assign_internal_role_groups", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L182"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L188"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L191"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L191"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "lower", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L193"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L193"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L197"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L197"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L204"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L204"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L218"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L219"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L226"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L227"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L229"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L230"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L231"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L231"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L236"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L237"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L240"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L242"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L244"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L252"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L253"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "escape", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L254"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L255"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L255"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L260"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L261"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L267"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L275"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L277"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L277"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L281"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L281"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L281"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L289"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L304"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L309"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L309"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L322"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L339"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L345"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L346"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L352"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L353"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L353"}, {"caller_nid": "res_partner_respartner_action_grant_portal_access", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L353"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L361"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L365"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "_render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L399"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L407"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L410"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L410"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L426"}, {"caller_nid": "res_partner_respartner_create_welcome_article", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L429"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L439"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L442"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "signup_prepare", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L445"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "_get_signup_url_for_action", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L449"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L449"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L453"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L456"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L456"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L458"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L462"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L462"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L513"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L513"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "send", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L514"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L515"}, {"caller_nid": "res_partner_respartner_send_portal_invitation_email", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L518"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L523"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L526"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L526"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L535"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L540"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L540"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L543"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L561"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L578"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L584"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L584"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L585"}, {"caller_nid": "res_partner_respartner_action_resend_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L585"}, {"caller_nid": "res_partner_respartner_action_view_assigned_cases", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L593"}, {"caller_nid": "res_partner_respartner_action_view_assigned_cases", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L596"}, {"caller_nid": "res_partner_respartner_action_view_assessments", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L606"}, {"caller_nid": "res_partner_respartner_action_view_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L615"}, {"caller_nid": "res_partner_respartner_action_mark_as_authorizer", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L631"}, {"caller_nid": "res_partner_respartner_action_mark_as_authorizer", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L632"}, {"caller_nid": "res_partner_respartner_action_mark_as_authorizer", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L632"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L661"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L661"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L666"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L666"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L668"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L668"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L670"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L670"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L672"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L672"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L674"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L674"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L674"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L680"}, {"caller_nid": "res_partner_respartner_action_batch_send_portal_invitation", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L681"}, {"caller_nid": "res_partner_respartner_action_view_assigned_deliveries", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L694"}, {"caller_nid": "res_partner_respartner_action_view_assigned_deliveries", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L696"}, {"caller_nid": "res_partner_respartner_action_view_assigned_deliveries", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L696"}, {"caller_nid": "res_partner_respartner_action_view_assigned_deliveries", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L699"}, {"caller_nid": "res_partner_respartner_action_mark_as_technician", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L713"}, {"caller_nid": "res_partner_respartner_action_mark_as_technician", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L714"}, {"caller_nid": "res_partner_respartner_action_mark_as_technician", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L714"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L727"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L727"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L737"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L741"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L746"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L747"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L747"}, {"caller_nid": "res_partner_respartner_geocode_address", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L754"}, {"caller_nid": "res_partner_respartner_write", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L758"}, {"caller_nid": "res_partner_respartner_write", "callee": "set", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L760"}, {"caller_nid": "res_partner_respartner_write", "callee": "keys", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L760"}, {"caller_nid": "res_partner_respartner_write", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L762"}, {"caller_nid": "res_partner_respartner_write", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", "source_location": "L762"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/d5a77d5efd165831bbbf1358eba916ae17afe1433ca2c2537297da5d4dc0d34a.json b/fusion_authorizer_portal/graphify-out/cache/d5a77d5efd165831bbbf1358eba916ae17afe1433ca2c2537297da5d4dc0d34a.json deleted file mode 100644 index 5818ffd2..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/d5a77d5efd165831bbbf1358eba916ae17afe1433ca2c2537297da5d4dc0d34a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "label": "assessment.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1"}, {"id": "assessment_fusionassessment", "label": "FusionAssessment", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L14"}, {"id": "assessment_compute_display_name", "label": "_compute_display_name()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L436"}, {"id": "assessment_compute_signatures_complete", "label": "_compute_signatures_complete()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L447"}, {"id": "assessment_compute_document_count", "label": "_compute_document_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L452"}, {"id": "assessment_create", "label": "create()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L457"}, {"id": "assessment_fusionassessment_action_mark_pending_signature", "label": ".action_mark_pending_signature()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L464"}, {"id": "assessment_fusionassessment_action_complete", "label": ".action_complete()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L470"}, {"id": "assessment_fusionassessment_action_complete_express", "label": ".action_complete_express()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L506"}, {"id": "assessment_fusionassessment_action_cancel", "label": ".action_cancel()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L535"}, {"id": "assessment_fusionassessment_action_reset_draft", "label": ".action_reset_draft()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L541"}, {"id": "assessment_fusionassessment_ensure_partner", "label": "._ensure_partner()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L547"}, {"id": "assessment_fusionassessment_create_draft_sale_order", "label": "._create_draft_sale_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L587"}, {"id": "assessment_fusionassessment_schedule_followup_activity", "label": "._schedule_followup_activity()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L854"}, {"id": "assessment_fusionassessment_send_assessment_completed_email", "label": "._send_assessment_completed_email()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L891"}, {"id": "assessment_fusionassessment_build_assessment_email_sections", "label": "._build_assessment_email_sections()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L954"}, {"id": "assessment_fusionassessment_format_assessment_html_table", "label": "._format_assessment_html_table()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1164"}, {"id": "assessment_fusionassessment_format_specifications_for_order", "label": "._format_specifications_for_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1372"}, {"id": "assessment_fusionassessment_generate_signed_documents", "label": "._generate_signed_documents()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1424"}, {"id": "assessment_fusionassessment_send_completion_notifications", "label": "._send_completion_notifications()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1454"}, {"id": "assessment_fusionassessment_action_view_documents", "label": ".action_view_documents()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1478"}, {"id": "assessment_fusionassessment_action_view_sale_order", "label": ".action_view_sale_order()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1491"}, {"id": "assessment_fusionassessment_get_pdf_context", "label": "._get_pdf_context()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1508"}, {"id": "assessment_fusionassessment_get_pdf_signatures", "label": "._get_pdf_signatures()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1596"}, {"id": "assessment_fusionassessment_generate_template_pdf", "label": ".generate_template_pdf()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1606"}, {"id": "assessment_rationale_458", "label": "Override create to generate reference number", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L458"}, {"id": "assessment_rationale_465", "label": "Move to pending signature state", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L465"}, {"id": "assessment_rationale_471", "label": "Complete the assessment and create draft sale order", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L471"}, {"id": "assessment_rationale_507", "label": "Complete express assessment and create draft sale order (no signatures required)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L507"}, {"id": "assessment_rationale_536", "label": "Cancel the assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L536"}, {"id": "assessment_rationale_548", "label": "Ensure a partner exists for the client, create if needed", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L548"}, {"id": "assessment_rationale_588", "label": "Create a draft sale order from the assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L588"}, {"id": "assessment_rationale_855", "label": "Schedule a follow-up activity for the sales rep", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L855"}, {"id": "assessment_rationale_892", "label": "Send email notification to sales person, authorizer, and office about completed", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L892"}, {"id": "assessment_rationale_955", "label": "Build comprehensive email sections with all assessment details. Returns", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L955"}, {"id": "assessment_rationale_1165", "label": "Format assessment data as HTML table for chatter", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1165"}, {"id": "assessment_rationale_1373", "label": "Format wheelchair specifications for the sale order notes (legacy)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1373"}, {"id": "assessment_rationale_1425", "label": "Generate document records for signed pages", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1425"}, {"id": "assessment_rationale_1455", "label": "Send email notifications when assessment is completed", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1455"}, {"id": "assessment_rationale_1479", "label": "View related documents", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1479"}, {"id": "assessment_rationale_1492", "label": "View the created sale order", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1492"}, {"id": "assessment_rationale_1509", "label": "Return a flat dict of all assessment data for PDF template filling. Thi", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1509"}, {"id": "assessment_rationale_1597", "label": "Return a dict of signature binaries for PDF template filling.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1597"}, {"id": "assessment_rationale_1607", "label": "Generate a filled PDF using the named template. Args: templ", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1607"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "markupsafe", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "assessment_fusionassessment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L14", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "assessment_compute_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L436", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "assessment_compute_signatures_complete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L447", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "assessment_compute_document_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L452", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", "target": "assessment_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L457", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_mark_pending_signature", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L464", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_complete", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L470", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_complete_express", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L506", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_cancel", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L535", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_reset_draft", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L541", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_ensure_partner", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L547", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_create_draft_sale_order", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L587", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_schedule_followup_activity", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L854", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_send_assessment_completed_email", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L891", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_build_assessment_email_sections", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L954", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_format_assessment_html_table", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1164", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_format_specifications_for_order", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1372", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_generate_signed_documents", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1424", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_send_completion_notifications", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1454", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_view_documents", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1478", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_action_view_sale_order", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1491", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_get_pdf_context", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1508", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_get_pdf_signatures", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1596", "weight": 1.0}, {"source": "assessment_fusionassessment", "target": "assessment_fusionassessment_generate_template_pdf", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1606", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete", "target": "assessment_fusionassessment_ensure_partner", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L478", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete", "target": "assessment_fusionassessment_create_draft_sale_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L481", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete", "target": "assessment_fusionassessment_generate_signed_documents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L484", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete", "target": "assessment_fusionassessment_send_completion_notifications", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L494", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete_express", "target": "assessment_fusionassessment_ensure_partner", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L519", "weight": 1.0}, {"source": "assessment_fusionassessment_action_complete_express", "target": "assessment_fusionassessment_create_draft_sale_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L522", "weight": 1.0}, {"source": "assessment_fusionassessment_ensure_partner", "target": "assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L582", "weight": 1.0}, {"source": "assessment_fusionassessment_create_draft_sale_order", "target": "assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L729", "weight": 1.0}, {"source": "assessment_fusionassessment_create_draft_sale_order", "target": "assessment_fusionassessment_format_assessment_html_table", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L773", "weight": 1.0}, {"source": "assessment_fusionassessment_create_draft_sale_order", "target": "assessment_fusionassessment_send_assessment_completed_email", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L847", "weight": 1.0}, {"source": "assessment_fusionassessment_create_draft_sale_order", "target": "assessment_fusionassessment_schedule_followup_activity", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L850", "weight": 1.0}, {"source": "assessment_fusionassessment_send_assessment_completed_email", "target": "assessment_fusionassessment_build_assessment_email_sections", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L917", "weight": 1.0}, {"source": "assessment_fusionassessment_send_assessment_completed_email", "target": "assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L936", "weight": 1.0}, {"source": "assessment_fusionassessment_generate_signed_documents", "target": "assessment_create", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1432", "weight": 1.0}, {"source": "assessment_fusionassessment_generate_template_pdf", "target": "assessment_fusionassessment_get_pdf_context", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1626", "weight": 1.0}, {"source": "assessment_fusionassessment_generate_template_pdf", "target": "assessment_fusionassessment_get_pdf_signatures", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1627", "weight": 1.0}, {"source": "assessment_rationale_458", "target": "assessment_fusionassessment_create", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L458", "weight": 1.0}, {"source": "assessment_rationale_465", "target": "assessment_fusionassessment_action_mark_pending_signature", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L465", "weight": 1.0}, {"source": "assessment_rationale_471", "target": "assessment_fusionassessment_action_complete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L471", "weight": 1.0}, {"source": "assessment_rationale_507", "target": "assessment_fusionassessment_action_complete_express", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L507", "weight": 1.0}, {"source": "assessment_rationale_536", "target": "assessment_fusionassessment_action_cancel", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L536", "weight": 1.0}, {"source": "assessment_rationale_548", "target": "assessment_fusionassessment_ensure_partner", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L548", "weight": 1.0}, {"source": "assessment_rationale_588", "target": "assessment_fusionassessment_create_draft_sale_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L588", "weight": 1.0}, {"source": "assessment_rationale_855", "target": "assessment_fusionassessment_schedule_followup_activity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L855", "weight": 1.0}, {"source": "assessment_rationale_892", "target": "assessment_fusionassessment_send_assessment_completed_email", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L892", "weight": 1.0}, {"source": "assessment_rationale_955", "target": "assessment_fusionassessment_build_assessment_email_sections", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L955", "weight": 1.0}, {"source": "assessment_rationale_1165", "target": "assessment_fusionassessment_format_assessment_html_table", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1165", "weight": 1.0}, {"source": "assessment_rationale_1373", "target": "assessment_fusionassessment_format_specifications_for_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1373", "weight": 1.0}, {"source": "assessment_rationale_1425", "target": "assessment_fusionassessment_generate_signed_documents", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1425", "weight": 1.0}, {"source": "assessment_rationale_1455", "target": "assessment_fusionassessment_send_completion_notifications", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1455", "weight": 1.0}, {"source": "assessment_rationale_1479", "target": "assessment_fusionassessment_action_view_documents", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1479", "weight": 1.0}, {"source": "assessment_rationale_1492", "target": "assessment_fusionassessment_action_view_sale_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1492", "weight": 1.0}, {"source": "assessment_rationale_1509", "target": "assessment_fusionassessment_get_pdf_context", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1509", "weight": 1.0}, {"source": "assessment_rationale_1597", "target": "assessment_fusionassessment_get_pdf_signatures", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1597", "weight": 1.0}, {"source": "assessment_rationale_1607", "target": "assessment_fusionassessment_generate_template_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1607", "weight": 1.0}], "raw_calls": [{"caller_nid": "assessment_compute_display_name", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L440"}, {"caller_nid": "assessment_compute_display_name", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L444"}, {"caller_nid": "assessment_compute_signatures_complete", "callee": "bool", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L449"}, {"caller_nid": "assessment_compute_document_count", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L454"}, {"caller_nid": "assessment_create", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L460"}, {"caller_nid": "assessment_create", "callee": "next_by_code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L461"}, {"caller_nid": "assessment_create", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L462"}, {"caller_nid": "assessment_fusionassessment_action_mark_pending_signature", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L466"}, {"caller_nid": "assessment_fusionassessment_action_complete", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L472"}, {"caller_nid": "assessment_fusionassessment_action_complete", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L475"}, {"caller_nid": "assessment_fusionassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L475"}, {"caller_nid": "assessment_fusionassessment_action_complete", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L487"}, {"caller_nid": "assessment_fusionassessment_action_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L498"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L508"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L512"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L512"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L514"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L514"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L516"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L516"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L525"}, {"caller_nid": "assessment_fusionassessment_action_complete_express", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L531"}, {"caller_nid": "assessment_fusionassessment_action_cancel", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L537"}, {"caller_nid": "assessment_fusionassessment_action_reset_draft", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L543"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L549"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L555"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L555"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L560"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L562"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L564"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L566"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L582"}, {"caller_nid": "assessment_fusionassessment_ensure_partner", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L583"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L589"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L591"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L592"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L657"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "upper", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L657"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L676"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L679"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L682"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L683"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L694"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L696"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L708"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L715"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L722"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L726"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L730"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L731"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L738"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L748"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L752"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "title", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L762"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L762"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L766"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L774"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L775"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L789"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L791"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L795"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L797"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L799"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L800"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L802"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L806"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L808"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L810"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L812"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L814"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L816"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L818"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L819"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L823"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L826"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L828"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L829"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L832"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L836"}, {"caller_nid": "assessment_fusionassessment_create_draft_sale_order", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L840"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L856"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L863"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L865"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L874"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "today", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L877"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L877"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "activity_schedule", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L880"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L887"}, {"caller_nid": "assessment_fusionassessment_schedule_followup_activity", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L889"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L894"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "_email_is_enabled", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L896"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L902"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L904"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L906"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "extend", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L907"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L912"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L914"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "_email_build", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L919"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "get_base_url", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L928"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L933"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L933"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L934"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L934"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "send", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L936"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L936"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L943"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L949"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L950"}, {"caller_nid": "assessment_fusionassessment_send_assessment_completed_email", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L952"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L957"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L978"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L978"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L980"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L981"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L981"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L984"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L984"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L985"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L992"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L993"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L995"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L995"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L997"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L997"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1000"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1007"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1007"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1009"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1011"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1013"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1014"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1021"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1022"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1022"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1025"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1026"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1026"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1029"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1030"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1030"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1032"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1038"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1040"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1044"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1046"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1048"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1051"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1053"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1055"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1057"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1059"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1061"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1066"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1067"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1069"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1072"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1073"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1075"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1077"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1078"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1080"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1082"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1083"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1085"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1087"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1088"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1090"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1093"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1094"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1096"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1098"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1099"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1101"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1105"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1106"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1106"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1110"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1112"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1115"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1120"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1122"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1124"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1126"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1128"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1130"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1135"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1135"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1137"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1137"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1139"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strftime", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1139"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1141"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1147"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1149"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1149"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1151"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1153"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1155"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1157"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1158"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1158"}, {"caller_nid": "assessment_fusionassessment_build_assessment_email_sections", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1160"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1166"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1174"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1213"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1213"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1216"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1220"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1220"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1225"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1226"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1226"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1228"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1230"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1232"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1235"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1236"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1237"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1239"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1243"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1244"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1244"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1246"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1248"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1250"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1252"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1254"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1256"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1258"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1261"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1262"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1263"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1265"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1268"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1269"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1270"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1272"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1275"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1276"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1277"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1279"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1282"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1283"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1284"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1286"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1289"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1290"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1290"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1294"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1295"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1295"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1297"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1299"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1301"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1303"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1305"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1307"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1309"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1311"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1313"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1316"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1317"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1317"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1320"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1321"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1322"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1324"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1327"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1328"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1329"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1331"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1335"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1337"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1341"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1344"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1345"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1347"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1347"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1350"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1352"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1354"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1357"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1359"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1359"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1361"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1361"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1363"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1363"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1366"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "add_row", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1367"}, {"caller_nid": "assessment_fusionassessment_format_assessment_html_table", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1367"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1374"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1383"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1385"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1387"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1389"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1391"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1393"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1395"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1396"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1399"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1399"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1399"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1401"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1401"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1401"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1403"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1403"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1403"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1405"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1405"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1405"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1408"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1409"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1410"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1413"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1414"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1415"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1418"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1419"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1420"}, {"caller_nid": "assessment_fusionassessment_format_specifications_for_order", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1422"}, {"caller_nid": "assessment_fusionassessment_generate_signed_documents", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1426"}, {"caller_nid": "assessment_fusionassessment_generate_signed_documents", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1428"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1456"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1461"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "send_mail", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1463"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1464"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1466"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1471"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "send_mail", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1473"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1474"}, {"caller_nid": "assessment_fusionassessment_send_completion_notifications", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1476"}, {"caller_nid": "assessment_fusionassessment_action_view_documents", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1480"}, {"caller_nid": "assessment_fusionassessment_action_view_documents", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1483"}, {"caller_nid": "assessment_fusionassessment_action_view_sale_order", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1493"}, {"caller_nid": "assessment_fusionassessment_action_view_sale_order", "callee": "UserError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1495"}, {"caller_nid": "assessment_fusionassessment_action_view_sale_order", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1495"}, {"caller_nid": "assessment_fusionassessment_action_view_sale_order", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1498"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1514"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1531"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1531"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1545"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1569"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1570"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1571"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1572"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1573"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1574"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1577"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1578"}, {"caller_nid": "assessment_fusionassessment_get_pdf_context", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1579"}, {"caller_nid": "assessment_fusionassessment_get_pdf_signatures", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1598"}, {"caller_nid": "assessment_fusionassessment_get_pdf_signatures", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1601"}, {"caller_nid": "assessment_fusionassessment_get_pdf_signatures", "callee": "b64decode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1603"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1615"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1617"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1623"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "generate_filled_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1630"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1631"}, {"caller_nid": "assessment_fusionassessment_generate_template_pdf", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", "source_location": "L1635"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/dee4a573c575f3c42bf1f4a7d900626dacaba915ece6630ef0274e624fc906f8.json b/fusion_authorizer_portal/graphify-out/cache/dee4a573c575f3c42bf1f4a7d900626dacaba915ece6630ef0274e624fc906f8.json deleted file mode 100644 index 205d1ea4..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/dee4a573c575f3c42bf1f4a7d900626dacaba915ece6630ef0274e624fc906f8.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_sw_js", "label": "technician_sw.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_sw.js", "source_location": "L1"}], "edges": [], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/df42568b96706fa316a1cf512784acdf5b0014abc5fc1ff47f187baed68f0a1f.json b/fusion_authorizer_portal/graphify-out/cache/df42568b96706fa316a1cf512784acdf5b0014abc5fc1ff47f187baed68f0a1f.json deleted file mode 100644 index 48037a52..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/df42568b96706fa316a1cf512784acdf5b0014abc5fc1ff47f187baed68f0a1f.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/__init__.py", "source_location": "L1"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/__init__.py", "source_location": "L3", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/e312b92a050d7c819e5374968dcd8e9e20129a59232fea9927338c040c079f3a.json b/fusion_authorizer_portal/graphify-out/cache/e312b92a050d7c819e5374968dcd8e9e20129a59232fea9927338c040c079f3a.json deleted file mode 100644 index ade8857e..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/e312b92a050d7c819e5374968dcd8e9e20129a59232fea9927338c040c079f3a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "label": "sale_order.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L1"}, {"id": "sale_order_saleorder", "label": "SaleOrder", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L9"}, {"id": "sale_order_compute_portal_comment_count", "label": "_compute_portal_comment_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L67"}, {"id": "sale_order_compute_portal_document_count", "label": "_compute_portal_document_count()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L72"}, {"id": "sale_order_compute_portal_authorizer_id", "label": "_compute_portal_authorizer_id()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L77"}, {"id": "sale_order_saleorder_write", "label": ".write()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L82"}, {"id": "sale_order_saleorder_action_message_authorizer", "label": ".action_message_authorizer()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L106"}, {"id": "sale_order_saleorder_send_authorizer_assignment_notification", "label": "._send_authorizer_assignment_notification()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L128"}, {"id": "sale_order_saleorder_action_view_portal_comments", "label": ".action_view_portal_comments()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L146"}, {"id": "sale_order_saleorder_action_view_portal_documents", "label": ".action_view_portal_documents()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L159"}, {"id": "sale_order_saleorder_get_portal_display_data", "label": ".get_portal_display_data()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L172"}, {"id": "sale_order_saleorder_get_partner_address_display", "label": "._get_partner_address_display()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L194"}, {"id": "sale_order_saleorder_get_product_lines_for_portal", "label": "._get_product_lines_for_portal()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L212"}, {"id": "sale_order_get_authorizer_portal_cases", "label": "get_authorizer_portal_cases()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L228"}, {"id": "sale_order_get_sales_rep_portal_cases", "label": "get_sales_rep_portal_cases()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L241"}, {"id": "sale_order_saleorder_build_search_domain", "label": "._build_search_domain()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L253"}, {"id": "sale_order_rationale_78", "label": "Get authorizer from x_fc_authorizer_id field", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L78"}, {"id": "sale_order_rationale_83", "label": "Override write to send notification when authorizer is assigned.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L83"}, {"id": "sale_order_rationale_107", "label": "Open composer to send message to authorizer only", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L107"}, {"id": "sale_order_rationale_129", "label": "Send email when an authorizer is assigned to the order", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L129"}, {"id": "sale_order_rationale_160", "label": "View portal documents", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L160"}, {"id": "sale_order_rationale_173", "label": "Get data for portal display, excluding sensitive information", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L173"}, {"id": "sale_order_rationale_195", "label": "Get formatted partner address for display", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L195"}, {"id": "sale_order_rationale_213", "label": "Get product lines for portal display (excluding costs)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L213"}, {"id": "sale_order_rationale_229", "label": "Get cases for authorizer portal with optional search", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L229"}, {"id": "sale_order_rationale_242", "label": "Get cases for sales rep portal with optional search", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L242"}, {"id": "sale_order_rationale_254", "label": "Build search domain for portal search", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L254"}, {"id": "sale_order_rationale_99", "label": "# NOTE: Generic status change notifications removed.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L99"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_saleorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_compute_portal_comment_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L67", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_compute_portal_document_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L72", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_compute_portal_authorizer_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L77", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_write", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L82", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_action_message_authorizer", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L106", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_send_authorizer_assignment_notification", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L128", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_action_view_portal_comments", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L146", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_action_view_portal_documents", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L159", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_get_portal_display_data", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L172", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_get_partner_address_display", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L194", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_get_product_lines_for_portal", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L212", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_get_authorizer_portal_cases", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L228", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "target": "sale_order_get_sales_rep_portal_cases", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L241", "weight": 1.0}, {"source": "sale_order_saleorder", "target": "sale_order_saleorder_build_search_domain", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L253", "weight": 1.0}, {"source": "sale_order_saleorder_write", "target": "sale_order_saleorder_send_authorizer_assignment_notification", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L97", "weight": 1.0}, {"source": "sale_order_saleorder_get_portal_display_data", "target": "sale_order_saleorder_get_partner_address_display", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L183", "weight": 1.0}, {"source": "sale_order_saleorder_get_portal_display_data", "target": "sale_order_saleorder_get_product_lines_for_portal", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L189", "weight": 1.0}, {"source": "sale_order_get_authorizer_portal_cases", "target": "sale_order_saleorder_build_search_domain", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L234", "weight": 1.0}, {"source": "sale_order_get_sales_rep_portal_cases", "target": "sale_order_saleorder_build_search_domain", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L247", "weight": 1.0}, {"source": "sale_order_rationale_78", "target": "sale_order_saleorder_compute_portal_authorizer_id", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L78", "weight": 1.0}, {"source": "sale_order_rationale_83", "target": "sale_order_saleorder_write", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L83", "weight": 1.0}, {"source": "sale_order_rationale_107", "target": "sale_order_saleorder_action_message_authorizer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L107", "weight": 1.0}, {"source": "sale_order_rationale_129", "target": "sale_order_saleorder_send_authorizer_assignment_notification", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L129", "weight": 1.0}, {"source": "sale_order_rationale_160", "target": "sale_order_saleorder_action_view_portal_documents", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L160", "weight": 1.0}, {"source": "sale_order_rationale_173", "target": "sale_order_saleorder_get_portal_display_data", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L173", "weight": 1.0}, {"source": "sale_order_rationale_195", "target": "sale_order_saleorder_get_partner_address_display", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L195", "weight": 1.0}, {"source": "sale_order_rationale_213", "target": "sale_order_saleorder_get_product_lines_for_portal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L213", "weight": 1.0}, {"source": "sale_order_rationale_229", "target": "sale_order_saleorder_get_authorizer_portal_cases", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L229", "weight": 1.0}, {"source": "sale_order_rationale_242", "target": "sale_order_saleorder_get_sales_rep_portal_cases", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L242", "weight": 1.0}, {"source": "sale_order_rationale_254", "target": "sale_order_saleorder_build_search_domain", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L254", "weight": 1.0}, {"source": "sale_order_rationale_99", "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L99", "weight": 1.0}], "raw_calls": [{"caller_nid": "sale_order_compute_portal_comment_count", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L69"}, {"caller_nid": "sale_order_compute_portal_document_count", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L74"}, {"caller_nid": "sale_order_saleorder_write", "callee": "super", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L89"}, {"caller_nid": "sale_order_saleorder_write", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L94"}, {"caller_nid": "sale_order_saleorder_write", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L95"}, {"caller_nid": "sale_order_saleorder_action_message_authorizer", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L108"}, {"caller_nid": "sale_order_saleorder_send_authorizer_assignment_notification", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L130"}, {"caller_nid": "sale_order_saleorder_send_authorizer_assignment_notification", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L136"}, {"caller_nid": "sale_order_saleorder_send_authorizer_assignment_notification", "callee": "send_mail", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L138"}, {"caller_nid": "sale_order_saleorder_send_authorizer_assignment_notification", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L139"}, {"caller_nid": "sale_order_saleorder_send_authorizer_assignment_notification", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L141"}, {"caller_nid": "sale_order_saleorder_action_view_portal_comments", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L148"}, {"caller_nid": "sale_order_saleorder_action_view_portal_comments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L151"}, {"caller_nid": "sale_order_saleorder_action_view_portal_documents", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L161"}, {"caller_nid": "sale_order_saleorder_action_view_portal_documents", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L164"}, {"caller_nid": "sale_order_saleorder_get_portal_display_data", "callee": "ensure_one", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L174"}, {"caller_nid": "sale_order_saleorder_get_portal_display_data", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L181"}, {"caller_nid": "sale_order_saleorder_get_portal_display_data", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L181"}, {"caller_nid": "sale_order_saleorder_get_partner_address_display", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L201"}, {"caller_nid": "sale_order_saleorder_get_partner_address_display", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L208"}, {"caller_nid": "sale_order_saleorder_get_partner_address_display", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L210"}, {"caller_nid": "sale_order_saleorder_get_product_lines_for_portal", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L216"}, {"caller_nid": "sale_order_saleorder_get_product_lines_for_portal", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L221"}, {"caller_nid": "sale_order_saleorder_get_product_lines_for_portal", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L223"}, {"caller_nid": "sale_order_get_authorizer_portal_cases", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L237"}, {"caller_nid": "sale_order_get_authorizer_portal_cases", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L237"}, {"caller_nid": "sale_order_get_sales_rep_portal_cases", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L250"}, {"caller_nid": "sale_order_get_sales_rep_portal_cases", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L250"}, {"caller_nid": "sale_order_saleorder_build_search_domain", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", "source_location": "L255"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/e93bb84dfa4bd3fa73db51ce8831c6b30934192816ada7ecbd514ec92abb056e.json b/fusion_authorizer_portal/graphify-out/cache/e93bb84dfa4bd3fa73db51ce8831c6b30934192816ada7ecbd514ec92abb056e.json deleted file mode 100644 index c6f25a92..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/e93bb84dfa4bd3fa73db51ce8831c6b30934192816ada7ecbd514ec92abb056e.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", "label": "technician_push.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L1"}, {"id": "technician_push_urlbase64touint8array", "label": "urlBase64ToUint8Array()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L23"}, {"id": "technician_push_registerpushsubscription", "label": "registerPushSubscription()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L34"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", "target": "technician_push_urlbase64touint8array", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L23", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", "target": "technician_push_registerpushsubscription", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L34", "weight": 1.0}, {"source": "technician_push_registerpushsubscription", "target": "technician_push_urlbase64touint8array", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L59", "weight": 1.0}], "raw_calls": [{"caller_nid": "technician_push_urlbase64touint8array", "callee": "repeat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L24"}, {"caller_nid": "technician_push_urlbase64touint8array", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L25"}, {"caller_nid": "technician_push_urlbase64touint8array", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L25"}, {"caller_nid": "technician_push_urlbase64touint8array", "callee": "atob", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L26"}, {"caller_nid": "technician_push_urlbase64touint8array", "callee": "charCodeAt", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L29"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "register", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L37"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "getSubscription", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L46"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "requestPermission", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L50"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "log", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L52"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "subscribe", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L57"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "getKey", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L64"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "getKey", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L65"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "fetch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L67"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "stringify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L70"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "btoa", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L75"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "apply", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L75"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "btoa", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L76"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "apply", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L76"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L81"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "log", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L83"}, {"caller_nid": "technician_push_registerpushsubscription", "callee": "warn", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", "source_location": "L86"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/ef99e7936610b599cdfa0d4ea9de326e4611ca8d976fb2aef1b7cc1d9795f275.json b/fusion_authorizer_portal/graphify-out/cache/ef99e7936610b599cdfa0d4ea9de326e4611ca8d976fb2aef1b7cc1d9795f275.json deleted file mode 100644 index cb82dcbb..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/ef99e7936610b599cdfa0d4ea9de326e4611ca8d976fb2aef1b7cc1d9795f275.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "label": "portal_assessment.py", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1"}, {"id": "portal_assessment_assessmentportal", "label": "AssessmentPortal", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L16"}, {"id": "customerportal", "label": "CustomerPortal", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "portal_assessment_portal_assessments", "label": "portal_assessments()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L20"}, {"id": "portal_assessment_portal_assessment_new", "label": "portal_assessment_new()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L97"}, {"id": "portal_assessment_portal_assessment_view", "label": "portal_assessment_view()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L122"}, {"id": "portal_assessment_portal_assessment_save", "label": "portal_assessment_save()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L172"}, {"id": "portal_assessment_portal_assessment_signatures", "label": "portal_assessment_signatures()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L285"}, {"id": "portal_assessment_portal_save_signature", "label": "portal_save_signature()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L318"}, {"id": "portal_assessment_portal_assessment_complete", "label": "portal_assessment_complete()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L378"}, {"id": "portal_assessment_portal_assessment_express_new", "label": "portal_assessment_express_new()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L420"}, {"id": "portal_assessment_portal_assessment_express_edit", "label": "portal_assessment_express_edit()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L467"}, {"id": "portal_assessment_portal_assessment_express_save", "label": "portal_assessment_express_save()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L534"}, {"id": "portal_assessment_assessmentportal_build_express_assessment_vals", "label": "._build_express_assessment_vals()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L803"}, {"id": "portal_assessment_assessmentportal_get_canadian_provinces", "label": "._get_canadian_provinces()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1003"}, {"id": "portal_assessment_portal_book_assessment", "label": "portal_book_assessment()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1026"}, {"id": "portal_assessment_portal_book_assessment_submit", "label": "portal_book_assessment_submit()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1056"}, {"id": "portal_assessment_rationale_17", "label": "Portal controller for Assessments", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L17"}, {"id": "portal_assessment_rationale_98", "label": "Start a new assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L98"}, {"id": "portal_assessment_rationale_123", "label": "View/edit an assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L123"}, {"id": "portal_assessment_rationale_173", "label": "Save assessment data (create or update)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L173"}, {"id": "portal_assessment_rationale_286", "label": "Signature capture page", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L286"}, {"id": "portal_assessment_rationale_319", "label": "Save a signature (AJAX)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L319"}, {"id": "portal_assessment_rationale_379", "label": "Complete the assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L379"}, {"id": "portal_assessment_rationale_421", "label": "Start a new express assessment (Page 1 - Equipment Selection)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L421"}, {"id": "portal_assessment_rationale_468", "label": "Continue/edit an express assessment", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L468"}, {"id": "portal_assessment_rationale_535", "label": "Save express assessment data (create or update)", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L535"}, {"id": "portal_assessment_rationale_804", "label": "Build values dict from express form POST data", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L804"}, {"id": "portal_assessment_rationale_1004", "label": "Return list of Canadian provinces for dropdown", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1004"}, {"id": "portal_assessment_rationale_1027", "label": "Public page for booking an accessibility assessment.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1027"}, {"id": "portal_assessment_rationale_1057", "label": "Process assessment booking form submission.", "file_type": "rationale", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1057"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "odoo", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L3", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "odoo_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L4", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "odoo_addons_portal_controllers_portal", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L5", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "odoo_exceptions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L6", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L7", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L8", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L9", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L10", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "markupsafe", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L11", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_assessmentportal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L16", "weight": 1.0}, {"source": "portal_assessment_assessmentportal", "target": "customerportal", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L16", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessments", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L20", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_new", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L97", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_view", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L122", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_save", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L172", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_signatures", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L285", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_save_signature", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L318", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_complete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L378", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_express_new", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L420", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_express_edit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L467", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_assessment_express_save", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L534", "weight": 1.0}, {"source": "portal_assessment_assessmentportal", "target": "portal_assessment_assessmentportal_build_express_assessment_vals", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L803", "weight": 1.0}, {"source": "portal_assessment_assessmentportal", "target": "portal_assessment_assessmentportal_get_canadian_provinces", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1003", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_book_assessment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1026", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", "target": "portal_assessment_portal_book_assessment_submit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1056", "weight": 1.0}, {"source": "portal_assessment_portal_assessment_express_new", "target": "portal_assessment_assessmentportal_get_canadian_provinces", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L455", "weight": 1.0}, {"source": "portal_assessment_portal_assessment_express_edit", "target": "portal_assessment_assessmentportal_get_canadian_provinces", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L523", "weight": 1.0}, {"source": "portal_assessment_portal_assessment_express_save", "target": "portal_assessment_assessmentportal_build_express_assessment_vals", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L548", "weight": 1.0}, {"source": "portal_assessment_rationale_17", "target": "portal_assessment_assessmentportal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L17", "weight": 1.0}, {"source": "portal_assessment_rationale_98", "target": "portal_assessment_assessmentportal_portal_assessment_new", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L98", "weight": 1.0}, {"source": "portal_assessment_rationale_123", "target": "portal_assessment_assessmentportal_portal_assessment_view", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L123", "weight": 1.0}, {"source": "portal_assessment_rationale_173", "target": "portal_assessment_assessmentportal_portal_assessment_save", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L173", "weight": 1.0}, {"source": "portal_assessment_rationale_286", "target": "portal_assessment_assessmentportal_portal_assessment_signatures", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L286", "weight": 1.0}, {"source": "portal_assessment_rationale_319", "target": "portal_assessment_assessmentportal_portal_save_signature", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L319", "weight": 1.0}, {"source": "portal_assessment_rationale_379", "target": "portal_assessment_assessmentportal_portal_assessment_complete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L379", "weight": 1.0}, {"source": "portal_assessment_rationale_421", "target": "portal_assessment_assessmentportal_portal_assessment_express_new", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L421", "weight": 1.0}, {"source": "portal_assessment_rationale_468", "target": "portal_assessment_assessmentportal_portal_assessment_express_edit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L468", "weight": 1.0}, {"source": "portal_assessment_rationale_535", "target": "portal_assessment_assessmentportal_portal_assessment_express_save", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L535", "weight": 1.0}, {"source": "portal_assessment_rationale_804", "target": "portal_assessment_assessmentportal_build_express_assessment_vals", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L804", "weight": 1.0}, {"source": "portal_assessment_rationale_1004", "target": "portal_assessment_assessmentportal_get_canadian_provinces", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1004", "weight": 1.0}, {"source": "portal_assessment_rationale_1027", "target": "portal_assessment_assessmentportal_portal_book_assessment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1027", "weight": 1.0}, {"source": "portal_assessment_rationale_1057", "target": "portal_assessment_assessmentportal_portal_book_assessment_submit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1057", "weight": 1.0}], "raw_calls": [{"caller_nid": "portal_assessment_portal_assessments", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L26"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L28"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L41"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L54"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L55"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L56"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L57"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L59"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "search_count", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L62"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "portal_pager", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L63"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L72"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L76"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L77"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L78"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L79"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L80"}, {"caller_nid": "portal_assessment_portal_assessments", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L94"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L103"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L106"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L106"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L114"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L114"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L115"}, {"caller_nid": "portal_assessment_portal_assessment_new", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L119"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L128"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L131"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L131"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L132"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L133"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L133"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L141"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L141"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L144"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L147"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L147"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L152"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L152"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L163"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L163"}, {"caller_nid": "portal_assessment_portal_assessment_view", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L169"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L178"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L180"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L184"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L185"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L186"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L187"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L188"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L189"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L190"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L191"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L192"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L193"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L194"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L195"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L196"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L197"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L198"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L208"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L210"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L210"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L217"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L218"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L224"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L225"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L228"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L230"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L230"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L235"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L237"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L237"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L244"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L244"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L245"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L246"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L246"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L254"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L254"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "ValidationError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L257"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L257"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L259"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L260"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L268"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L269"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L272"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L274"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L276"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L278"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L281"}, {"caller_nid": "portal_assessment_portal_assessment_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L282"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L291"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L294"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L294"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L295"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L296"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L296"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L304"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L304"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L307"}, {"caller_nid": "portal_assessment_portal_assessment_signatures", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L315"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L327"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L327"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L328"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "startswith", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L343"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L344"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L351"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L357"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L362"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L374"}, {"caller_nid": "portal_assessment_portal_save_signature", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L375"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L384"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L387"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L387"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L388"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L389"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L389"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L397"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L397"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "action_complete", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L400"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L404"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L406"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L409"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L410"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L412"}, {"caller_nid": "portal_assessment_portal_assessment_complete", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L413"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L426"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L429"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L429"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L434"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "dumps", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L434"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L440"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L440"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L445"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L446"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L454"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L454"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L456"}, {"caller_nid": "portal_assessment_portal_assessment_express_new", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L464"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L473"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L476"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L476"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L477"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L478"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L478"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L482"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L482"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L485"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L488"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L491"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L491"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L496"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "dumps", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L496"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L502"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L502"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L507"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L512"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L513"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L522"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L522"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L524"}, {"caller_nid": "portal_assessment_portal_assessment_express_edit", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L531"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L540"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L542"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L543"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L544"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L544"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L545"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L553"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L553"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "exists", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L554"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "MissingError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L555"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L555"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "AccessError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L558"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L558"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "items", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L570"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L572"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L573"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "ValidationError", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L575"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "_", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L575"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L578"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L579"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L584"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L585"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L588"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "read", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L593"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L594"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L597"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L597"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L605"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L607"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L610"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "startswith", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L611"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "split", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L614"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "now", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L617"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L620"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L620"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L621"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L622"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L622"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "strip", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L625"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L626"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L626"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L628"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L629"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L631"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "generate_template_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L640"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L643"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L644"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L652"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L652"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L655"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L658"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L660"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L668"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L671"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L671"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L680"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L690"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L696"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L698"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L701"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "action_complete_express", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L705"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L708"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L708"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "copy", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L717"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L721"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "message_post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L724"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "Markup", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L725"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L733"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "len", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L733"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L736"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L737"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L741"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L744"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L744"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L745"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L746"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L753"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L755"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L756"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L756"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "action_checkout", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L757"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L758"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L760"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "generate_template_pdf", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L765"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L768"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L769"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L774"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "with_context", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L774"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "b64encode", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L777"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "info", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L780"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "warning", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L782"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L784"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L786"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L787"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L787"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "unlink", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L791"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L792"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L795"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L798"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L800"}, {"caller_nid": "portal_assessment_portal_assessment_express_save", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L801"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L808"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L809"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L812"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L813"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L814"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L815"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L816"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L817"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L826"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "float", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L828"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L828"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L834"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L834"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L836"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L836"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L838"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L841"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L841"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L843"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L843"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L845"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L847"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L847"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L849"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L849"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L851"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L853"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L853"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L855"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L855"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L857"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L859"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L859"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L861"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L861"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L863"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L866"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L866"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L868"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L868"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L870"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "getlist", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L872"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "hasattr", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L872"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L874"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L874"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L876"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L879"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L880"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L883"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L884"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L887"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L888"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L889"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L890"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L893"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L894"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L897"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L898"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L899"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L900"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L901"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L902"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L906"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L907"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L907"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L908"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L909"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L909"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L910"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L911"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L911"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L913"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L916"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L917"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L918"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L919"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L922"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L923"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L924"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L925"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L926"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L927"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L928"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L929"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L930"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L931"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L932"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L934"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L934"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L939"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L940"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L941"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L942"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L947"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L949"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L954"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L955"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L958"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L960"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L960"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L965"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L967"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L967"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L977"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L978"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L980"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L983"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L985"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L998"}, {"caller_nid": "portal_assessment_assessmentportal_build_express_assessment_vals", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L999"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "ref", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1029"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1032"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1032"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1050"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1051"}, {"caller_nid": "portal_assessment_portal_book_assessment", "callee": "render", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1053"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1060"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1060"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1061"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1063"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1064"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1066"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1070"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1075"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "from_string", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1077"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1083"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "int", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1085"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1091"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1092"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1093"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1094"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1095"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1096"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1097"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "append", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1098"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1108"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1115"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1116"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "join", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1117"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1118"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1119"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1120"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1121"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1124"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1132"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1132"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1133"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "search", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1134"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1136"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1139"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1144"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "combine", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1151"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1151"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "time", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1151"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "timedelta", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1152"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1153"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1153"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1154"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "to_string", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1155"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "to_string", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1156"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1158"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1162"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1164"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "browse", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1166"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1166"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1168"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1170"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "_email_build", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1176"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1183"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1184"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1185"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "dict", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1185"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1186"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1187"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "replace", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1193"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "send", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1197"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "create", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1197"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1197"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1205"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1208"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "sudo", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1210"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "lower", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1211"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1211"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1213"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1214"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "get_param", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1215"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1217"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "all", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1223"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "post", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1225"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "write", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1230"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1232"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1234"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1237"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "redirect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1238"}, {"caller_nid": "portal_assessment_portal_book_assessment_submit", "callee": "str", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", "source_location": "L1238"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/cache/f62fec289b81d0b76b1fd5a3e0183426020cee0ac20c02d5c13241f8dbc615b6.json b/fusion_authorizer_portal/graphify-out/cache/f62fec289b81d0b76b1fd5a3e0183426020cee0ac20c02d5c13241f8dbc615b6.json deleted file mode 100644 index 1f12f180..00000000 --- a/fusion_authorizer_portal/graphify-out/cache/f62fec289b81d0b76b1fd5a3e0183426020cee0ac20c02d5c13241f8dbc615b6.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "label": "pdf_field_editor.js", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L1"}, {"id": "pdf_field_editor_builddatakeyoptions", "label": "buildDataKeyOptions()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L177"}, {"id": "pdf_field_editor_jsonrpc", "label": "jsonrpc()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L209"}, {"id": "pdf_field_editor_init", "label": "init()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L225"}, {"id": "pdf_field_editor_builddatakeyssidebar", "label": "buildDataKeysSidebar()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L243"}, {"id": "pdf_field_editor_loadfields", "label": "loadFields()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L260"}, {"id": "pdf_field_editor_renderfieldsforpage", "label": "renderFieldsForPage()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L273"}, {"id": "pdf_field_editor_renderfieldmarker", "label": "renderFieldMarker()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L281"}, {"id": "pdf_field_editor_onfielddragstart", "label": "onFieldDragStart()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L374"}, {"id": "pdf_field_editor_setuppalettedrag", "label": "setupPaletteDrag()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L389"}, {"id": "pdf_field_editor_setupcontainerdrop", "label": "setupContainerDrop()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L409"}, {"id": "pdf_field_editor_startresize", "label": "startResize()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L493"}, {"id": "pdf_field_editor_selectfield", "label": "selectField()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L539"}, {"id": "pdf_field_editor_savefield", "label": "saveField()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L648"}, {"id": "pdf_field_editor_setuppagenavigation", "label": "setupPageNavigation()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L656"}, {"id": "pdf_field_editor_switchpage", "label": "switchPage()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L663"}, {"id": "pdf_field_editor_setuppreviewbutton", "label": "setupPreviewButton()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L677"}, {"id": "pdf_field_editor_normalize", "label": "normalize()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L688"}, {"id": "pdf_field_editor_round3", "label": "round3()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L694"}, {"id": "pdf_field_editor_val", "label": "val()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L696"}, {"id": "pdf_field_editor_sel", "label": "sel()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L698"}, {"id": "pdf_field_editor_row", "label": "row()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L700"}, {"id": "pdf_field_editor_updatefieldcount", "label": "updateFieldCount()", "file_type": "code", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L706"}], "edges": [{"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_builddatakeyoptions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L177", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_jsonrpc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L209", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_init", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L225", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_builddatakeyssidebar", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L243", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_loadfields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L260", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_renderfieldsforpage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L273", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_renderfieldmarker", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L281", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_onfielddragstart", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L374", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_setuppalettedrag", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L389", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_setupcontainerdrop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L409", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_startresize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L493", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_selectfield", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L539", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_savefield", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L648", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_setuppagenavigation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L656", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_switchpage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L663", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_setuppreviewbutton", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L677", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_normalize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L688", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_round3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L694", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_val", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L696", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_sel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L698", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_row", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L700", "weight": 1.0}, {"source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", "target": "pdf_field_editor_updatefieldcount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L706", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_loadfields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L226", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_setuppagenavigation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L227", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_setuppalettedrag", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L228", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_setupcontainerdrop", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L229", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_setuppreviewbutton", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L230", "weight": 1.0}, {"source": "pdf_field_editor_init", "target": "pdf_field_editor_builddatakeyssidebar", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L231", "weight": 1.0}, {"source": "pdf_field_editor_loadfields", "target": "pdf_field_editor_jsonrpc", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L261", "weight": 1.0}, {"source": "pdf_field_editor_loadfields", "target": "pdf_field_editor_renderfieldsforpage", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L265", "weight": 1.0}, {"source": "pdf_field_editor_renderfieldsforpage", "target": "pdf_field_editor_renderfieldmarker", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L276", "weight": 1.0}, {"source": "pdf_field_editor_renderfieldsforpage", "target": "pdf_field_editor_updatefieldcount", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L278", "weight": 1.0}, {"source": "pdf_field_editor_renderfieldmarker", "target": "pdf_field_editor_startresize", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L339", "weight": 1.0}, {"source": "pdf_field_editor_renderfieldmarker", "target": "pdf_field_editor_onfielddragstart", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L347", "weight": 1.0}, {"source": "pdf_field_editor_renderfieldmarker", "target": "pdf_field_editor_selectfield", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L353", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_normalize", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L435", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_round3", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L437", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_jsonrpc", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L457", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_renderfieldsforpage", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L461", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_selectfield", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L462", "weight": 1.0}, {"source": "pdf_field_editor_setupcontainerdrop", "target": "pdf_field_editor_savefield", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L478", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_renderfieldsforpage", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L545", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_builddatakeyoptions", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L552", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_row", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L555", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_sel", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L560", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_round3", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L576", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_val", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L617", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_savefield", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L628", "weight": 1.0}, {"source": "pdf_field_editor_selectfield", "target": "pdf_field_editor_jsonrpc", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L635", "weight": 1.0}, {"source": "pdf_field_editor_savefield", "target": "pdf_field_editor_jsonrpc", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L649", "weight": 1.0}, {"source": "pdf_field_editor_setuppagenavigation", "target": "pdf_field_editor_switchpage", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L659", "weight": 1.0}, {"source": "pdf_field_editor_switchpage", "target": "pdf_field_editor_jsonrpc", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L667", "weight": 1.0}, {"source": "pdf_field_editor_switchpage", "target": "pdf_field_editor_renderfieldsforpage", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L669", "weight": 1.0}], "raw_calls": [{"caller_nid": "pdf_field_editor_builddatakeyoptions", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L179"}, {"caller_nid": "pdf_field_editor_builddatakeyoptions", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L181"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L210"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L210"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "fetch", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L210"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "stringify", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L213"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "json", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L214"}, {"caller_nid": "pdf_field_editor_jsonrpc", "callee": "error", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L216"}, {"caller_nid": "pdf_field_editor_init", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L238"}, {"caller_nid": "pdf_field_editor_init", "callee": "querySelectorAll", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L238"}, {"caller_nid": "pdf_field_editor_builddatakeyssidebar", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L244"}, {"caller_nid": "pdf_field_editor_builddatakeyssidebar", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L247"}, {"caller_nid": "pdf_field_editor_builddatakeyssidebar", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L249"}, {"caller_nid": "pdf_field_editor_loadfields", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L261"}, {"caller_nid": "pdf_field_editor_loadfields", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L264"}, {"caller_nid": "pdf_field_editor_renderfieldsforpage", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L274"}, {"caller_nid": "pdf_field_editor_renderfieldsforpage", "callee": "querySelectorAll", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L274"}, {"caller_nid": "pdf_field_editor_renderfieldsforpage", "callee": "remove", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L274"}, {"caller_nid": "pdf_field_editor_renderfieldsforpage", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L275"}, {"caller_nid": "pdf_field_editor_renderfieldsforpage", "callee": "values", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L275"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "createElement", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L284"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "setAttribute", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L287"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "assign", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L289"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "max", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L294"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "createElement", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L314"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "appendChild", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L320"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "createElement", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L323"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "assign", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L324"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L336"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "preventDefault", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L337"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "stopPropagation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L338"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "appendChild", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L341"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L347"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L348"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L351"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "stopPropagation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L352"}, {"caller_nid": "pdf_field_editor_renderfieldmarker", "callee": "appendChild", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L356"}, {"caller_nid": "pdf_field_editor_onfielddragstart", "callee": "getBoundingClientRect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L377"}, {"caller_nid": "pdf_field_editor_onfielddragstart", "callee": "setData", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L381"}, {"caller_nid": "pdf_field_editor_onfielddragstart", "callee": "requestAnimationFrame", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L382"}, {"caller_nid": "pdf_field_editor_setuppalettedrag", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L390"}, {"caller_nid": "pdf_field_editor_setuppalettedrag", "callee": "querySelectorAll", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L390"}, {"caller_nid": "pdf_field_editor_setuppalettedrag", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L391"}, {"caller_nid": "pdf_field_editor_setuppalettedrag", "callee": "setData", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L396"}, {"caller_nid": "pdf_field_editor_setuppalettedrag", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L399"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L411"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "preventDefault", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L412"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "stopPropagation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L413"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L417"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "preventDefault", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L418"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "stopPropagation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L419"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L422"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "preventDefault", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L423"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "stopPropagation", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L424"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "getBoundingClientRect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L428"}, {"caller_nid": "pdf_field_editor_setupcontainerdrop", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L457"}, {"caller_nid": "pdf_field_editor_startresize", "callee": "getBoundingClientRect", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L497"}, {"caller_nid": "pdf_field_editor_startresize", "callee": "querySelector", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L502"}, {"caller_nid": "pdf_field_editor_startresize", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L531"}, {"caller_nid": "pdf_field_editor_startresize", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L532"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L547"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L596"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L596"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L599"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L600"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "querySelectorAll", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L604"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L605"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L606"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "forEach", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L607"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "remove", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L607"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "add", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L608"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L612"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L612"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L613"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "querySelector", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L615"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "parseFloat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L621"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "parseInt", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L622"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "parseFloat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L623"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "parseFloat", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L624"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "assign", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L627"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L633"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L633"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "confirm", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L634"}, {"caller_nid": "pdf_field_editor_selectfield", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L635"}, {"caller_nid": "pdf_field_editor_setuppagenavigation", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L657"}, {"caller_nid": "pdf_field_editor_setuppagenavigation", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L658"}, {"caller_nid": "pdf_field_editor_setuppagenavigation", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L659"}, {"caller_nid": "pdf_field_editor_setuppagenavigation", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L660"}, {"caller_nid": "pdf_field_editor_switchpage", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L665"}, {"caller_nid": "pdf_field_editor_switchpage", "callee": "then", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L667"}, {"caller_nid": "pdf_field_editor_setuppreviewbutton", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L678"}, {"caller_nid": "pdf_field_editor_setuppreviewbutton", "callee": "addEventListener", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L679"}, {"caller_nid": "pdf_field_editor_setuppreviewbutton", "callee": "open", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L680"}, {"caller_nid": "pdf_field_editor_round3", "callee": "round", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L694"}, {"caller_nid": "pdf_field_editor_val", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L696"}, {"caller_nid": "pdf_field_editor_updatefieldcount", "callee": "getElementById", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L707"}, {"caller_nid": "pdf_field_editor_updatefieldcount", "callee": "keys", "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", "source_location": "L708"}]} \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/graph.html b/fusion_authorizer_portal/graphify-out/graph.html deleted file mode 100644 index 0b0f442f..00000000 --- a/fusion_authorizer_portal/graphify-out/graph.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - -graphify - /Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/graphify-out/graph.html - - - - -
- - - - - \ No newline at end of file diff --git a/fusion_authorizer_portal/graphify-out/graph.json b/fusion_authorizer_portal/graphify-out/graph.json deleted file mode 100644 index 54fc0856..00000000 --- a/fusion_authorizer_portal/graphify-out/graph.json +++ /dev/null @@ -1,10840 +0,0 @@ -{ - "directed": false, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "label": "__init__.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "community": 4, - "norm_label": "__init__.py" - }, - { - "label": "_reactivate_views()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L7", - "id": "init_reactivate_views", - "community": 4, - "norm_label": "_reactivate_views()" - }, - { - "label": "Ensure all module views are active after install/update. Odoo silently deac", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L8", - "id": "init_rationale_8", - "community": 4, - "norm_label": "ensure all module views are active after install/update. odoo silently deac" - }, - { - "label": "__manifest__.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__manifest__.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_manifest_py", - "community": 22, - "norm_label": "__manifest__.py" - }, - { - "label": "end-migrate.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", - "community": 13, - "norm_label": "end-migrate.py" - }, - { - "label": "migrate()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", - "source_location": "L24", - "id": "end_migrate_migrate", - "community": 13, - "norm_label": "migrate()" - }, - { - "label": "end-migrate.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", - "community": 13, - "norm_label": "end-migrate.py" - }, - { - "label": "end-migrate.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", - "community": 13, - "norm_label": "end-migrate.py" - }, - { - "label": "end-migrate.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", - "community": 13, - "norm_label": "end-migrate.py" - }, - { - "label": "pdf_filler.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "community": 6, - "norm_label": "pdf_filler.py" - }, - { - "label": "PDFTemplateFiller", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L21", - "id": "pdf_filler_pdftemplatefiller", - "community": 6, - "norm_label": "pdftemplatefiller" - }, - { - "label": "fill_template()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L25", - "id": "pdf_filler_fill_template", - "community": 6, - "norm_label": "fill_template()" - }, - { - "label": "_draw_field()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L89", - "id": "pdf_filler_draw_field", - "community": 6, - "norm_label": "_draw_field()" - }, - { - "label": "Generic PDF template filler. Works with any template, any number of pages.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L22", - "id": "pdf_filler_rationale_22", - "community": 6, - "norm_label": "generic pdf template filler. works with any template, any number of pages." - }, - { - "label": "Fill a PDF template by overlaying text/checkmarks/signatures at configured posit", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L26", - "id": "pdf_filler_rationale_26", - "community": 23, - "norm_label": "fill a pdf template by overlaying text/checkmarks/signatures at configured posit" - }, - { - "label": "Draw a single field onto the reportlab canvas. Args: c: rep", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L91", - "id": "pdf_filler_rationale_91", - "community": 24, - "norm_label": "draw a single field onto the reportlab canvas. args: c: rep" - }, - { - "label": "__init__.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/__init__.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", - "community": 19, - "norm_label": "__init__.py" - }, - { - "label": "assessment.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "community": 2, - "norm_label": "assessment.py" - }, - { - "label": "FusionAssessment", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L14", - "id": "assessment_fusionassessment", - "community": 2, - "norm_label": "fusionassessment" - }, - { - "label": "_compute_display_name()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L436", - "id": "assessment_compute_display_name", - "community": 2, - "norm_label": "_compute_display_name()" - }, - { - "label": "_compute_signatures_complete()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L447", - "id": "assessment_compute_signatures_complete", - "community": 2, - "norm_label": "_compute_signatures_complete()" - }, - { - "label": "_compute_document_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L452", - "id": "assessment_compute_document_count", - "community": 2, - "norm_label": "_compute_document_count()" - }, - { - "label": "create()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L457", - "id": "assessment_create", - "community": 2, - "norm_label": "create()" - }, - { - "label": ".action_mark_pending_signature()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L464", - "id": "assessment_fusionassessment_action_mark_pending_signature", - "community": 2, - "norm_label": ".action_mark_pending_signature()" - }, - { - "label": ".action_complete()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L470", - "id": "assessment_fusionassessment_action_complete", - "community": 2, - "norm_label": ".action_complete()" - }, - { - "label": ".action_complete_express()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L506", - "id": "assessment_fusionassessment_action_complete_express", - "community": 4, - "norm_label": ".action_complete_express()" - }, - { - "label": ".action_cancel()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L535", - "id": "assessment_fusionassessment_action_cancel", - "community": 2, - "norm_label": ".action_cancel()" - }, - { - "label": ".action_reset_draft()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L541", - "id": "assessment_fusionassessment_action_reset_draft", - "community": 2, - "norm_label": ".action_reset_draft()" - }, - { - "label": "._ensure_partner()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L547", - "id": "assessment_fusionassessment_ensure_partner", - "community": 2, - "norm_label": "._ensure_partner()" - }, - { - "label": "._create_draft_sale_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L587", - "id": "assessment_fusionassessment_create_draft_sale_order", - "community": 2, - "norm_label": "._create_draft_sale_order()" - }, - { - "label": "._schedule_followup_activity()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L854", - "id": "assessment_fusionassessment_schedule_followup_activity", - "community": 2, - "norm_label": "._schedule_followup_activity()" - }, - { - "label": "._send_assessment_completed_email()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L891", - "id": "assessment_fusionassessment_send_assessment_completed_email", - "community": 2, - "norm_label": "._send_assessment_completed_email()" - }, - { - "label": "._build_assessment_email_sections()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L954", - "id": "assessment_fusionassessment_build_assessment_email_sections", - "community": 2, - "norm_label": "._build_assessment_email_sections()" - }, - { - "label": "._format_assessment_html_table()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1164", - "id": "assessment_fusionassessment_format_assessment_html_table", - "community": 2, - "norm_label": "._format_assessment_html_table()" - }, - { - "label": "._format_specifications_for_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1372", - "id": "assessment_fusionassessment_format_specifications_for_order", - "community": 2, - "norm_label": "._format_specifications_for_order()" - }, - { - "label": "._generate_signed_documents()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1424", - "id": "assessment_fusionassessment_generate_signed_documents", - "community": 2, - "norm_label": "._generate_signed_documents()" - }, - { - "label": "._send_completion_notifications()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1454", - "id": "assessment_fusionassessment_send_completion_notifications", - "community": 2, - "norm_label": "._send_completion_notifications()" - }, - { - "label": ".action_view_documents()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1478", - "id": "assessment_fusionassessment_action_view_documents", - "community": 2, - "norm_label": ".action_view_documents()" - }, - { - "label": ".action_view_sale_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1491", - "id": "assessment_fusionassessment_action_view_sale_order", - "community": 2, - "norm_label": ".action_view_sale_order()" - }, - { - "label": "._get_pdf_context()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1508", - "id": "assessment_fusionassessment_get_pdf_context", - "community": 2, - "norm_label": "._get_pdf_context()" - }, - { - "label": "._get_pdf_signatures()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1596", - "id": "assessment_fusionassessment_get_pdf_signatures", - "community": 2, - "norm_label": "._get_pdf_signatures()" - }, - { - "label": ".generate_template_pdf()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1606", - "id": "assessment_fusionassessment_generate_template_pdf", - "community": 2, - "norm_label": ".generate_template_pdf()" - }, - { - "label": "Override create to generate reference number", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L458", - "id": "assessment_rationale_458", - "community": 25, - "norm_label": "override create to generate reference number" - }, - { - "label": "Move to pending signature state", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L465", - "id": "assessment_rationale_465", - "community": 2, - "norm_label": "move to pending signature state" - }, - { - "label": "Complete the assessment and create draft sale order", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L471", - "id": "assessment_rationale_471", - "community": 2, - "norm_label": "complete the assessment and create draft sale order" - }, - { - "label": "Complete express assessment and create draft sale order (no signatures required)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L507", - "id": "assessment_rationale_507", - "community": 4, - "norm_label": "complete express assessment and create draft sale order (no signatures required)" - }, - { - "label": "Cancel the assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L536", - "id": "assessment_rationale_536", - "community": 2, - "norm_label": "cancel the assessment" - }, - { - "label": "Ensure a partner exists for the client, create if needed", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L548", - "id": "assessment_rationale_548", - "community": 2, - "norm_label": "ensure a partner exists for the client, create if needed" - }, - { - "label": "Create a draft sale order from the assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L588", - "id": "assessment_rationale_588", - "community": 2, - "norm_label": "create a draft sale order from the assessment" - }, - { - "label": "Schedule a follow-up activity for the sales rep", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L855", - "id": "assessment_rationale_855", - "community": 2, - "norm_label": "schedule a follow-up activity for the sales rep" - }, - { - "label": "Send email notification to sales person, authorizer, and office about completed", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L892", - "id": "assessment_rationale_892", - "community": 2, - "norm_label": "send email notification to sales person, authorizer, and office about completed" - }, - { - "label": "Build comprehensive email sections with all assessment details. Returns", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L955", - "id": "assessment_rationale_955", - "community": 2, - "norm_label": "build comprehensive email sections with all assessment details. returns" - }, - { - "label": "Format assessment data as HTML table for chatter", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1165", - "id": "assessment_rationale_1165", - "community": 2, - "norm_label": "format assessment data as html table for chatter" - }, - { - "label": "Format wheelchair specifications for the sale order notes (legacy)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1373", - "id": "assessment_rationale_1373", - "community": 2, - "norm_label": "format wheelchair specifications for the sale order notes (legacy)" - }, - { - "label": "Generate document records for signed pages", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1425", - "id": "assessment_rationale_1425", - "community": 2, - "norm_label": "generate document records for signed pages" - }, - { - "label": "Send email notifications when assessment is completed", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1455", - "id": "assessment_rationale_1455", - "community": 2, - "norm_label": "send email notifications when assessment is completed" - }, - { - "label": "View related documents", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1479", - "id": "assessment_rationale_1479", - "community": 2, - "norm_label": "view related documents" - }, - { - "label": "View the created sale order", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1492", - "id": "assessment_rationale_1492", - "community": 2, - "norm_label": "view the created sale order" - }, - { - "label": "Return a flat dict of all assessment data for PDF template filling. Thi", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1509", - "id": "assessment_rationale_1509", - "community": 2, - "norm_label": "return a flat dict of all assessment data for pdf template filling. thi" - }, - { - "label": "Return a dict of signature binaries for PDF template filling.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1597", - "id": "assessment_rationale_1597", - "community": 2, - "norm_label": "return a dict of signature binaries for pdf template filling." - }, - { - "label": "Generate a filled PDF using the named template. Args: templ", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1607", - "id": "assessment_rationale_1607", - "community": 2, - "norm_label": "generate a filled pdf using the named template. args: templ" - }, - { - "label": "loaner_checkout.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", - "community": 16, - "norm_label": "loaner_checkout.py" - }, - { - "label": "FusionLoanerCheckoutAssessment", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", - "source_location": "L6", - "id": "loaner_checkout_fusionloanercheckoutassessment", - "community": 16, - "norm_label": "fusionloanercheckoutassessment" - }, - { - "label": ".action_view_assessment()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", - "source_location": "L17", - "id": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", - "community": 16, - "norm_label": ".action_view_assessment()" - }, - { - "label": "sale_order.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "community": 5, - "norm_label": "sale_order.py" - }, - { - "label": "SaleOrder", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L9", - "id": "sale_order_saleorder", - "community": 5, - "norm_label": "saleorder" - }, - { - "label": "_compute_portal_comment_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L67", - "id": "sale_order_compute_portal_comment_count", - "community": 5, - "norm_label": "_compute_portal_comment_count()" - }, - { - "label": "_compute_portal_document_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L72", - "id": "sale_order_compute_portal_document_count", - "community": 5, - "norm_label": "_compute_portal_document_count()" - }, - { - "label": "_compute_portal_authorizer_id()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L77", - "id": "sale_order_compute_portal_authorizer_id", - "community": 5, - "norm_label": "_compute_portal_authorizer_id()" - }, - { - "label": ".write()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L82", - "id": "sale_order_saleorder_write", - "community": 5, - "norm_label": ".write()" - }, - { - "label": ".action_message_authorizer()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L106", - "id": "sale_order_saleorder_action_message_authorizer", - "community": 5, - "norm_label": ".action_message_authorizer()" - }, - { - "label": "._send_authorizer_assignment_notification()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L128", - "id": "sale_order_saleorder_send_authorizer_assignment_notification", - "community": 5, - "norm_label": "._send_authorizer_assignment_notification()" - }, - { - "label": ".action_view_portal_comments()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L146", - "id": "sale_order_saleorder_action_view_portal_comments", - "community": 5, - "norm_label": ".action_view_portal_comments()" - }, - { - "label": ".action_view_portal_documents()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L159", - "id": "sale_order_saleorder_action_view_portal_documents", - "community": 5, - "norm_label": ".action_view_portal_documents()" - }, - { - "label": ".get_portal_display_data()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L172", - "id": "sale_order_saleorder_get_portal_display_data", - "community": 5, - "norm_label": ".get_portal_display_data()" - }, - { - "label": "._get_partner_address_display()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L194", - "id": "sale_order_saleorder_get_partner_address_display", - "community": 5, - "norm_label": "._get_partner_address_display()" - }, - { - "label": "._get_product_lines_for_portal()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L212", - "id": "sale_order_saleorder_get_product_lines_for_portal", - "community": 5, - "norm_label": "._get_product_lines_for_portal()" - }, - { - "label": "get_authorizer_portal_cases()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L228", - "id": "sale_order_get_authorizer_portal_cases", - "community": 5, - "norm_label": "get_authorizer_portal_cases()" - }, - { - "label": "get_sales_rep_portal_cases()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L241", - "id": "sale_order_get_sales_rep_portal_cases", - "community": 5, - "norm_label": "get_sales_rep_portal_cases()" - }, - { - "label": "._build_search_domain()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L253", - "id": "sale_order_saleorder_build_search_domain", - "community": 5, - "norm_label": "._build_search_domain()" - }, - { - "label": "Get authorizer from x_fc_authorizer_id field", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L78", - "id": "sale_order_rationale_78", - "community": 26, - "norm_label": "get authorizer from x_fc_authorizer_id field" - }, - { - "label": "Override write to send notification when authorizer is assigned.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L83", - "id": "sale_order_rationale_83", - "community": 5, - "norm_label": "override write to send notification when authorizer is assigned." - }, - { - "label": "Open composer to send message to authorizer only", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L107", - "id": "sale_order_rationale_107", - "community": 5, - "norm_label": "open composer to send message to authorizer only" - }, - { - "label": "Send email when an authorizer is assigned to the order", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L129", - "id": "sale_order_rationale_129", - "community": 5, - "norm_label": "send email when an authorizer is assigned to the order" - }, - { - "label": "View portal documents", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L160", - "id": "sale_order_rationale_160", - "community": 5, - "norm_label": "view portal documents" - }, - { - "label": "Get data for portal display, excluding sensitive information", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L173", - "id": "sale_order_rationale_173", - "community": 5, - "norm_label": "get data for portal display, excluding sensitive information" - }, - { - "label": "Get formatted partner address for display", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L195", - "id": "sale_order_rationale_195", - "community": 5, - "norm_label": "get formatted partner address for display" - }, - { - "label": "Get product lines for portal display (excluding costs)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L213", - "id": "sale_order_rationale_213", - "community": 5, - "norm_label": "get product lines for portal display (excluding costs)" - }, - { - "label": "Get cases for authorizer portal with optional search", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L229", - "id": "sale_order_rationale_229", - "community": 27, - "norm_label": "get cases for authorizer portal with optional search" - }, - { - "label": "Get cases for sales rep portal with optional search", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L242", - "id": "sale_order_rationale_242", - "community": 28, - "norm_label": "get cases for sales rep portal with optional search" - }, - { - "label": "Build search domain for portal search", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L254", - "id": "sale_order_rationale_254", - "community": 5, - "norm_label": "build search domain for portal search" - }, - { - "label": "# NOTE: Generic status change notifications removed.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L99", - "id": "sale_order_rationale_99", - "community": 5, - "norm_label": "# note: generic status change notifications removed." - }, - { - "label": "adp_document.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "community": 10, - "norm_label": "adp_document.py" - }, - { - "label": "ADPDocument", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L11", - "id": "adp_document_adpdocument", - "community": 10, - "norm_label": "adpdocument" - }, - { - "label": "_compute_file_size()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L114", - "id": "adp_document_compute_file_size", - "community": 10, - "norm_label": "_compute_file_size()" - }, - { - "label": "_compute_display_name()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L122", - "id": "adp_document_compute_display_name", - "community": 10, - "norm_label": "_compute_display_name()" - }, - { - "label": "create()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L129", - "id": "adp_document_create", - "community": 10, - "norm_label": "create()" - }, - { - "label": ".action_download()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L153", - "id": "adp_document_adpdocument_action_download", - "community": 10, - "norm_label": ".action_download()" - }, - { - "label": ".get_document_url()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L162", - "id": "adp_document_adpdocument_get_document_url", - "community": 10, - "norm_label": ".get_document_url()" - }, - { - "label": "get_documents_for_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L168", - "id": "adp_document_get_documents_for_order", - "community": 10, - "norm_label": "get_documents_for_order()" - }, - { - "label": "get_revision_history()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L178", - "id": "adp_document_get_revision_history", - "community": 10, - "norm_label": "get_revision_history()" - }, - { - "label": "Override create to handle revision numbering", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L130", - "id": "adp_document_rationale_130", - "community": 29, - "norm_label": "override create to handle revision numbering" - }, - { - "label": "Download the document", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L154", - "id": "adp_document_rationale_154", - "community": 10, - "norm_label": "download the document" - }, - { - "label": "Get the download URL for portal access", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L163", - "id": "adp_document_rationale_163", - "community": 10, - "norm_label": "get the download url for portal access" - }, - { - "label": "Get documents for a sale order, optionally filtered by type", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L169", - "id": "adp_document_rationale_169", - "community": 30, - "norm_label": "get documents for a sale order, optionally filtered by type" - }, - { - "label": "Get all revisions of a specific document type", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L179", - "id": "adp_document_rationale_179", - "community": 31, - "norm_label": "get all revisions of a specific document type" - }, - { - "label": "authorizer_comment.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "community": 14, - "norm_label": "authorizer_comment.py" - }, - { - "label": "AuthorizerComment", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L9", - "id": "authorizer_comment_authorizercomment", - "community": 14, - "norm_label": "authorizercomment" - }, - { - "label": "_compute_display_name()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L70", - "id": "authorizer_comment_compute_display_name", - "community": 14, - "norm_label": "_compute_display_name()" - }, - { - "label": "create()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L78", - "id": "authorizer_comment_create", - "community": 14, - "norm_label": "create()" - }, - { - "label": "Override create to set author from current user if not provided", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L79", - "id": "authorizer_comment_rationale_79", - "community": 32, - "norm_label": "override create to set author from current user if not provided" - }, - { - "label": "pdf_template.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "community": 6, - "norm_label": "pdf_template.py" - }, - { - "label": "FusionPdfTemplate", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L15", - "id": "pdf_template_fusionpdftemplate", - "community": 6, - "norm_label": "fusionpdftemplate" - }, - { - "label": ".write()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L65", - "id": "pdf_template_fusionpdftemplate_write", - "community": 6, - "norm_label": ".write()" - }, - { - "label": "create()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L76", - "id": "pdf_template_create", - "community": 6, - "norm_label": "create()" - }, - { - "label": "_compute_page_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L87", - "id": "pdf_template_compute_page_count", - "community": 6, - "norm_label": "_compute_page_count()" - }, - { - "label": ".action_generate_previews()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L101", - "id": "pdf_template_fusionpdftemplate_action_generate_previews", - "community": 6, - "norm_label": ".action_generate_previews()" - }, - { - "label": "_compute_field_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L172", - "id": "pdf_template_compute_field_count", - "community": 6, - "norm_label": "_compute_field_count()" - }, - { - "label": ".action_activate()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L176", - "id": "pdf_template_fusionpdftemplate_action_activate", - "community": 6, - "norm_label": ".action_activate()" - }, - { - "label": ".action_archive()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L183", - "id": "pdf_template_fusionpdftemplate_action_archive", - "community": 6, - "norm_label": ".action_archive()" - }, - { - "label": ".action_reset_draft()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L188", - "id": "pdf_template_fusionpdftemplate_action_reset_draft", - "community": 6, - "norm_label": ".action_reset_draft()" - }, - { - "label": ".action_open_field_editor()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L193", - "id": "pdf_template_fusionpdftemplate_action_open_field_editor", - "community": 6, - "norm_label": ".action_open_field_editor()" - }, - { - "label": ".generate_filled_pdf()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L202", - "id": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "community": 6, - "norm_label": ".generate_filled_pdf()" - }, - { - "label": "FusionPdfTemplatePreview", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L246", - "id": "pdf_template_fusionpdftemplatepreview", - "community": 6, - "norm_label": "fusionpdftemplatepreview" - }, - { - "label": "FusionPdfTemplateField", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L260", - "id": "pdf_template_fusionpdftemplatefield", - "community": 6, - "norm_label": "fusionpdftemplatefield" - }, - { - "label": "Generate PNG preview images from the PDF using poppler (pdftoppm). Falls", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L102", - "id": "pdf_template_rationale_102", - "community": 6, - "norm_label": "generate png preview images from the pdf using poppler (pdftoppm). falls" - }, - { - "label": "Set template to active.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L177", - "id": "pdf_template_rationale_177", - "community": 6, - "norm_label": "set template to active." - }, - { - "label": "Archive the template.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L184", - "id": "pdf_template_rationale_184", - "community": 6, - "norm_label": "archive the template." - }, - { - "label": "Open the visual field position editor.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L194", - "id": "pdf_template_rationale_194", - "community": 6, - "norm_label": "open the visual field position editor." - }, - { - "label": "Generate a filled PDF using this template and the provided data. Args:", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L203", - "id": "pdf_template_rationale_203", - "community": 6, - "norm_label": "generate a filled pdf using this template and the provided data. args:" - }, - { - "label": "__init__.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", - "community": 20, - "norm_label": "__init__.py" - }, - { - "label": "accessibility_assessment.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "community": 3, - "norm_label": "accessibility_assessment.py" - }, - { - "label": "FusionAccessibilityAssessment", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L13", - "id": "accessibility_assessment_fusionaccessibilityassessment", - "community": 3, - "norm_label": "fusionaccessibilityassessment" - }, - { - "label": "_expand_states()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L90", - "id": "accessibility_assessment_expand_states", - "community": 3, - "norm_label": "_expand_states()" - }, - { - "label": "_compute_display_name()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L364", - "id": "accessibility_assessment_compute_display_name", - "community": 3, - "norm_label": "_compute_display_name()" - }, - { - "label": "_compute_stair_straight_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L371", - "id": "accessibility_assessment_compute_stair_straight_length", - "community": 3, - "norm_label": "_compute_stair_straight_length()" - }, - { - "label": "_compute_stair_final_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L380", - "id": "accessibility_assessment_compute_stair_final_length", - "community": 3, - "norm_label": "_compute_stair_final_length()" - }, - { - "label": "_compute_stair_curved_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L391", - "id": "accessibility_assessment_compute_stair_curved_length", - "community": 3, - "norm_label": "_compute_stair_curved_length()" - }, - { - "label": "_compute_stair_curved_final_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L440", - "id": "accessibility_assessment_compute_stair_curved_final_length", - "community": 3, - "norm_label": "_compute_stair_curved_final_length()" - }, - { - "label": "_compute_ramp_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L449", - "id": "accessibility_assessment_compute_ramp_length", - "community": 3, - "norm_label": "_compute_ramp_length()" - }, - { - "label": "_compute_ramp_landings()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L458", - "id": "accessibility_assessment_compute_ramp_landings", - "community": 3, - "norm_label": "_compute_ramp_landings()" - }, - { - "label": "_compute_ramp_total_length()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L468", - "id": "accessibility_assessment_compute_ramp_total_length", - "community": 3, - "norm_label": "_compute_ramp_total_length()" - }, - { - "label": "create()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L481", - "id": "accessibility_assessment_create", - "community": 3, - "norm_label": "create()" - }, - { - "label": ".action_complete()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L493", - "id": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "community": 3, - "norm_label": ".action_complete()" - }, - { - "label": "._add_assessment_tag()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L551", - "id": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "community": 3, - "norm_label": "._add_assessment_tag()" - }, - { - "label": "._copy_photos_to_sale_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L582", - "id": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "community": 3, - "norm_label": "._copy_photos_to_sale_order()" - }, - { - "label": "._send_completion_email()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L624", - "id": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "community": 3, - "norm_label": "._send_completion_email()" - }, - { - "label": "._schedule_followup_activity()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L678", - "id": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "community": 3, - "norm_label": "._schedule_followup_activity()" - }, - { - "label": "._ensure_partner()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L709", - "id": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "community": 3, - "norm_label": "._ensure_partner()" - }, - { - "label": "._create_draft_sale_order()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L751", - "id": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "community": 3, - "norm_label": "._create_draft_sale_order()" - }, - { - "label": "._format_assessment_html_table()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L815", - "id": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "community": 3, - "norm_label": "._format_assessment_html_table()" - }, - { - "label": ".action_cancel()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L958", - "id": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "community": 3, - "norm_label": ".action_cancel()" - }, - { - "label": ".action_reset_to_draft()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L963", - "id": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", - "community": 3, - "norm_label": ".action_reset_to_draft()" - }, - { - "label": "Kanban group expansion \u2014 always show all 6 workflow states.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L91", - "id": "accessibility_assessment_rationale_91", - "community": 33, - "norm_label": "kanban group expansion \u2014 always show all 6 workflow states." - }, - { - "label": "Straight stair lift: (steps \u00d7 nose_to_nose) + 13\" top landing", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L372", - "id": "accessibility_assessment_rationale_372", - "community": 34, - "norm_label": "straight stair lift: (steps \u00d7 nose_to_nose) + 13\" top landing" - }, - { - "label": "Use manual override if provided, otherwise use calculated", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L381", - "id": "accessibility_assessment_rationale_381", - "community": 35, - "norm_label": "use manual override if provided, otherwise use calculated" - }, - { - "label": "Curved stair lift calculation: - 12\" per step - 16\" per curve", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L392", - "id": "accessibility_assessment_rationale_392", - "community": 36, - "norm_label": "curved stair lift calculation: - 12\" per step - 16\" per curve" - }, - { - "label": "Use manual override if provided, otherwise use calculated", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L441", - "id": "accessibility_assessment_rationale_441", - "community": 37, - "norm_label": "use manual override if provided, otherwise use calculated" - }, - { - "label": "Ontario Building Code: 12 inches length per 1 inch height (1:12 ratio)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L450", - "id": "accessibility_assessment_rationale_450", - "community": 38, - "norm_label": "ontario building code: 12 inches length per 1 inch height (1:12 ratio)" - }, - { - "label": "Landing required every 30 feet (360 inches)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L459", - "id": "accessibility_assessment_rationale_459", - "community": 39, - "norm_label": "landing required every 30 feet (360 inches)" - }, - { - "label": "Total length including landings (5 feet = 60 inches each)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L469", - "id": "accessibility_assessment_rationale_469", - "community": 40, - "norm_label": "total length including landings (5 feet = 60 inches each)" - }, - { - "label": "Complete the assessment and create a Sale Order. 2026-04 portal audit f", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L494", - "id": "accessibility_assessment_rationale_494", - "community": 3, - "norm_label": "complete the assessment and create a sale order. 2026-04 portal audit f" - }, - { - "label": "Add a tag to the sale order based on assessment type", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L552", - "id": "accessibility_assessment_rationale_552", - "community": 3, - "norm_label": "add a tag to the sale order based on assessment type" - }, - { - "label": "Copy assessment photos to sale order chatter", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L583", - "id": "accessibility_assessment_rationale_583", - "community": 3, - "norm_label": "copy assessment photos to sale order chatter" - }, - { - "label": "Send email notification to office about assessment completion", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L625", - "id": "accessibility_assessment_rationale_625", - "community": 3, - "norm_label": "send email notification to office about assessment completion" - }, - { - "label": "Schedule a follow-up activity for the sales rep", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L679", - "id": "accessibility_assessment_rationale_679", - "community": 3, - "norm_label": "schedule a follow-up activity for the sales rep" - }, - { - "label": "Find or create a partner for the client", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L710", - "id": "accessibility_assessment_rationale_710", - "community": 3, - "norm_label": "find or create a partner for the client" - }, - { - "label": "Create a draft sale order from the accessibility assessment. 2026-04 po", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L752", - "id": "accessibility_assessment_rationale_752", - "community": 3, - "norm_label": "create a draft sale order from the accessibility assessment. 2026-04 po" - }, - { - "label": "Format assessment details as HTML for chatter", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L816", - "id": "accessibility_assessment_rationale_816", - "community": 3, - "norm_label": "format assessment details as html for chatter" - }, - { - "label": "Cancel the assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L959", - "id": "accessibility_assessment_rationale_959", - "community": 3, - "norm_label": "cancel the assessment" - }, - { - "label": "res_users.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", - "community": 1, - "norm_label": "res_users.py" - }, - { - "label": "PortalWizardUser", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L10", - "id": "res_users_portalwizarduser", - "community": 1, - "norm_label": "portalwizarduser" - }, - { - "label": ".action_grant_access()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L14", - "id": "res_users_portalwizarduser_action_grant_access", - "community": 1, - "norm_label": ".action_grant_access()" - }, - { - "label": "ResUsers", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L67", - "id": "res_users_resusers", - "community": 1, - "norm_label": "resusers" - }, - { - "label": "._generate_tutorial_articles()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L70", - "id": "res_users_resusers_generate_tutorial_articles", - "community": 1, - "norm_label": "._generate_tutorial_articles()" - }, - { - "label": "Override standard portal wizard to handle internal users with Fusion roles.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L11", - "id": "res_users_rationale_11", - "community": 1, - "norm_label": "override standard portal wizard to handle internal users with fusion roles." - }, - { - "label": "Override: Handle Fusion portal roles when granting portal access. - Inte", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L15", - "id": "res_users_rationale_15", - "community": 1, - "norm_label": "override: handle fusion portal roles when granting portal access. - inte" - }, - { - "label": "Override to create custom welcome articles for internal staff instead of", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L71", - "id": "res_users_rationale_71", - "community": 1, - "norm_label": "override to create custom welcome articles for internal staff instead of" - }, - { - "label": "res_partner.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "community": 1, - "norm_label": "res_partner.py" - }, - { - "label": "ResPartner", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L11", - "id": "res_partner_respartner", - "community": 1, - "norm_label": "respartner" - }, - { - "label": "_compute_portal_access_status()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L90", - "id": "res_partner_compute_portal_access_status", - "community": 1, - "norm_label": "_compute_portal_access_status()" - }, - { - "label": "_compute_assigned_case_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L101", - "id": "res_partner_compute_assigned_case_count", - "community": 1, - "norm_label": "_compute_assigned_case_count()" - }, - { - "label": "_compute_assessment_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L113", - "id": "res_partner_compute_assessment_count", - "community": 1, - "norm_label": "_compute_assessment_count()" - }, - { - "label": "_compute_assigned_delivery_count()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L125", - "id": "res_partner_compute_assigned_delivery_count", - "community": 1, - "norm_label": "_compute_assigned_delivery_count()" - }, - { - "label": "._assign_portal_role_groups()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L136", - "id": "res_partner_respartner_assign_portal_role_groups", - "community": 1, - "norm_label": "._assign_portal_role_groups()" - }, - { - "label": "._assign_internal_role_groups()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L154", - "id": "res_partner_respartner_assign_internal_role_groups", - "community": 1, - "norm_label": "._assign_internal_role_groups()" - }, - { - "label": ".action_grant_portal_access()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L186", - "id": "res_partner_respartner_action_grant_portal_access", - "community": 1, - "norm_label": ".action_grant_portal_access()" - }, - { - "label": "._create_welcome_article()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L355", - "id": "res_partner_respartner_create_welcome_article", - "community": 1, - "norm_label": "._create_welcome_article()" - }, - { - "label": "._send_portal_invitation_email()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L431", - "id": "res_partner_respartner_send_portal_invitation_email", - "community": 1, - "norm_label": "._send_portal_invitation_email()" - }, - { - "label": ".action_resend_portal_invitation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L521", - "id": "res_partner_respartner_action_resend_portal_invitation", - "community": 1, - "norm_label": ".action_resend_portal_invitation()" - }, - { - "label": ".action_view_assigned_cases()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L591", - "id": "res_partner_respartner_action_view_assigned_cases", - "community": 1, - "norm_label": ".action_view_assigned_cases()" - }, - { - "label": ".action_view_assessments()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L604", - "id": "res_partner_respartner_action_view_assessments", - "community": 1, - "norm_label": ".action_view_assessments()" - }, - { - "label": ".action_mark_as_authorizer()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L624", - "id": "res_partner_respartner_action_mark_as_authorizer", - "community": 1, - "norm_label": ".action_mark_as_authorizer()" - }, - { - "label": ".action_batch_send_portal_invitation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L638", - "id": "res_partner_respartner_action_batch_send_portal_invitation", - "community": 1, - "norm_label": ".action_batch_send_portal_invitation()" - }, - { - "label": ".action_mark_and_send_invitation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L687", - "id": "res_partner_respartner_action_mark_and_send_invitation", - "community": 1, - "norm_label": ".action_mark_and_send_invitation()" - }, - { - "label": ".action_view_assigned_deliveries()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L692", - "id": "res_partner_respartner_action_view_assigned_deliveries", - "community": 1, - "norm_label": ".action_view_assigned_deliveries()" - }, - { - "label": ".action_mark_as_technician()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L706", - "id": "res_partner_respartner_action_mark_as_technician", - "community": 1, - "norm_label": ".action_mark_as_technician()" - }, - { - "label": "._geocode_address()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L724", - "id": "res_partner_respartner_geocode_address", - "community": 1, - "norm_label": "._geocode_address()" - }, - { - "label": ".write()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L756", - "id": "res_partner_respartner_write", - "community": 4, - "norm_label": ".write()" - }, - { - "label": "Compute portal access status based on user account and login history.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L91", - "id": "res_partner_rationale_91", - "community": 41, - "norm_label": "compute portal access status based on user account and login history." - }, - { - "label": "Count sale orders where this partner is the authorizer", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L102", - "id": "res_partner_rationale_102", - "community": 42, - "norm_label": "count sale orders where this partner is the authorizer" - }, - { - "label": "Count assessments where this partner is involved", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L114", - "id": "res_partner_rationale_114", - "community": 43, - "norm_label": "count assessments where this partner is involved" - }, - { - "label": "Count sale orders assigned to this partner as delivery technician", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L126", - "id": "res_partner_rationale_126", - "community": 44, - "norm_label": "count sale orders assigned to this partner as delivery technician" - }, - { - "label": "Assign role-specific portal groups to a portal user based on contact checkboxes.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L137", - "id": "res_partner_rationale_137", - "community": 1, - "norm_label": "assign role-specific portal groups to a portal user based on contact checkboxes." - }, - { - "label": "Assign backend groups to an internal user based on contact checkboxes. A", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L155", - "id": "res_partner_rationale_155", - "community": 1, - "norm_label": "assign backend groups to an internal user based on contact checkboxes. a" - }, - { - "label": "Grant portal access to this partner, or update permissions for existing users.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L187", - "id": "res_partner_rationale_187", - "community": 1, - "norm_label": "grant portal access to this partner, or update permissions for existing users." - }, - { - "label": "Create a role-specific welcome Knowledge article for the new portal user.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L356", - "id": "res_partner_rationale_356", - "community": 1, - "norm_label": "create a role-specific welcome knowledge article for the new portal user." - }, - { - "label": "Send a professional portal invitation email to the partner. Gen", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L432", - "id": "res_partner_rationale_432", - "community": 1, - "norm_label": "send a professional portal invitation email to the partner. gen" - }, - { - "label": "Resend portal invitation email to an existing portal user.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L522", - "id": "res_partner_rationale_522", - "community": 1, - "norm_label": "resend portal invitation email to an existing portal user." - }, - { - "label": "Open the list of assigned sale orders", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L592", - "id": "res_partner_rationale_592", - "community": 1, - "norm_label": "open the list of assigned sale orders" - }, - { - "label": "Open the list of assessments for this partner", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L605", - "id": "res_partner_rationale_605", - "community": 1, - "norm_label": "open the list of assessments for this partner" - }, - { - "label": "Batch action to mark selected contacts as authorizers", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L625", - "id": "res_partner_rationale_625", - "community": 1, - "norm_label": "batch action to mark selected contacts as authorizers" - }, - { - "label": "Batch action to send portal invitations to selected authorizers", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L639", - "id": "res_partner_rationale_639", - "community": 1, - "norm_label": "batch action to send portal invitations to selected authorizers" - }, - { - "label": "Combined action: mark as authorizer and send invitation", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L688", - "id": "res_partner_rationale_688", - "community": 1, - "norm_label": "combined action: mark as authorizer and send invitation" - }, - { - "label": "Open the list of assigned deliveries for technician", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L693", - "id": "res_partner_rationale_693", - "community": 1, - "norm_label": "open the list of assigned deliveries for technician" - }, - { - "label": "Batch action to mark selected contacts as technicians", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L707", - "id": "res_partner_rationale_707", - "community": 1, - "norm_label": "batch action to mark selected contacts as technicians" - }, - { - "label": "Geocode partner address using Google Geocoding API and cache lat/lng.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L725", - "id": "res_partner_rationale_725", - "community": 1, - "norm_label": "geocode partner address using google geocoding api and cache lat/lng." - }, - { - "label": "Override write to auto-geocode when address changes.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L757", - "id": "res_partner_rationale_757", - "community": 4, - "norm_label": "override write to auto-geocode when address changes." - }, - { - "label": "assessment_form.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/assessment_form.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_assessment_form_js", - "community": 45, - "norm_label": "assessment_form.js" - }, - { - "label": "technician_sw.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_sw.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_sw_js", - "community": 46, - "norm_label": "technician_sw.js" - }, - { - "label": "chatter_message_authorizer.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", - "community": 17, - "norm_label": "chatter_message_authorizer.js" - }, - { - "label": "setup()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", - "source_location": "L14", - "id": "chatter_message_authorizer_setup", - "community": 17, - "norm_label": "setup()" - }, - { - "label": "onClickMessageAuthorizer()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", - "source_location": "L20", - "id": "chatter_message_authorizer_onclickmessageauthorizer", - "community": 17, - "norm_label": "onclickmessageauthorizer()" - }, - { - "label": "timezone_detect.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "community": 15, - "norm_label": "timezone_detect.js" - }, - { - "label": "start()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L8", - "id": "timezone_detect_start", - "community": 15, - "norm_label": "start()" - }, - { - "label": "_detectAndSaveTimezone()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L13", - "id": "timezone_detect_detectandsavetimezone", - "community": 15, - "norm_label": "_detectandsavetimezone()" - }, - { - "label": "_getCookie()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L30", - "id": "timezone_detect_getcookie", - "community": 15, - "norm_label": "_getcookie()" - }, - { - "label": "technician_location.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "community": 9, - "norm_label": "technician_location.js" - }, - { - "label": "ensureModal()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L26", - "id": "technician_location_ensuremodal", - "community": 9, - "norm_label": "ensuremodal()" - }, - { - "label": "showModal()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L54", - "id": "technician_location_showmodal", - "community": 9, - "norm_label": "showmodal()" - }, - { - "label": "hideModal()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L59", - "id": "technician_location_hidemodal", - "community": 9, - "norm_label": "hidemodal()" - }, - { - "label": "showDeniedBanner()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L69", - "id": "technician_location_showdeniedbanner", - "community": 9, - "norm_label": "showdeniedbanner()" - }, - { - "label": "getLocation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L87", - "id": "technician_location_getlocation", - "community": 9, - "norm_label": "getlocation()" - }, - { - "label": "openGoogleMapsNav()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L120", - "id": "technician_location_opengooglemapsnav", - "community": 9, - "norm_label": "opengooglemapsnav()" - }, - { - "label": "isTechnicianPortal()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L144", - "id": "technician_location_istechnicianportal", - "community": 9, - "norm_label": "istechnicianportal()" - }, - { - "label": "checkClockStatus()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L148", - "id": "technician_location_checkclockstatus", - "community": 9, - "norm_label": "checkclockstatus()" - }, - { - "label": "logLocation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L171", - "id": "technician_location_loglocation", - "community": 9, - "norm_label": "loglocation()" - }, - { - "label": "startLocationTimer()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L202", - "id": "technician_location_startlocationtimer", - "community": 9, - "norm_label": "startlocationtimer()" - }, - { - "label": "stopLocationTimer()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L208", - "id": "technician_location_stoplocationtimer", - "community": 9, - "norm_label": "stoplocationtimer()" - }, - { - "label": "startLocationLogging()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L215", - "id": "technician_location_startlocationlogging", - "community": 9, - "norm_label": "startlocationlogging()" - }, - { - "label": "loaner_portal.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/loaner_portal.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_loaner_portal_js", - "community": 47, - "norm_label": "loaner_portal.js" - }, - { - "label": "technician_push.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", - "community": 18, - "norm_label": "technician_push.js" - }, - { - "label": "urlBase64ToUint8Array()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L23", - "id": "technician_push_urlbase64touint8array", - "community": 18, - "norm_label": "urlbase64touint8array()" - }, - { - "label": "registerPushSubscription()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L34", - "id": "technician_push_registerpushsubscription", - "community": 18, - "norm_label": "registerpushsubscription()" - }, - { - "label": "signature_pad.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/signature_pad.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_signature_pad_js", - "community": 48, - "norm_label": "signature_pad.js" - }, - { - "label": "pdf_field_editor.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "community": 8, - "norm_label": "pdf_field_editor.js" - }, - { - "label": "buildDataKeyOptions()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L177", - "id": "pdf_field_editor_builddatakeyoptions", - "community": 8, - "norm_label": "builddatakeyoptions()" - }, - { - "label": "jsonrpc()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L209", - "id": "pdf_field_editor_jsonrpc", - "community": 8, - "norm_label": "jsonrpc()" - }, - { - "label": "init()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L225", - "id": "pdf_field_editor_init", - "community": 8, - "norm_label": "init()" - }, - { - "label": "buildDataKeysSidebar()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L243", - "id": "pdf_field_editor_builddatakeyssidebar", - "community": 8, - "norm_label": "builddatakeyssidebar()" - }, - { - "label": "loadFields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L260", - "id": "pdf_field_editor_loadfields", - "community": 8, - "norm_label": "loadfields()" - }, - { - "label": "renderFieldsForPage()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L273", - "id": "pdf_field_editor_renderfieldsforpage", - "community": 8, - "norm_label": "renderfieldsforpage()" - }, - { - "label": "renderFieldMarker()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L281", - "id": "pdf_field_editor_renderfieldmarker", - "community": 8, - "norm_label": "renderfieldmarker()" - }, - { - "label": "onFieldDragStart()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L374", - "id": "pdf_field_editor_onfielddragstart", - "community": 8, - "norm_label": "onfielddragstart()" - }, - { - "label": "setupPaletteDrag()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L389", - "id": "pdf_field_editor_setuppalettedrag", - "community": 8, - "norm_label": "setuppalettedrag()" - }, - { - "label": "setupContainerDrop()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L409", - "id": "pdf_field_editor_setupcontainerdrop", - "community": 8, - "norm_label": "setupcontainerdrop()" - }, - { - "label": "startResize()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L493", - "id": "pdf_field_editor_startresize", - "community": 8, - "norm_label": "startresize()" - }, - { - "label": "selectField()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L539", - "id": "pdf_field_editor_selectfield", - "community": 8, - "norm_label": "selectfield()" - }, - { - "label": "saveField()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L648", - "id": "pdf_field_editor_savefield", - "community": 8, - "norm_label": "savefield()" - }, - { - "label": "setupPageNavigation()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L656", - "id": "pdf_field_editor_setuppagenavigation", - "community": 8, - "norm_label": "setuppagenavigation()" - }, - { - "label": "switchPage()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L663", - "id": "pdf_field_editor_switchpage", - "community": 8, - "norm_label": "switchpage()" - }, - { - "label": "setupPreviewButton()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L677", - "id": "pdf_field_editor_setuppreviewbutton", - "community": 8, - "norm_label": "setuppreviewbutton()" - }, - { - "label": "normalize()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L688", - "id": "pdf_field_editor_normalize", - "community": 8, - "norm_label": "normalize()" - }, - { - "label": "round3()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L694", - "id": "pdf_field_editor_round3", - "community": 8, - "norm_label": "round3()" - }, - { - "label": "val()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L696", - "id": "pdf_field_editor_val", - "community": 8, - "norm_label": "val()" - }, - { - "label": "sel()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L698", - "id": "pdf_field_editor_sel", - "community": 8, - "norm_label": "sel()" - }, - { - "label": "row()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L700", - "id": "pdf_field_editor_row", - "community": 8, - "norm_label": "row()" - }, - { - "label": "updateFieldCount()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L706", - "id": "pdf_field_editor_updatefieldcount", - "community": 8, - "norm_label": "updatefieldcount()" - }, - { - "label": "portal_search.js", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/portal_search.js", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_portal_search_js", - "community": 49, - "norm_label": "portal_search.js" - }, - { - "label": "portal_page11_sign.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "community": 12, - "norm_label": "portal_page11_sign.py" - }, - { - "label": "Page11PublicSignController", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L15", - "id": "portal_page11_sign_page11publicsigncontroller", - "community": 12, - "norm_label": "page11publicsigncontroller" - }, - { - "label": "._get_sign_request()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L17", - "id": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "community": 12, - "norm_label": "._get_sign_request()" - }, - { - "label": "page11_sign_form()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L38", - "id": "portal_page11_sign_page11_sign_form", - "community": 12, - "norm_label": "page11_sign_form()" - }, - { - "label": "page11_sign_submit()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L109", - "id": "portal_page11_sign_page11_sign_submit", - "community": 12, - "norm_label": "page11_sign_submit()" - }, - { - "label": "page11_download_pdf()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L186", - "id": "portal_page11_sign_page11_download_pdf", - "community": 12, - "norm_label": "page11_download_pdf()" - }, - { - "label": "Look up and validate a signing request by token.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L18", - "id": "portal_page11_sign_rationale_18", - "community": 12, - "norm_label": "look up and validate a signing request by token." - }, - { - "label": "Display the Page 11 signing form.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L39", - "id": "portal_page11_sign_rationale_39", - "community": 50, - "norm_label": "display the page 11 signing form." - }, - { - "label": "Process the submitted Page 11 signature.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L110", - "id": "portal_page11_sign_rationale_110", - "community": 51, - "norm_label": "process the submitted page 11 signature." - }, - { - "label": "Download the signed Page 11 PDF.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L187", - "id": "portal_page11_sign_rationale_187", - "community": 52, - "norm_label": "download the signed page 11 pdf." - }, - { - "label": "portal_assessment.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "community": 4, - "norm_label": "portal_assessment.py" - }, - { - "label": "AssessmentPortal", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L16", - "id": "portal_assessment_assessmentportal", - "community": 4, - "norm_label": "assessmentportal" - }, - { - "label": "CustomerPortal", - "file_type": "code", - "source_file": "", - "source_location": "", - "id": "customerportal", - "community": 4, - "norm_label": "customerportal" - }, - { - "label": "portal_assessments()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L20", - "id": "portal_assessment_portal_assessments", - "community": 4, - "norm_label": "portal_assessments()" - }, - { - "label": "portal_assessment_new()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L97", - "id": "portal_assessment_portal_assessment_new", - "community": 4, - "norm_label": "portal_assessment_new()" - }, - { - "label": "portal_assessment_view()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L122", - "id": "portal_assessment_portal_assessment_view", - "community": 4, - "norm_label": "portal_assessment_view()" - }, - { - "label": "portal_assessment_save()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L172", - "id": "portal_assessment_portal_assessment_save", - "community": 4, - "norm_label": "portal_assessment_save()" - }, - { - "label": "portal_assessment_signatures()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L285", - "id": "portal_assessment_portal_assessment_signatures", - "community": 4, - "norm_label": "portal_assessment_signatures()" - }, - { - "label": "portal_save_signature()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L318", - "id": "portal_assessment_portal_save_signature", - "community": 4, - "norm_label": "portal_save_signature()" - }, - { - "label": "portal_assessment_complete()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L378", - "id": "portal_assessment_portal_assessment_complete", - "community": 3, - "norm_label": "portal_assessment_complete()" - }, - { - "label": "portal_assessment_express_new()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L420", - "id": "portal_assessment_portal_assessment_express_new", - "community": 4, - "norm_label": "portal_assessment_express_new()" - }, - { - "label": "portal_assessment_express_edit()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L467", - "id": "portal_assessment_portal_assessment_express_edit", - "community": 4, - "norm_label": "portal_assessment_express_edit()" - }, - { - "label": "portal_assessment_express_save()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L534", - "id": "portal_assessment_portal_assessment_express_save", - "community": 4, - "norm_label": "portal_assessment_express_save()" - }, - { - "label": "._build_express_assessment_vals()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L803", - "id": "portal_assessment_assessmentportal_build_express_assessment_vals", - "community": 4, - "norm_label": "._build_express_assessment_vals()" - }, - { - "label": "._get_canadian_provinces()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1003", - "id": "portal_assessment_assessmentportal_get_canadian_provinces", - "community": 4, - "norm_label": "._get_canadian_provinces()" - }, - { - "label": "portal_book_assessment()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1026", - "id": "portal_assessment_portal_book_assessment", - "community": 4, - "norm_label": "portal_book_assessment()" - }, - { - "label": "portal_book_assessment_submit()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1056", - "id": "portal_assessment_portal_book_assessment_submit", - "community": 4, - "norm_label": "portal_book_assessment_submit()" - }, - { - "label": "Portal controller for Assessments", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L17", - "id": "portal_assessment_rationale_17", - "community": 4, - "norm_label": "portal controller for assessments" - }, - { - "label": "Start a new assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L98", - "id": "portal_assessment_rationale_98", - "community": 53, - "norm_label": "start a new assessment" - }, - { - "label": "View/edit an assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L123", - "id": "portal_assessment_rationale_123", - "community": 54, - "norm_label": "view/edit an assessment" - }, - { - "label": "Save assessment data (create or update)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L173", - "id": "portal_assessment_rationale_173", - "community": 55, - "norm_label": "save assessment data (create or update)" - }, - { - "label": "Signature capture page", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L286", - "id": "portal_assessment_rationale_286", - "community": 56, - "norm_label": "signature capture page" - }, - { - "label": "Save a signature (AJAX)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L319", - "id": "portal_assessment_rationale_319", - "community": 57, - "norm_label": "save a signature (ajax)" - }, - { - "label": "Complete the assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L379", - "id": "portal_assessment_rationale_379", - "community": 58, - "norm_label": "complete the assessment" - }, - { - "label": "Start a new express assessment (Page 1 - Equipment Selection)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L421", - "id": "portal_assessment_rationale_421", - "community": 59, - "norm_label": "start a new express assessment (page 1 - equipment selection)" - }, - { - "label": "Continue/edit an express assessment", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L468", - "id": "portal_assessment_rationale_468", - "community": 60, - "norm_label": "continue/edit an express assessment" - }, - { - "label": "Save express assessment data (create or update)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L535", - "id": "portal_assessment_rationale_535", - "community": 61, - "norm_label": "save express assessment data (create or update)" - }, - { - "label": "Build values dict from express form POST data", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L804", - "id": "portal_assessment_rationale_804", - "community": 4, - "norm_label": "build values dict from express form post data" - }, - { - "label": "Return list of Canadian provinces for dropdown", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1004", - "id": "portal_assessment_rationale_1004", - "community": 4, - "norm_label": "return list of canadian provinces for dropdown" - }, - { - "label": "Public page for booking an accessibility assessment.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1027", - "id": "portal_assessment_rationale_1027", - "community": 62, - "norm_label": "public page for booking an accessibility assessment." - }, - { - "label": "Process assessment booking form submission.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1057", - "id": "portal_assessment_rationale_1057", - "community": 63, - "norm_label": "process assessment booking form submission." - }, - { - "label": "pdf_editor.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "community": 11, - "norm_label": "pdf_editor.py" - }, - { - "label": "FusionPdfEditorController", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L15", - "id": "pdf_editor_fusionpdfeditorcontroller", - "community": 11, - "norm_label": "fusionpdfeditorcontroller" - }, - { - "label": "pdf_field_editor()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L23", - "id": "pdf_editor_pdf_field_editor", - "community": 11, - "norm_label": "pdf_field_editor()" - }, - { - "label": "get_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L52", - "id": "pdf_editor_get_fields", - "community": 11, - "norm_label": "get_fields()" - }, - { - "label": "update_field()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L68", - "id": "pdf_editor_update_field", - "community": 11, - "norm_label": "update_field()" - }, - { - "label": "create_field()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L90", - "id": "pdf_editor_create_field", - "community": 11, - "norm_label": "create_field()" - }, - { - "label": "delete_field()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L118", - "id": "pdf_editor_delete_field", - "community": 11, - "norm_label": "delete_field()" - }, - { - "label": "get_page_image()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L130", - "id": "pdf_editor_get_page_image", - "community": 11, - "norm_label": "get_page_image()" - }, - { - "label": "upload_preview_image()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L147", - "id": "pdf_editor_upload_preview_image", - "community": 11, - "norm_label": "upload_preview_image()" - }, - { - "label": "preview_pdf()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L181", - "id": "pdf_editor_preview_pdf", - "community": 6, - "norm_label": "preview_pdf()" - }, - { - "label": "Controller for the PDF field position visual editor.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L16", - "id": "pdf_editor_rationale_16", - "community": 11, - "norm_label": "controller for the pdf field position visual editor." - }, - { - "label": "Render the visual field editor for a PDF template.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L24", - "id": "pdf_editor_rationale_24", - "community": 64, - "norm_label": "render the visual field editor for a pdf template." - }, - { - "label": "Return all fields for a template.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L53", - "id": "pdf_editor_rationale_53", - "community": 65, - "norm_label": "return all fields for a template." - }, - { - "label": "Update a field's position or properties.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L69", - "id": "pdf_editor_rationale_69", - "community": 66, - "norm_label": "update a field's position or properties." - }, - { - "label": "Create a new field on a template.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L91", - "id": "pdf_editor_rationale_91", - "community": 67, - "norm_label": "create a new field on a template." - }, - { - "label": "Delete a field from a template.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L119", - "id": "pdf_editor_rationale_119", - "community": 68, - "norm_label": "delete a field from a template." - }, - { - "label": "Return the preview image URL for a specific page.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L131", - "id": "pdf_editor_rationale_131", - "community": 69, - "norm_label": "return the preview image url for a specific page." - }, - { - "label": "Upload a preview image for a template page directly from the editor.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L148", - "id": "pdf_editor_rationale_148", - "community": 70, - "norm_label": "upload a preview image for a template page directly from the editor." - }, - { - "label": "Generate a preview filled PDF with sample data.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L182", - "id": "pdf_editor_rationale_182", - "community": 71, - "norm_label": "generate a preview filled pdf with sample data." - }, - { - "label": "__init__.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", - "community": 21, - "norm_label": "__init__.py" - }, - { - "label": "portal_main.py", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1", - "id": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "community": 0, - "norm_label": "portal_main.py" - }, - { - "label": "AuthorizerPortal", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L14", - "id": "portal_main_authorizerportal", - "community": 7, - "norm_label": "authorizerportal" - }, - { - "label": "._get_user_tz()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L17", - "id": "portal_main_authorizerportal_get_user_tz", - "community": 0, - "norm_label": "._get_user_tz()" - }, - { - "label": "timezone_auto_detect()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L42", - "id": "portal_main_timezone_auto_detect", - "community": 4, - "norm_label": "timezone_auto_detect()" - }, - { - "label": "home()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L57", - "id": "portal_main_home", - "community": 0, - "norm_label": "home()" - }, - { - "label": "._prepare_home_portal_values()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L91", - "id": "portal_main_authorizerportal_prepare_home_portal_values", - "community": 7, - "norm_label": "._prepare_home_portal_values()" - }, - { - "label": "._get_adp_posting_info()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L138", - "id": "portal_main_authorizerportal_get_adp_posting_info", - "community": 0, - "norm_label": "._get_adp_posting_info()" - }, - { - "label": "authorizer_dashboard()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L211", - "id": "portal_main_authorizer_dashboard", - "community": 0, - "norm_label": "authorizer_dashboard()" - }, - { - "label": "authorizer_cases()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L292", - "id": "portal_main_authorizer_cases", - "community": 0, - "norm_label": "authorizer_cases()" - }, - { - "label": "authorizer_cases_search()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L370", - "id": "portal_main_authorizer_cases_search", - "community": 5, - "norm_label": "authorizer_cases_search()" - }, - { - "label": "authorizer_case_detail()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L401", - "id": "portal_main_authorizer_case_detail", - "community": 0, - "norm_label": "authorizer_case_detail()" - }, - { - "label": "authorizer_add_comment()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L461", - "id": "portal_main_authorizer_add_comment", - "community": 3, - "norm_label": "authorizer_add_comment()" - }, - { - "label": "authorizer_upload_document()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L510", - "id": "portal_main_authorizer_upload_document", - "community": 3, - "norm_label": "authorizer_upload_document()" - }, - { - "label": "authorizer_download_document()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L547", - "id": "portal_main_authorizer_download_document", - "community": 0, - "norm_label": "authorizer_download_document()" - }, - { - "label": "authorizer_download_attachment()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L590", - "id": "portal_main_authorizer_download_attachment", - "community": 0, - "norm_label": "authorizer_download_attachment()" - }, - { - "label": "authorizer_view_photo()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L648", - "id": "portal_main_authorizer_view_photo", - "community": 0, - "norm_label": "authorizer_view_photo()" - }, - { - "label": "sales_rep_dashboard()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L691", - "id": "portal_main_sales_rep_dashboard", - "community": 0, - "norm_label": "sales_rep_dashboard()" - }, - { - "label": "sales_rep_cases()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L764", - "id": "portal_main_sales_rep_cases", - "community": 0, - "norm_label": "sales_rep_cases()" - }, - { - "label": "sales_rep_cases_search()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L824", - "id": "portal_main_sales_rep_cases_search", - "community": 5, - "norm_label": "sales_rep_cases_search()" - }, - { - "label": "sales_rep_case_detail()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L856", - "id": "portal_main_sales_rep_case_detail", - "community": 0, - "norm_label": "sales_rep_case_detail()" - }, - { - "label": "sales_rep_add_comment()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L916", - "id": "portal_main_sales_rep_add_comment", - "community": 3, - "norm_label": "sales_rep_add_comment()" - }, - { - "label": "client_funding_claims()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L981", - "id": "portal_main_client_funding_claims", - "community": 0, - "norm_label": "client_funding_claims()" - }, - { - "label": "client_funding_claim_detail()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1024", - "id": "portal_main_client_funding_claim_detail", - "community": 0, - "norm_label": "client_funding_claim_detail()" - }, - { - "label": "client_download_document()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1061", - "id": "portal_main_client_download_document", - "community": 0, - "norm_label": "client_download_document()" - }, - { - "label": "client_download_proof_of_delivery()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1094", - "id": "portal_main_client_download_proof_of_delivery", - "community": 0, - "norm_label": "client_download_proof_of_delivery()" - }, - { - "label": "._get_clock_status_data()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1128", - "id": "portal_main_authorizerportal_get_clock_status_data", - "community": 0, - "norm_label": "._get_clock_status_data()" - }, - { - "label": "._check_technician_access()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1179", - "id": "portal_main_authorizerportal_check_technician_access", - "community": 0, - "norm_label": "._check_technician_access()" - }, - { - "label": "technician_dashboard()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1195", - "id": "portal_main_technician_dashboard", - "community": 0, - "norm_label": "technician_dashboard()" - }, - { - "label": "technician_tasks()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1275", - "id": "portal_main_technician_tasks", - "community": 0, - "norm_label": "technician_tasks()" - }, - { - "label": "technician_task_detail()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1329", - "id": "portal_main_technician_task_detail", - "community": 0, - "norm_label": "technician_task_detail()" - }, - { - "label": "technician_task_add_notes()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1388", - "id": "portal_main_technician_task_add_notes", - "community": 0, - "norm_label": "technician_task_add_notes()" - }, - { - "label": "technician_task_action()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1533", - "id": "portal_main_technician_task_action", - "community": 0, - "norm_label": "technician_task_action()" - }, - { - "label": "technician_voice_transcribe()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1609", - "id": "portal_main_technician_voice_transcribe", - "community": 0, - "norm_label": "technician_voice_transcribe()" - }, - { - "label": "technician_ai_format()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1674", - "id": "portal_main_technician_ai_format", - "community": 0, - "norm_label": "technician_ai_format()" - }, - { - "label": "technician_voice_complete()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1734", - "id": "portal_main_technician_voice_complete", - "community": 0, - "norm_label": "technician_voice_complete()" - }, - { - "label": "technician_tomorrow()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1833", - "id": "portal_main_technician_tomorrow", - "community": 0, - "norm_label": "technician_tomorrow()" - }, - { - "label": "technician_schedule_date()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1872", - "id": "portal_main_technician_schedule_date", - "community": 0, - "norm_label": "technician_schedule_date()" - }, - { - "label": "technician_location_map()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1904", - "id": "portal_main_technician_location_map", - "community": 0, - "norm_label": "technician_location_map()" - }, - { - "label": "technician_location_log()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1922", - "id": "portal_main_technician_location_log", - "community": 0, - "norm_label": "technician_location_log()" - }, - { - "label": "technician_clock_status()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1938", - "id": "portal_main_technician_clock_status", - "community": 0, - "norm_label": "technician_clock_status()" - }, - { - "label": "technician_save_start_location()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1957", - "id": "portal_main_technician_save_start_location", - "community": 0, - "norm_label": "technician_save_start_location()" - }, - { - "label": "technician_push_subscribe()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1971", - "id": "portal_main_technician_push_subscribe", - "community": 0, - "norm_label": "technician_push_subscribe()" - }, - { - "label": "technician_deliveries()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1981", - "id": "portal_main_technician_deliveries", - "community": 0, - "norm_label": "technician_deliveries()" - }, - { - "label": "technician_delivery_detail()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1986", - "id": "portal_main_technician_delivery_detail", - "community": 0, - "norm_label": "technician_delivery_detail()" - }, - { - "label": "pod_signature_page()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2008", - "id": "portal_main_pod_signature_page", - "community": 0, - "norm_label": "pod_signature_page()" - }, - { - "label": "pod_save_signature()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2074", - "id": "portal_main_pod_save_signature", - "community": 4, - "norm_label": "pod_save_signature()" - }, - { - "label": "task_pod_signature_page()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2226", - "id": "portal_main_task_pod_signature_page", - "community": 0, - "norm_label": "task_pod_signature_page()" - }, - { - "label": "task_pod_save_signature()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2252", - "id": "portal_main_task_pod_save_signature", - "community": 4, - "norm_label": "task_pod_save_signature()" - }, - { - "label": "._generate_signed_pod_pdf()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2311", - "id": "portal_main_authorizerportal_generate_signed_pod_pdf", - "community": 4, - "norm_label": "._generate_signed_pod_pdf()" - }, - { - "label": "accessibility_assessment_selector()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2354", - "id": "portal_main_accessibility_assessment_selector", - "community": 0, - "norm_label": "accessibility_assessment_selector()" - }, - { - "label": "accessibility_assessment_list()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2372", - "id": "portal_main_accessibility_assessment_list", - "community": 0, - "norm_label": "accessibility_assessment_list()" - }, - { - "label": "accessibility_stairlift_straight()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2413", - "id": "portal_main_accessibility_stairlift_straight", - "community": 0, - "norm_label": "accessibility_stairlift_straight()" - }, - { - "label": "accessibility_stairlift_curved()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2418", - "id": "portal_main_accessibility_stairlift_curved", - "community": 0, - "norm_label": "accessibility_stairlift_curved()" - }, - { - "label": "accessibility_vpl()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2423", - "id": "portal_main_accessibility_vpl", - "community": 0, - "norm_label": "accessibility_vpl()" - }, - { - "label": "accessibility_ceiling_lift()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2428", - "id": "portal_main_accessibility_ceiling_lift", - "community": 0, - "norm_label": "accessibility_ceiling_lift()" - }, - { - "label": "accessibility_ramp()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2433", - "id": "portal_main_accessibility_ramp", - "community": 0, - "norm_label": "accessibility_ramp()" - }, - { - "label": "accessibility_bathroom()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2438", - "id": "portal_main_accessibility_bathroom", - "community": 0, - "norm_label": "accessibility_bathroom()" - }, - { - "label": "accessibility_tub_cutout()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2443", - "id": "portal_main_accessibility_tub_cutout", - "community": 0, - "norm_label": "accessibility_tub_cutout()" - }, - { - "label": "._render_accessibility_form()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2447", - "id": "portal_main_authorizerportal_render_accessibility_form", - "community": 0, - "norm_label": "._render_accessibility_form()" - }, - { - "label": "accessibility_assessment_save()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2483", - "id": "portal_main_accessibility_assessment_save", - "community": 7, - "norm_label": "accessibility_assessment_save()" - }, - { - "label": "._parse_stairlift_straight_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2593", - "id": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "community": 7, - "norm_label": "._parse_stairlift_straight_fields()" - }, - { - "label": "._parse_stairlift_curved_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2605", - "id": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "community": 7, - "norm_label": "._parse_stairlift_curved_fields()" - }, - { - "label": "._parse_vpl_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2625", - "id": "portal_main_authorizerportal_parse_vpl_fields", - "community": 7, - "norm_label": "._parse_vpl_fields()" - }, - { - "label": "._parse_ceiling_lift_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2640", - "id": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "community": 7, - "norm_label": "._parse_ceiling_lift_fields()" - }, - { - "label": "._parse_ramp_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2650", - "id": "portal_main_authorizerportal_parse_ramp_fields", - "community": 7, - "norm_label": "._parse_ramp_fields()" - }, - { - "label": "._parse_bathroom_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2660", - "id": "portal_main_authorizerportal_parse_bathroom_fields", - "community": 7, - "norm_label": "._parse_bathroom_fields()" - }, - { - "label": "._parse_tub_cutout_fields()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2666", - "id": "portal_main_authorizerportal_parse_tub_cutout_fields", - "community": 7, - "norm_label": "._parse_tub_cutout_fields()" - }, - { - "label": "._attach_accessibility_photos()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2674", - "id": "portal_main_authorizerportal_attach_accessibility_photos", - "community": 7, - "norm_label": "._attach_accessibility_photos()" - }, - { - "label": "._attach_accessibility_video()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2714", - "id": "portal_main_authorizerportal_attach_accessibility_video", - "community": 7, - "norm_label": "._attach_accessibility_video()" - }, - { - "label": "rental_inspection_page()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2769", - "id": "portal_main_rental_inspection_page", - "community": 0, - "norm_label": "rental_inspection_page()" - }, - { - "label": "rental_inspection_submit()", - "file_type": "code", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2795", - "id": "portal_main_rental_inspection_submit", - "community": 4, - "norm_label": "rental_inspection_submit()" - }, - { - "label": "Portal controller for Authorizers (OTs/Therapists)", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L15", - "id": "portal_main_rationale_15", - "community": 7, - "norm_label": "portal controller for authorizers (ots/therapists)" - }, - { - "label": "Return a pytz timezone from the best available source. Priority: user tz", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L18", - "id": "portal_main_rationale_18", - "community": 0, - "norm_label": "return a pytz timezone from the best available source. priority: user tz" - }, - { - "label": "Auto-save browser-detected timezone to the user profile if not already set.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L43", - "id": "portal_main_rationale_43", - "community": 72, - "norm_label": "auto-save browser-detected timezone to the user profile if not already set." - }, - { - "label": "Override home to add ADP posting info for Fusion users", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L58", - "id": "portal_main_rationale_58", - "community": 73, - "norm_label": "override home to add adp posting info for fusion users" - }, - { - "label": "Add authorizer/sales rep counts to portal home", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L92", - "id": "portal_main_rationale_92", - "community": 7, - "norm_label": "add authorizer/sales rep counts to portal home" - }, - { - "label": "Get ADP posting schedule information for the portal home.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L139", - "id": "portal_main_rationale_139", - "community": 0, - "norm_label": "get adp posting schedule information for the portal home." - }, - { - "label": "Authorizer dashboard - simplified mobile-first view", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L212", - "id": "portal_main_rationale_212", - "community": 74, - "norm_label": "authorizer dashboard - simplified mobile-first view" - }, - { - "label": "List of cases assigned to the authorizer", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L293", - "id": "portal_main_rationale_293", - "community": 75, - "norm_label": "list of cases assigned to the authorizer" - }, - { - "label": "AJAX search endpoint for real-time search", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L371", - "id": "portal_main_rationale_371", - "community": 76, - "norm_label": "ajax search endpoint for real-time search" - }, - { - "label": "Add a comment to a case - posts to sale order chatter and emails salesperson", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L462", - "id": "portal_main_rationale_462", - "community": 77, - "norm_label": "add a comment to a case - posts to sale order chatter and emails salesperson" - }, - { - "label": "Upload a document for a case", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L511", - "id": "portal_main_rationale_511", - "community": 78, - "norm_label": "upload a document for a case" - }, - { - "label": "Download an attachment from sale order (original application, xml, proof of deli", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L591", - "id": "portal_main_rationale_591", - "community": 79, - "norm_label": "download an attachment from sale order (original application, xml, proof of deli" - }, - { - "label": "View an approval photo", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L649", - "id": "portal_main_rationale_649", - "community": 80, - "norm_label": "view an approval photo" - }, - { - "label": "Sales rep dashboard with search and filters", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L692", - "id": "portal_main_rationale_692", - "community": 81, - "norm_label": "sales rep dashboard with search and filters" - }, - { - "label": "List of cases for the sales rep", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L765", - "id": "portal_main_rationale_765", - "community": 82, - "norm_label": "list of cases for the sales rep" - }, - { - "label": "AJAX search endpoint for sales rep real-time search", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L825", - "id": "portal_main_rationale_825", - "community": 83, - "norm_label": "ajax search endpoint for sales rep real-time search" - }, - { - "label": "View a specific case for sales rep", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L857", - "id": "portal_main_rationale_857", - "community": 84, - "norm_label": "view a specific case for sales rep" - }, - { - "label": "Add a comment to a case (sales rep) - posts to sale order chatter and emails aut", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L917", - "id": "portal_main_rationale_917", - "community": 85, - "norm_label": "add a comment to a case (sales rep) - posts to sale order chatter and emails aut" - }, - { - "label": "Add client funding claims count to portal home", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L967", - "id": "portal_main_rationale_967", - "community": 7, - "norm_label": "add client funding claims count to portal home" - }, - { - "label": "List of funding claims for the client", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L982", - "id": "portal_main_rationale_982", - "community": 86, - "norm_label": "list of funding claims for the client" - }, - { - "label": "View a specific funding claim", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1025", - "id": "portal_main_rationale_1025", - "community": 87, - "norm_label": "view a specific funding claim" - }, - { - "label": "Download a document from a funding claim", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1062", - "id": "portal_main_rationale_1062", - "community": 88, - "norm_label": "download a document from a funding claim" - }, - { - "label": "Download proof of delivery from a funding claim", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1095", - "id": "portal_main_rationale_1095", - "community": 89, - "norm_label": "download proof of delivery from a funding claim" - }, - { - "label": "Get clock in/out status for the current portal user.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1129", - "id": "portal_main_rationale_1129", - "community": 0, - "norm_label": "get clock in/out status for the current portal user." - }, - { - "label": "Check if current user is a technician portal user.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1180", - "id": "portal_main_rationale_1180", - "community": 0, - "norm_label": "check if current user is a technician portal user." - }, - { - "label": "Technician dashboard - today's schedule with timeline.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1196", - "id": "portal_main_rationale_1196", - "community": 90, - "norm_label": "technician dashboard - today's schedule with timeline." - }, - { - "label": "List of all tasks for the technician.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1276", - "id": "portal_main_rationale_1276", - "community": 91, - "norm_label": "list of all tasks for the technician." - }, - { - "label": "View a specific technician task.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1330", - "id": "portal_main_rationale_1330", - "community": 92, - "norm_label": "view a specific technician task." - }, - { - "label": "Add notes (and optional photos) to a completed task. :param notes: text", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1389", - "id": "portal_main_rationale_1389", - "community": 93, - "norm_label": "add notes (and optional photos) to a completed task. :param notes: text" - }, - { - "label": "Handle task status changes (start, complete, en_route, cancel). Location", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1534", - "id": "portal_main_rationale_1534", - "community": 94, - "norm_label": "handle task status changes (start, complete, en_route, cancel). location" - }, - { - "label": "Transcribe voice recording using OpenAI Whisper, translate to English.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1610", - "id": "portal_main_rationale_1610", - "community": 95, - "norm_label": "transcribe voice recording using openai whisper, translate to english." - }, - { - "label": "Use GPT to clean up and format raw notes text.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1675", - "id": "portal_main_rationale_1675", - "community": 96, - "norm_label": "use gpt to clean up and format raw notes text." - }, - { - "label": "Format transcription with GPT and complete the task.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1735", - "id": "portal_main_rationale_1735", - "community": 97, - "norm_label": "format transcription with gpt and complete the task." - }, - { - "label": "Next day preparation view.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1834", - "id": "portal_main_rationale_1834", - "community": 98, - "norm_label": "next day preparation view." - }, - { - "label": "View schedule for a specific date.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1873", - "id": "portal_main_rationale_1873", - "community": 99, - "norm_label": "view schedule for a specific date." - }, - { - "label": "Admin map view showing latest technician locations using Google Maps.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1905", - "id": "portal_main_rationale_1905", - "community": 100, - "norm_label": "admin map view showing latest technician locations using google maps." - }, - { - "label": "Log the technician's current GPS location.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1923", - "id": "portal_main_rationale_1923", - "community": 101, - "norm_label": "log the technician's current gps location." - }, - { - "label": "Check if the current technician is clocked in. Returns {clocked_in: boo", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1939", - "id": "portal_main_rationale_1939", - "community": 102, - "norm_label": "check if the current technician is clocked in. returns {clocked_in: boo" - }, - { - "label": "Save the technician's personal start location.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1958", - "id": "portal_main_rationale_1958", - "community": 103, - "norm_label": "save the technician's personal start location." - }, - { - "label": "Register a push notification subscription.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1972", - "id": "portal_main_rationale_1972", - "community": 104, - "norm_label": "register a push notification subscription." - }, - { - "label": "Legacy: List of deliveries for the technician (redirects to tasks).", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1982", - "id": "portal_main_rationale_1982", - "community": 105, - "norm_label": "legacy: list of deliveries for the technician (redirects to tasks)." - }, - { - "label": "View a specific delivery for technician (legacy, still works).", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1987", - "id": "portal_main_rationale_1987", - "community": 106, - "norm_label": "view a specific delivery for technician (legacy, still works)." - }, - { - "label": "POD signature capture page - accessible by technicians and sales reps", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2009", - "id": "portal_main_rationale_2009", - "community": 107, - "norm_label": "pod signature capture page - accessible by technicians and sales reps" - }, - { - "label": "Save POD signature via AJAX", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2075", - "id": "portal_main_rationale_2075", - "community": 108, - "norm_label": "save pod signature via ajax" - }, - { - "label": "Task-level POD signature capture page (works for all tasks including shadow).", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2227", - "id": "portal_main_rationale_2227", - "community": 109, - "norm_label": "task-level pod signature capture page (works for all tasks including shadow)." - }, - { - "label": "Save POD signature directly on a task.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2253", - "id": "portal_main_rationale_2253", - "community": 110, - "norm_label": "save pod signature directly on a task." - }, - { - "label": "Generate a signed POD PDF with the signature embedded. Args:", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2312", - "id": "portal_main_rationale_2312", - "community": 4, - "norm_label": "generate a signed pod pdf with the signature embedded. args:" - }, - { - "label": "Show the accessibility assessment type selector", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2355", - "id": "portal_main_rationale_2355", - "community": 111, - "norm_label": "show the accessibility assessment type selector" - }, - { - "label": "List all accessibility assessments for the current user (sales rep or authorizer", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2373", - "id": "portal_main_rationale_2373", - "community": 112, - "norm_label": "list all accessibility assessments for the current user (sales rep or authorizer" - }, - { - "label": "Straight stair lift assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2414", - "id": "portal_main_rationale_2414", - "community": 113, - "norm_label": "straight stair lift assessment form" - }, - { - "label": "Curved stair lift assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2419", - "id": "portal_main_rationale_2419", - "community": 114, - "norm_label": "curved stair lift assessment form" - }, - { - "label": "Vertical Platform Lift assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2424", - "id": "portal_main_rationale_2424", - "community": 115, - "norm_label": "vertical platform lift assessment form" - }, - { - "label": "Ceiling Lift assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2429", - "id": "portal_main_rationale_2429", - "community": 116, - "norm_label": "ceiling lift assessment form" - }, - { - "label": "Custom Ramp assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2434", - "id": "portal_main_rationale_2434", - "community": 117, - "norm_label": "custom ramp assessment form" - }, - { - "label": "Bathroom Modification assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2439", - "id": "portal_main_rationale_2439", - "community": 118, - "norm_label": "bathroom modification assessment form" - }, - { - "label": "Tub Cutout assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2444", - "id": "portal_main_rationale_2444", - "community": 119, - "norm_label": "tub cutout assessment form" - }, - { - "label": "Render an accessibility assessment form", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2448", - "id": "portal_main_rationale_2448", - "community": 0, - "norm_label": "render an accessibility assessment form" - }, - { - "label": "Save an accessibility assessment and optionally create a Sale Order", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2484", - "id": "portal_main_rationale_2484", - "community": 120, - "norm_label": "save an accessibility assessment and optionally create a sale order" - }, - { - "label": "Parse straight stair lift specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2594", - "id": "portal_main_rationale_2594", - "community": 7, - "norm_label": "parse straight stair lift specific fields" - }, - { - "label": "Parse curved stair lift specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2606", - "id": "portal_main_rationale_2606", - "community": 7, - "norm_label": "parse curved stair lift specific fields" - }, - { - "label": "Parse VPL specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2626", - "id": "portal_main_rationale_2626", - "community": 7, - "norm_label": "parse vpl specific fields" - }, - { - "label": "Parse ceiling lift specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2641", - "id": "portal_main_rationale_2641", - "community": 7, - "norm_label": "parse ceiling lift specific fields" - }, - { - "label": "Parse ramp specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2651", - "id": "portal_main_rationale_2651", - "community": 7, - "norm_label": "parse ramp specific fields" - }, - { - "label": "Parse bathroom modification specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2661", - "id": "portal_main_rationale_2661", - "community": 7, - "norm_label": "parse bathroom modification specific fields" - }, - { - "label": "Parse tub cutout specific fields", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2667", - "id": "portal_main_rationale_2667", - "community": 7, - "norm_label": "parse tub cutout specific fields" - }, - { - "label": "Attach photos to the accessibility assessment Args:", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2675", - "id": "portal_main_rationale_2675", - "community": 7, - "norm_label": "attach photos to the accessibility assessment args:" - }, - { - "label": "Attach a video to the accessibility assessment Args:", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2715", - "id": "portal_main_rationale_2715", - "community": 7, - "norm_label": "attach a video to the accessibility assessment args:" - }, - { - "label": "Render the rental pickup inspection form for the technician.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2770", - "id": "portal_main_rationale_2770", - "community": 121, - "norm_label": "render the rental pickup inspection form for the technician." - }, - { - "label": "Save the rental inspection results.", - "file_type": "rationale", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2796", - "id": "portal_main_rationale_2796", - "community": 122, - "norm_label": "save the rental inspection results." - } - ], - "links": [ - { - "relation": "imports_from", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L4", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "_tgt": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L7", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "_tgt": "init_reactivate_views", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_init_py", - "target": "init_reactivate_views", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L8", - "weight": 1.0, - "_src": "init_rationale_8", - "_tgt": "init_reactivate_views", - "source": "init_reactivate_views", - "target": "init_rationale_8", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/__init__.py", - "source_location": "L20", - "weight": 1.0, - "_src": "init_reactivate_views", - "_tgt": "res_partner_respartner_write", - "source": "init_reactivate_views", - "target": "res_partner_respartner_write" - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.3.0/end-migrate.py", - "source_location": "L16", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", - "_tgt": "end_migrate_migrate", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_3_0_end_migrate_py", - "target": "end_migrate_migrate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.4.0/end-migrate.py", - "source_location": "L16", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", - "_tgt": "end_migrate_migrate", - "source": "end_migrate_migrate", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_4_0_end_migrate_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.5.0/end-migrate.py", - "source_location": "L16", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", - "_tgt": "end_migrate_migrate", - "source": "end_migrate_migrate", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_5_0_end_migrate_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/migrations/19.0.2.6.0/end-migrate.py", - "source_location": "L24", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", - "_tgt": "end_migrate_migrate", - "source": "end_migrate_migrate", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_migrations_19_0_2_6_0_end_migrate_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L21", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "target": "pdf_filler_pdftemplatefiller", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L25", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "_tgt": "pdf_filler_fill_template", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "target": "pdf_filler_fill_template", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L89", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "_tgt": "pdf_filler_draw_field", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_pdf_filler_py", - "target": "pdf_filler_draw_field", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L22", - "weight": 1.0, - "_src": "pdf_filler_rationale_22", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_filler_rationale_22", - "confidence_score": 1.0 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_fusionpdftemplate", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_fusionpdftemplatepreview", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_fusionpdftemplatepreview", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_fusionpdftemplatefield", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_fusionpdftemplatefield", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_rationale_102", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_rationale_102", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_rationale_177", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_rationale_177", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_rationale_184", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_rationale_184", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_rationale_194", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_rationale_194", - "confidence_score": 0.5 - }, - { - "relation": "uses", - "confidence": "INFERRED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L218", - "weight": 0.8, - "_src": "pdf_template_rationale_203", - "_tgt": "pdf_filler_pdftemplatefiller", - "source": "pdf_filler_pdftemplatefiller", - "target": "pdf_template_rationale_203", - "confidence_score": 0.5 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L70", - "weight": 1.0, - "_src": "pdf_filler_fill_template", - "_tgt": "pdf_filler_draw_field", - "source": "pdf_filler_fill_template", - "target": "pdf_filler_draw_field", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/pdf_filler.py", - "source_location": "L85", - "weight": 1.0, - "_src": "pdf_filler_fill_template", - "_tgt": "res_partner_respartner_write", - "source": "pdf_filler_fill_template", - "target": "res_partner_respartner_write" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L241", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "_tgt": "pdf_filler_fill_template", - "source": "pdf_filler_fill_template", - "target": "pdf_template_fusionpdftemplate_generate_filled_pdf" - }, - { - "relation": "imports_from", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/utils/__init__.py", - "source_location": "L3", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", - "_tgt": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_utils_init_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L14", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "_tgt": "assessment_fusionassessment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "target": "assessment_fusionassessment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L436", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "_tgt": "assessment_compute_display_name", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "target": "assessment_compute_display_name", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L447", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "_tgt": "assessment_compute_signatures_complete", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "target": "assessment_compute_signatures_complete", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L452", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "_tgt": "assessment_compute_document_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "target": "assessment_compute_document_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L457", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "_tgt": "assessment_create", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_assessment_py", - "target": "assessment_create", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L464", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_mark_pending_signature", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_mark_pending_signature", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L470", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_complete", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_complete", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L506", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_complete_express", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_complete_express", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L535", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_cancel", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_cancel", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L541", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_reset_draft", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_reset_draft", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L547", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_ensure_partner", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L587", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_create_draft_sale_order", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L854", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_schedule_followup_activity", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_schedule_followup_activity", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L891", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_send_assessment_completed_email", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_send_assessment_completed_email", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L954", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_build_assessment_email_sections", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_build_assessment_email_sections", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1164", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_format_assessment_html_table", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_format_assessment_html_table", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1372", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_format_specifications_for_order", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_format_specifications_for_order", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1424", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_generate_signed_documents", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_generate_signed_documents", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1454", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_send_completion_notifications", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_send_completion_notifications", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1478", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_view_documents", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_view_documents", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1491", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_action_view_sale_order", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_action_view_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1508", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_get_pdf_context", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_get_pdf_context", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1596", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_get_pdf_signatures", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_get_pdf_signatures", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1606", - "weight": 1.0, - "_src": "assessment_fusionassessment", - "_tgt": "assessment_fusionassessment_generate_template_pdf", - "source": "assessment_fusionassessment", - "target": "assessment_fusionassessment_generate_template_pdf", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L582", - "weight": 1.0, - "_src": "assessment_fusionassessment_ensure_partner", - "_tgt": "assessment_create", - "source": "assessment_create", - "target": "assessment_fusionassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L729", - "weight": 1.0, - "_src": "assessment_fusionassessment_create_draft_sale_order", - "_tgt": "assessment_create", - "source": "assessment_create", - "target": "assessment_fusionassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L936", - "weight": 1.0, - "_src": "assessment_fusionassessment_send_assessment_completed_email", - "_tgt": "assessment_create", - "source": "assessment_create", - "target": "assessment_fusionassessment_send_assessment_completed_email", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1432", - "weight": 1.0, - "_src": "assessment_fusionassessment_generate_signed_documents", - "_tgt": "assessment_create", - "source": "assessment_create", - "target": "assessment_fusionassessment_generate_signed_documents", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L465", - "weight": 1.0, - "_src": "assessment_rationale_465", - "_tgt": "assessment_fusionassessment_action_mark_pending_signature", - "source": "assessment_fusionassessment_action_mark_pending_signature", - "target": "assessment_rationale_465", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L478", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete", - "_tgt": "assessment_fusionassessment_ensure_partner", - "source": "assessment_fusionassessment_action_complete", - "target": "assessment_fusionassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L481", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete", - "_tgt": "assessment_fusionassessment_create_draft_sale_order", - "source": "assessment_fusionassessment_action_complete", - "target": "assessment_fusionassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L484", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete", - "_tgt": "assessment_fusionassessment_generate_signed_documents", - "source": "assessment_fusionassessment_action_complete", - "target": "assessment_fusionassessment_generate_signed_documents", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L494", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete", - "_tgt": "assessment_fusionassessment_send_completion_notifications", - "source": "assessment_fusionassessment_action_complete", - "target": "assessment_fusionassessment_send_completion_notifications", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L471", - "weight": 1.0, - "_src": "assessment_rationale_471", - "_tgt": "assessment_fusionassessment_action_complete", - "source": "assessment_fusionassessment_action_complete", - "target": "assessment_rationale_471", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L487", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete", - "_tgt": "res_partner_respartner_write", - "source": "assessment_fusionassessment_action_complete", - "target": "res_partner_respartner_write" - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L519", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete_express", - "_tgt": "assessment_fusionassessment_ensure_partner", - "source": "assessment_fusionassessment_action_complete_express", - "target": "assessment_fusionassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L522", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete_express", - "_tgt": "assessment_fusionassessment_create_draft_sale_order", - "source": "assessment_fusionassessment_action_complete_express", - "target": "assessment_fusionassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L507", - "weight": 1.0, - "_src": "assessment_rationale_507", - "_tgt": "assessment_fusionassessment_action_complete_express", - "source": "assessment_fusionassessment_action_complete_express", - "target": "assessment_rationale_507", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L525", - "weight": 1.0, - "_src": "assessment_fusionassessment_action_complete_express", - "_tgt": "res_partner_respartner_write", - "source": "assessment_fusionassessment_action_complete_express", - "target": "res_partner_respartner_write" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L705", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_save", - "_tgt": "assessment_fusionassessment_action_complete_express", - "source": "assessment_fusionassessment_action_complete_express", - "target": "portal_assessment_portal_assessment_express_save" - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L536", - "weight": 1.0, - "_src": "assessment_rationale_536", - "_tgt": "assessment_fusionassessment_action_cancel", - "source": "assessment_fusionassessment_action_cancel", - "target": "assessment_rationale_536", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L548", - "weight": 1.0, - "_src": "assessment_rationale_548", - "_tgt": "assessment_fusionassessment_ensure_partner", - "source": "assessment_fusionassessment_ensure_partner", - "target": "assessment_rationale_548", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L773", - "weight": 1.0, - "_src": "assessment_fusionassessment_create_draft_sale_order", - "_tgt": "assessment_fusionassessment_format_assessment_html_table", - "source": "assessment_fusionassessment_create_draft_sale_order", - "target": "assessment_fusionassessment_format_assessment_html_table", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L847", - "weight": 1.0, - "_src": "assessment_fusionassessment_create_draft_sale_order", - "_tgt": "assessment_fusionassessment_send_assessment_completed_email", - "source": "assessment_fusionassessment_create_draft_sale_order", - "target": "assessment_fusionassessment_send_assessment_completed_email", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L850", - "weight": 1.0, - "_src": "assessment_fusionassessment_create_draft_sale_order", - "_tgt": "assessment_fusionassessment_schedule_followup_activity", - "source": "assessment_fusionassessment_create_draft_sale_order", - "target": "assessment_fusionassessment_schedule_followup_activity", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L588", - "weight": 1.0, - "_src": "assessment_rationale_588", - "_tgt": "assessment_fusionassessment_create_draft_sale_order", - "source": "assessment_fusionassessment_create_draft_sale_order", - "target": "assessment_rationale_588", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L855", - "weight": 1.0, - "_src": "assessment_rationale_855", - "_tgt": "assessment_fusionassessment_schedule_followup_activity", - "source": "assessment_fusionassessment_schedule_followup_activity", - "target": "assessment_rationale_855", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L917", - "weight": 1.0, - "_src": "assessment_fusionassessment_send_assessment_completed_email", - "_tgt": "assessment_fusionassessment_build_assessment_email_sections", - "source": "assessment_fusionassessment_send_assessment_completed_email", - "target": "assessment_fusionassessment_build_assessment_email_sections", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L892", - "weight": 1.0, - "_src": "assessment_rationale_892", - "_tgt": "assessment_fusionassessment_send_assessment_completed_email", - "source": "assessment_fusionassessment_send_assessment_completed_email", - "target": "assessment_rationale_892", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L955", - "weight": 1.0, - "_src": "assessment_rationale_955", - "_tgt": "assessment_fusionassessment_build_assessment_email_sections", - "source": "assessment_fusionassessment_build_assessment_email_sections", - "target": "assessment_rationale_955", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1165", - "weight": 1.0, - "_src": "assessment_rationale_1165", - "_tgt": "assessment_fusionassessment_format_assessment_html_table", - "source": "assessment_fusionassessment_format_assessment_html_table", - "target": "assessment_rationale_1165", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1373", - "weight": 1.0, - "_src": "assessment_rationale_1373", - "_tgt": "assessment_fusionassessment_format_specifications_for_order", - "source": "assessment_fusionassessment_format_specifications_for_order", - "target": "assessment_rationale_1373", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1425", - "weight": 1.0, - "_src": "assessment_rationale_1425", - "_tgt": "assessment_fusionassessment_generate_signed_documents", - "source": "assessment_fusionassessment_generate_signed_documents", - "target": "assessment_rationale_1425", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1455", - "weight": 1.0, - "_src": "assessment_rationale_1455", - "_tgt": "assessment_fusionassessment_send_completion_notifications", - "source": "assessment_fusionassessment_send_completion_notifications", - "target": "assessment_rationale_1455", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1479", - "weight": 1.0, - "_src": "assessment_rationale_1479", - "_tgt": "assessment_fusionassessment_action_view_documents", - "source": "assessment_fusionassessment_action_view_documents", - "target": "assessment_rationale_1479", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1492", - "weight": 1.0, - "_src": "assessment_rationale_1492", - "_tgt": "assessment_fusionassessment_action_view_sale_order", - "source": "assessment_fusionassessment_action_view_sale_order", - "target": "assessment_rationale_1492", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1626", - "weight": 1.0, - "_src": "assessment_fusionassessment_generate_template_pdf", - "_tgt": "assessment_fusionassessment_get_pdf_context", - "source": "assessment_fusionassessment_get_pdf_context", - "target": "assessment_fusionassessment_generate_template_pdf", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1509", - "weight": 1.0, - "_src": "assessment_rationale_1509", - "_tgt": "assessment_fusionassessment_get_pdf_context", - "source": "assessment_fusionassessment_get_pdf_context", - "target": "assessment_rationale_1509", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1627", - "weight": 1.0, - "_src": "assessment_fusionassessment_generate_template_pdf", - "_tgt": "assessment_fusionassessment_get_pdf_signatures", - "source": "assessment_fusionassessment_get_pdf_signatures", - "target": "assessment_fusionassessment_generate_template_pdf", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1597", - "weight": 1.0, - "_src": "assessment_rationale_1597", - "_tgt": "assessment_fusionassessment_get_pdf_signatures", - "source": "assessment_fusionassessment_get_pdf_signatures", - "target": "assessment_rationale_1597", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1607", - "weight": 1.0, - "_src": "assessment_rationale_1607", - "_tgt": "assessment_fusionassessment_generate_template_pdf", - "source": "assessment_fusionassessment_generate_template_pdf", - "target": "assessment_rationale_1607", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/assessment.py", - "source_location": "L1630", - "weight": 1.0, - "_src": "assessment_fusionassessment_generate_template_pdf", - "_tgt": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "source": "assessment_fusionassessment_generate_template_pdf", - "target": "pdf_template_fusionpdftemplate_generate_filled_pdf" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L640", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_save", - "_tgt": "assessment_fusionassessment_generate_template_pdf", - "source": "assessment_fusionassessment_generate_template_pdf", - "target": "portal_assessment_portal_assessment_express_save" - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", - "source_location": "L6", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", - "_tgt": "loaner_checkout_fusionloanercheckoutassessment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_loaner_checkout_py", - "target": "loaner_checkout_fusionloanercheckoutassessment", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/loaner_checkout.py", - "source_location": "L17", - "weight": 1.0, - "_src": "loaner_checkout_fusionloanercheckoutassessment", - "_tgt": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", - "source": "loaner_checkout_fusionloanercheckoutassessment", - "target": "loaner_checkout_fusionloanercheckoutassessment_action_view_assessment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L9", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_saleorder", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_saleorder", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L67", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_compute_portal_comment_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_compute_portal_comment_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L72", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_compute_portal_document_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_compute_portal_document_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L77", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_compute_portal_authorizer_id", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_compute_portal_authorizer_id", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L228", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_get_authorizer_portal_cases", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_get_authorizer_portal_cases", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L241", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "_tgt": "sale_order_get_sales_rep_portal_cases", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_get_sales_rep_portal_cases", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L99", - "weight": 1.0, - "_src": "sale_order_rationale_99", - "_tgt": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_sale_order_py", - "target": "sale_order_rationale_99", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L82", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_write", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_write", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L106", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_action_message_authorizer", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_action_message_authorizer", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L128", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_send_authorizer_assignment_notification", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_send_authorizer_assignment_notification", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L146", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_action_view_portal_comments", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_action_view_portal_comments", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L159", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_action_view_portal_documents", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_action_view_portal_documents", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L172", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_get_portal_display_data", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_get_portal_display_data", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L194", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_get_partner_address_display", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_get_partner_address_display", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L212", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_get_product_lines_for_portal", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_get_product_lines_for_portal", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L253", - "weight": 1.0, - "_src": "sale_order_saleorder", - "_tgt": "sale_order_saleorder_build_search_domain", - "source": "sale_order_saleorder", - "target": "sale_order_saleorder_build_search_domain", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L97", - "weight": 1.0, - "_src": "sale_order_saleorder_write", - "_tgt": "sale_order_saleorder_send_authorizer_assignment_notification", - "source": "sale_order_saleorder_write", - "target": "sale_order_saleorder_send_authorizer_assignment_notification", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L83", - "weight": 1.0, - "_src": "sale_order_rationale_83", - "_tgt": "sale_order_saleorder_write", - "source": "sale_order_saleorder_write", - "target": "sale_order_rationale_83", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L107", - "weight": 1.0, - "_src": "sale_order_rationale_107", - "_tgt": "sale_order_saleorder_action_message_authorizer", - "source": "sale_order_saleorder_action_message_authorizer", - "target": "sale_order_rationale_107", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L129", - "weight": 1.0, - "_src": "sale_order_rationale_129", - "_tgt": "sale_order_saleorder_send_authorizer_assignment_notification", - "source": "sale_order_saleorder_send_authorizer_assignment_notification", - "target": "sale_order_rationale_129", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L160", - "weight": 1.0, - "_src": "sale_order_rationale_160", - "_tgt": "sale_order_saleorder_action_view_portal_documents", - "source": "sale_order_saleorder_action_view_portal_documents", - "target": "sale_order_rationale_160", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L183", - "weight": 1.0, - "_src": "sale_order_saleorder_get_portal_display_data", - "_tgt": "sale_order_saleorder_get_partner_address_display", - "source": "sale_order_saleorder_get_portal_display_data", - "target": "sale_order_saleorder_get_partner_address_display", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L189", - "weight": 1.0, - "_src": "sale_order_saleorder_get_portal_display_data", - "_tgt": "sale_order_saleorder_get_product_lines_for_portal", - "source": "sale_order_saleorder_get_portal_display_data", - "target": "sale_order_saleorder_get_product_lines_for_portal", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L173", - "weight": 1.0, - "_src": "sale_order_rationale_173", - "_tgt": "sale_order_saleorder_get_portal_display_data", - "source": "sale_order_saleorder_get_portal_display_data", - "target": "sale_order_rationale_173", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L195", - "weight": 1.0, - "_src": "sale_order_rationale_195", - "_tgt": "sale_order_saleorder_get_partner_address_display", - "source": "sale_order_saleorder_get_partner_address_display", - "target": "sale_order_rationale_195", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L213", - "weight": 1.0, - "_src": "sale_order_rationale_213", - "_tgt": "sale_order_saleorder_get_product_lines_for_portal", - "source": "sale_order_saleorder_get_product_lines_for_portal", - "target": "sale_order_rationale_213", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L234", - "weight": 1.0, - "_src": "sale_order_get_authorizer_portal_cases", - "_tgt": "sale_order_saleorder_build_search_domain", - "source": "sale_order_get_authorizer_portal_cases", - "target": "sale_order_saleorder_build_search_domain", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L381", - "weight": 1.0, - "_src": "portal_main_authorizer_cases_search", - "_tgt": "sale_order_get_authorizer_portal_cases", - "source": "sale_order_get_authorizer_portal_cases", - "target": "portal_main_authorizer_cases_search" - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L247", - "weight": 1.0, - "_src": "sale_order_get_sales_rep_portal_cases", - "_tgt": "sale_order_saleorder_build_search_domain", - "source": "sale_order_get_sales_rep_portal_cases", - "target": "sale_order_saleorder_build_search_domain", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L836", - "weight": 1.0, - "_src": "portal_main_sales_rep_cases_search", - "_tgt": "sale_order_get_sales_rep_portal_cases", - "source": "sale_order_get_sales_rep_portal_cases", - "target": "portal_main_sales_rep_cases_search" - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/sale_order.py", - "source_location": "L254", - "weight": 1.0, - "_src": "sale_order_rationale_254", - "_tgt": "sale_order_saleorder_build_search_domain", - "source": "sale_order_saleorder_build_search_domain", - "target": "sale_order_rationale_254", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L11", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_adpdocument", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_adpdocument", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L114", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_compute_file_size", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_compute_file_size", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L122", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_compute_display_name", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_compute_display_name", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L129", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_create", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_create", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L168", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_get_documents_for_order", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_get_documents_for_order", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L178", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "_tgt": "adp_document_get_revision_history", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_adp_document_py", - "target": "adp_document_get_revision_history", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L153", - "weight": 1.0, - "_src": "adp_document_adpdocument", - "_tgt": "adp_document_adpdocument_action_download", - "source": "adp_document_adpdocument", - "target": "adp_document_adpdocument_action_download", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L162", - "weight": 1.0, - "_src": "adp_document_adpdocument", - "_tgt": "adp_document_adpdocument_get_document_url", - "source": "adp_document_adpdocument", - "target": "adp_document_adpdocument_get_document_url", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L154", - "weight": 1.0, - "_src": "adp_document_rationale_154", - "_tgt": "adp_document_adpdocument_action_download", - "source": "adp_document_adpdocument_action_download", - "target": "adp_document_rationale_154", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/adp_document.py", - "source_location": "L163", - "weight": 1.0, - "_src": "adp_document_rationale_163", - "_tgt": "adp_document_adpdocument_get_document_url", - "source": "adp_document_adpdocument_get_document_url", - "target": "adp_document_rationale_163", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L9", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "_tgt": "authorizer_comment_authorizercomment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "target": "authorizer_comment_authorizercomment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L70", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "_tgt": "authorizer_comment_compute_display_name", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "target": "authorizer_comment_compute_display_name", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/authorizer_comment.py", - "source_location": "L78", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "_tgt": "authorizer_comment_create", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_authorizer_comment_py", - "target": "authorizer_comment_create", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L15", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_fusionpdftemplate", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_fusionpdftemplate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L76", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_create", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_create", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L87", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_compute_page_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_compute_page_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L172", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_compute_field_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_compute_field_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L246", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_fusionpdftemplatepreview", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_fusionpdftemplatepreview", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L260", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "_tgt": "pdf_template_fusionpdftemplatefield", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_pdf_template_py", - "target": "pdf_template_fusionpdftemplatefield", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L65", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_write", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_write", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L101", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_action_generate_previews", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_action_generate_previews", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L176", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_action_activate", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_action_activate", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L183", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_action_archive", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_action_archive", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L188", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_action_reset_draft", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_action_reset_draft", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L193", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_action_open_field_editor", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_action_open_field_editor", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L202", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate", - "_tgt": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "source": "pdf_template_fusionpdftemplate", - "target": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L119", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate_action_generate_previews", - "_tgt": "pdf_template_fusionpdftemplate_write", - "source": "pdf_template_fusionpdftemplate_write", - "target": "pdf_template_fusionpdftemplate_action_generate_previews", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L154", - "weight": 1.0, - "_src": "pdf_template_fusionpdftemplate_action_generate_previews", - "_tgt": "pdf_template_create", - "source": "pdf_template_create", - "target": "pdf_template_fusionpdftemplate_action_generate_previews", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L102", - "weight": 1.0, - "_src": "pdf_template_rationale_102", - "_tgt": "pdf_template_fusionpdftemplate_action_generate_previews", - "source": "pdf_template_fusionpdftemplate_action_generate_previews", - "target": "pdf_template_rationale_102", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L177", - "weight": 1.0, - "_src": "pdf_template_rationale_177", - "_tgt": "pdf_template_fusionpdftemplate_action_activate", - "source": "pdf_template_fusionpdftemplate_action_activate", - "target": "pdf_template_rationale_177", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L184", - "weight": 1.0, - "_src": "pdf_template_rationale_184", - "_tgt": "pdf_template_fusionpdftemplate_action_archive", - "source": "pdf_template_fusionpdftemplate_action_archive", - "target": "pdf_template_rationale_184", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L194", - "weight": 1.0, - "_src": "pdf_template_rationale_194", - "_tgt": "pdf_template_fusionpdftemplate_action_open_field_editor", - "source": "pdf_template_fusionpdftemplate_action_open_field_editor", - "target": "pdf_template_rationale_194", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/pdf_template.py", - "source_location": "L203", - "weight": 1.0, - "_src": "pdf_template_rationale_203", - "_tgt": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "source": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "target": "pdf_template_rationale_203", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L210", - "weight": 1.0, - "_src": "pdf_editor_preview_pdf", - "_tgt": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "source": "pdf_template_fusionpdftemplate_generate_filled_pdf", - "target": "pdf_editor_preview_pdf" - }, - { - "relation": "imports_from", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/__init__.py", - "source_location": "L11", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", - "_tgt": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_init_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L13", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_fusionaccessibilityassessment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L90", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_expand_states", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_expand_states", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L364", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_display_name", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_display_name", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L371", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_stair_straight_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_stair_straight_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L380", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_stair_final_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_stair_final_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L391", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_stair_curved_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_stair_curved_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L440", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_stair_curved_final_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_stair_curved_final_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L449", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_ramp_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_ramp_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L458", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_ramp_landings", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_ramp_landings", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L468", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_compute_ramp_total_length", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_compute_ramp_total_length", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L481", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "_tgt": "accessibility_assessment_create", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_accessibility_assessment_py", - "target": "accessibility_assessment_create", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L493", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L551", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L582", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L624", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L678", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L709", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L751", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L815", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L958", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L963", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", - "source": "accessibility_assessment_fusionaccessibilityassessment", - "target": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L574", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L672", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L747", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L802", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L98", - "weight": 1.0, - "_src": "res_users_resusers_generate_tutorial_articles", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "res_users_resusers_generate_tutorial_articles" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L281", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "res_partner_respartner_action_grant_portal_access" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L410", - "weight": 1.0, - "_src": "res_partner_respartner_create_welcome_article", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "res_partner_respartner_create_welcome_article" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L513", - "weight": 1.0, - "_src": "res_partner_respartner_send_portal_invitation_email", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "res_partner_respartner_send_portal_invitation_email" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L268", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_save", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_assessment_portal_assessment_save" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L584", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_save", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_assessment_portal_assessment_express_save" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1136", - "weight": 1.0, - "_src": "portal_assessment_portal_book_assessment_submit", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_assessment_portal_book_assessment_submit" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L110", - "weight": 1.0, - "_src": "pdf_editor_create_field", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "pdf_editor_create_field" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L166", - "weight": 1.0, - "_src": "pdf_editor_upload_preview_image", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "pdf_editor_upload_preview_image" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L497", - "weight": 1.0, - "_src": "portal_main_authorizer_add_comment", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_authorizer_add_comment" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L532", - "weight": 1.0, - "_src": "portal_main_authorizer_upload_document", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_authorizer_upload_document" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L952", - "weight": 1.0, - "_src": "portal_main_sales_rep_add_comment", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_sales_rep_add_comment" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1424", - "weight": 1.0, - "_src": "portal_main_technician_task_add_notes", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_technician_task_add_notes" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2165", - "weight": 1.0, - "_src": "portal_main_pod_save_signature", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_pod_save_signature" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2543", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_accessibility_assessment_save" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2701", - "weight": 1.0, - "_src": "portal_main_authorizerportal_attach_accessibility_photos", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_authorizerportal_attach_accessibility_photos" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2748", - "weight": 1.0, - "_src": "portal_main_authorizerportal_attach_accessibility_video", - "_tgt": "accessibility_assessment_create", - "source": "accessibility_assessment_create", - "target": "portal_main_authorizerportal_attach_accessibility_video" - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L523", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L526", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L529", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L532", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L542", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L545", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L494", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_494", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "accessibility_assessment_rationale_494", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L535", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "_tgt": "res_partner_respartner_write", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "res_partner_respartner_write" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L400", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_complete", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "portal_assessment_portal_assessment_complete" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2570", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_complete", - "target": "portal_main_accessibility_assessment_save" - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L552", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_552", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "source": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "target": "accessibility_assessment_rationale_552", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L579", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "_tgt": "res_partner_respartner_write", - "source": "accessibility_assessment_fusionaccessibilityassessment_add_assessment_tag", - "target": "res_partner_respartner_write" - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L583", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_583", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment_copy_photos_to_sale_order", - "target": "accessibility_assessment_rationale_583", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L625", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_625", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "source": "accessibility_assessment_fusionaccessibilityassessment_send_completion_email", - "target": "accessibility_assessment_rationale_625", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L679", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_679", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "source": "accessibility_assessment_fusionaccessibilityassessment_schedule_followup_activity", - "target": "accessibility_assessment_rationale_679", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L710", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_710", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "source": "accessibility_assessment_fusionaccessibilityassessment_ensure_partner", - "target": "accessibility_assessment_rationale_710", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L806", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "source": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "target": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L752", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_752", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "source": "accessibility_assessment_fusionaccessibilityassessment_create_draft_sale_order", - "target": "accessibility_assessment_rationale_752", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L816", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_816", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "source": "accessibility_assessment_fusionaccessibilityassessment_format_assessment_html_table", - "target": "accessibility_assessment_rationale_816", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L959", - "weight": 1.0, - "_src": "accessibility_assessment_rationale_959", - "_tgt": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "target": "accessibility_assessment_rationale_959", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L961", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "_tgt": "res_partner_respartner_write", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_cancel", - "target": "res_partner_respartner_write" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/accessibility_assessment.py", - "source_location": "L966", - "weight": 1.0, - "_src": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", - "_tgt": "res_partner_respartner_write", - "source": "accessibility_assessment_fusionaccessibilityassessment_action_reset_to_draft", - "target": "res_partner_respartner_write" - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L10", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", - "_tgt": "res_users_portalwizarduser", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", - "target": "res_users_portalwizarduser", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L67", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", - "_tgt": "res_users_resusers", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_users_py", - "target": "res_users_resusers", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L14", - "weight": 1.0, - "_src": "res_users_portalwizarduser", - "_tgt": "res_users_portalwizarduser_action_grant_access", - "source": "res_users_portalwizarduser", - "target": "res_users_portalwizarduser_action_grant_access", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L11", - "weight": 1.0, - "_src": "res_users_rationale_11", - "_tgt": "res_users_portalwizarduser", - "source": "res_users_portalwizarduser", - "target": "res_users_rationale_11", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L15", - "weight": 1.0, - "_src": "res_users_rationale_15", - "_tgt": "res_users_portalwizarduser_action_grant_access", - "source": "res_users_portalwizarduser_action_grant_access", - "target": "res_users_rationale_15", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L31", - "weight": 1.0, - "_src": "res_users_portalwizarduser_action_grant_access", - "_tgt": "res_partner_respartner_assign_internal_role_groups", - "source": "res_users_portalwizarduser_action_grant_access", - "target": "res_partner_respartner_assign_internal_role_groups" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L58", - "weight": 1.0, - "_src": "res_users_portalwizarduser_action_grant_access", - "_tgt": "res_partner_respartner_assign_portal_role_groups", - "source": "res_users_portalwizarduser_action_grant_access", - "target": "res_partner_respartner_assign_portal_role_groups" - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L70", - "weight": 1.0, - "_src": "res_users_resusers", - "_tgt": "res_users_resusers_generate_tutorial_articles", - "source": "res_users_resusers", - "target": "res_users_resusers_generate_tutorial_articles", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_users.py", - "source_location": "L71", - "weight": 1.0, - "_src": "res_users_rationale_71", - "_tgt": "res_users_resusers_generate_tutorial_articles", - "source": "res_users_resusers_generate_tutorial_articles", - "target": "res_users_rationale_71", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L11", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "_tgt": "res_partner_respartner", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "target": "res_partner_respartner", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L90", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "_tgt": "res_partner_compute_portal_access_status", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "target": "res_partner_compute_portal_access_status", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L101", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "_tgt": "res_partner_compute_assigned_case_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "target": "res_partner_compute_assigned_case_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L113", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "_tgt": "res_partner_compute_assessment_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "target": "res_partner_compute_assessment_count", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L125", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "_tgt": "res_partner_compute_assigned_delivery_count", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_models_res_partner_py", - "target": "res_partner_compute_assigned_delivery_count", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L136", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_assign_portal_role_groups", - "source": "res_partner_respartner", - "target": "res_partner_respartner_assign_portal_role_groups", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L154", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_assign_internal_role_groups", - "source": "res_partner_respartner", - "target": "res_partner_respartner_assign_internal_role_groups", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L186", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_grant_portal_access", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_grant_portal_access", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L355", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_create_welcome_article", - "source": "res_partner_respartner", - "target": "res_partner_respartner_create_welcome_article", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L431", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_send_portal_invitation_email", - "source": "res_partner_respartner", - "target": "res_partner_respartner_send_portal_invitation_email", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L521", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_resend_portal_invitation", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_resend_portal_invitation", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L591", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_view_assigned_cases", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_view_assigned_cases", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L604", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_view_assessments", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_view_assessments", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L624", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_mark_as_authorizer", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_mark_as_authorizer", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L638", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_batch_send_portal_invitation", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_batch_send_portal_invitation", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L687", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_mark_and_send_invitation", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_mark_and_send_invitation", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L692", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_view_assigned_deliveries", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_view_assigned_deliveries", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L706", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_action_mark_as_technician", - "source": "res_partner_respartner", - "target": "res_partner_respartner_action_mark_as_technician", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L724", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_geocode_address", - "source": "res_partner_respartner", - "target": "res_partner_respartner_geocode_address", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L756", - "weight": 1.0, - "_src": "res_partner_respartner", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L152", - "weight": 1.0, - "_src": "res_partner_respartner_assign_portal_role_groups", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_assign_portal_role_groups", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L243", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "res_partner_respartner_assign_portal_role_groups", - "source": "res_partner_respartner_assign_portal_role_groups", - "target": "res_partner_respartner_action_grant_portal_access", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L137", - "weight": 1.0, - "_src": "res_partner_rationale_137", - "_tgt": "res_partner_respartner_assign_portal_role_groups", - "source": "res_partner_respartner_assign_portal_role_groups", - "target": "res_partner_rationale_137", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L165", - "weight": 1.0, - "_src": "res_partner_respartner_assign_internal_role_groups", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_assign_internal_role_groups", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L217", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "res_partner_respartner_assign_internal_role_groups", - "source": "res_partner_respartner_assign_internal_role_groups", - "target": "res_partner_respartner_action_grant_portal_access", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L155", - "weight": 1.0, - "_src": "res_partner_rationale_155", - "_tgt": "res_partner_respartner_assign_internal_role_groups", - "source": "res_partner_respartner_assign_internal_role_groups", - "target": "res_partner_rationale_155", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L242", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_action_grant_portal_access", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L297", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "res_partner_respartner_create_welcome_article", - "source": "res_partner_respartner_action_grant_portal_access", - "target": "res_partner_respartner_create_welcome_article", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L302", - "weight": 1.0, - "_src": "res_partner_respartner_action_grant_portal_access", - "_tgt": "res_partner_respartner_send_portal_invitation_email", - "source": "res_partner_respartner_action_grant_portal_access", - "target": "res_partner_respartner_send_portal_invitation_email", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L658", - "weight": 1.0, - "_src": "res_partner_respartner_action_batch_send_portal_invitation", - "_tgt": "res_partner_respartner_action_grant_portal_access", - "source": "res_partner_respartner_action_grant_portal_access", - "target": "res_partner_respartner_action_batch_send_portal_invitation", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L187", - "weight": 1.0, - "_src": "res_partner_rationale_187", - "_tgt": "res_partner_respartner_action_grant_portal_access", - "source": "res_partner_respartner_action_grant_portal_access", - "target": "res_partner_rationale_187", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L356", - "weight": 1.0, - "_src": "res_partner_rationale_356", - "_tgt": "res_partner_respartner_create_welcome_article", - "source": "res_partner_respartner_create_welcome_article", - "target": "res_partner_rationale_356", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L533", - "weight": 1.0, - "_src": "res_partner_respartner_action_resend_portal_invitation", - "_tgt": "res_partner_respartner_send_portal_invitation_email", - "source": "res_partner_respartner_send_portal_invitation_email", - "target": "res_partner_respartner_action_resend_portal_invitation", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L432", - "weight": 1.0, - "_src": "res_partner_rationale_432", - "_tgt": "res_partner_respartner_send_portal_invitation_email", - "source": "res_partner_respartner_send_portal_invitation_email", - "target": "res_partner_rationale_432", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L522", - "weight": 1.0, - "_src": "res_partner_rationale_522", - "_tgt": "res_partner_respartner_action_resend_portal_invitation", - "source": "res_partner_respartner_action_resend_portal_invitation", - "target": "res_partner_rationale_522", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L592", - "weight": 1.0, - "_src": "res_partner_rationale_592", - "_tgt": "res_partner_respartner_action_view_assigned_cases", - "source": "res_partner_respartner_action_view_assigned_cases", - "target": "res_partner_rationale_592", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L605", - "weight": 1.0, - "_src": "res_partner_rationale_605", - "_tgt": "res_partner_respartner_action_view_assessments", - "source": "res_partner_respartner_action_view_assessments", - "target": "res_partner_rationale_605", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L626", - "weight": 1.0, - "_src": "res_partner_respartner_action_mark_as_authorizer", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_action_mark_as_authorizer", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L689", - "weight": 1.0, - "_src": "res_partner_respartner_action_mark_and_send_invitation", - "_tgt": "res_partner_respartner_action_mark_as_authorizer", - "source": "res_partner_respartner_action_mark_as_authorizer", - "target": "res_partner_respartner_action_mark_and_send_invitation", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L625", - "weight": 1.0, - "_src": "res_partner_rationale_625", - "_tgt": "res_partner_respartner_action_mark_as_authorizer", - "source": "res_partner_respartner_action_mark_as_authorizer", - "target": "res_partner_rationale_625", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L690", - "weight": 1.0, - "_src": "res_partner_respartner_action_mark_and_send_invitation", - "_tgt": "res_partner_respartner_action_batch_send_portal_invitation", - "source": "res_partner_respartner_action_batch_send_portal_invitation", - "target": "res_partner_respartner_action_mark_and_send_invitation", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L639", - "weight": 1.0, - "_src": "res_partner_rationale_639", - "_tgt": "res_partner_respartner_action_batch_send_portal_invitation", - "source": "res_partner_respartner_action_batch_send_portal_invitation", - "target": "res_partner_rationale_639", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L688", - "weight": 1.0, - "_src": "res_partner_rationale_688", - "_tgt": "res_partner_respartner_action_mark_and_send_invitation", - "source": "res_partner_respartner_action_mark_and_send_invitation", - "target": "res_partner_rationale_688", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L693", - "weight": 1.0, - "_src": "res_partner_rationale_693", - "_tgt": "res_partner_respartner_action_view_assigned_deliveries", - "source": "res_partner_respartner_action_view_assigned_deliveries", - "target": "res_partner_rationale_693", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L708", - "weight": 1.0, - "_src": "res_partner_respartner_action_mark_as_technician", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_action_mark_as_technician", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L707", - "weight": 1.0, - "_src": "res_partner_rationale_707", - "_tgt": "res_partner_respartner_action_mark_as_technician", - "source": "res_partner_respartner_action_mark_as_technician", - "target": "res_partner_rationale_707", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L766", - "weight": 1.0, - "_src": "res_partner_respartner_write", - "_tgt": "res_partner_respartner_geocode_address", - "source": "res_partner_respartner_geocode_address", - "target": "res_partner_respartner_write", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L725", - "weight": 1.0, - "_src": "res_partner_rationale_725", - "_tgt": "res_partner_respartner_geocode_address", - "source": "res_partner_respartner_geocode_address", - "target": "res_partner_rationale_725", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/models/res_partner.py", - "source_location": "L757", - "weight": 1.0, - "_src": "res_partner_rationale_757", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "res_partner_rationale_757", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L167", - "weight": 1.0, - "_src": "portal_page11_sign_page11_sign_submit", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_page11_sign_page11_sign_submit" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L259", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_save", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_assessment_portal_assessment_save" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L362", - "weight": 1.0, - "_src": "portal_assessment_portal_save_signature", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_assessment_portal_save_signature" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L572", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_save", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_assessment_portal_assessment_express_save" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1168", - "weight": 1.0, - "_src": "portal_assessment_portal_book_assessment_submit", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_assessment_portal_book_assessment_submit" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L82", - "weight": 1.0, - "_src": "pdf_editor_update_field", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "pdf_editor_update_field" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L164", - "weight": 1.0, - "_src": "pdf_editor_upload_preview_image", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "pdf_editor_upload_preview_image" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L53", - "weight": 1.0, - "_src": "portal_main_timezone_auto_detect", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_timezone_auto_detect" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1190", - "weight": 1.0, - "_src": "portal_main_authorizerportal_check_technician_access", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_authorizerportal_check_technician_access" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1641", - "weight": 1.0, - "_src": "portal_main_technician_voice_transcribe", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_technician_voice_transcribe" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1809", - "weight": 1.0, - "_src": "portal_main_technician_voice_complete", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_technician_voice_complete" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1962", - "weight": 1.0, - "_src": "portal_main_technician_save_start_location", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_technician_save_start_location" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2132", - "weight": 1.0, - "_src": "portal_main_pod_save_signature", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_pod_save_signature" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2284", - "weight": 1.0, - "_src": "portal_main_task_pod_save_signature", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_task_pod_save_signature" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2337", - "weight": 1.0, - "_src": "portal_main_authorizerportal_generate_signed_pod_pdf", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_authorizerportal_generate_signed_pod_pdf" - }, - { - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2822", - "weight": 1.0, - "_src": "portal_main_rental_inspection_submit", - "_tgt": "res_partner_respartner_write", - "source": "res_partner_respartner_write", - "target": "portal_main_rental_inspection_submit" - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", - "source_location": "L14", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", - "_tgt": "chatter_message_authorizer_setup", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", - "target": "chatter_message_authorizer_setup", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/chatter_message_authorizer.js", - "source_location": "L20", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", - "_tgt": "chatter_message_authorizer_onclickmessageauthorizer", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_chatter_message_authorizer_js", - "target": "chatter_message_authorizer_onclickmessageauthorizer", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L8", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "_tgt": "timezone_detect_start", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "target": "timezone_detect_start", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L13", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "_tgt": "timezone_detect_detectandsavetimezone", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "target": "timezone_detect_detectandsavetimezone", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L30", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "_tgt": "timezone_detect_getcookie", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_timezone_detect_js", - "target": "timezone_detect_getcookie", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L10", - "weight": 1.0, - "_src": "timezone_detect_start", - "_tgt": "timezone_detect_detectandsavetimezone", - "source": "timezone_detect_start", - "target": "timezone_detect_detectandsavetimezone", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/timezone_detect.js", - "source_location": "L22", - "weight": 1.0, - "_src": "timezone_detect_detectandsavetimezone", - "_tgt": "timezone_detect_getcookie", - "source": "timezone_detect_detectandsavetimezone", - "target": "timezone_detect_getcookie", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L26", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_ensuremodal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_ensuremodal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L54", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_showmodal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_showmodal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L59", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_hidemodal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_hidemodal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L69", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_showdeniedbanner", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_showdeniedbanner", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L87", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_getlocation", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_getlocation", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L120", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_opengooglemapsnav", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_opengooglemapsnav", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L144", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_istechnicianportal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_istechnicianportal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L148", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_checkclockstatus", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_checkclockstatus", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L171", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_loglocation", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_loglocation", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L202", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_startlocationtimer", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_startlocationtimer", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L208", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_stoplocationtimer", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_stoplocationtimer", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L215", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "_tgt": "technician_location_startlocationlogging", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_location_js", - "target": "technician_location_startlocationlogging", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L47", - "weight": 1.0, - "_src": "technician_location_ensuremodal", - "_tgt": "technician_location_hidemodal", - "source": "technician_location_ensuremodal", - "target": "technician_location_hidemodal", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L55", - "weight": 1.0, - "_src": "technician_location_showmodal", - "_tgt": "technician_location_ensuremodal", - "source": "technician_location_ensuremodal", - "target": "technician_location_showmodal", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L105", - "weight": 1.0, - "_src": "technician_location_getlocation", - "_tgt": "technician_location_showdeniedbanner", - "source": "technician_location_showdeniedbanner", - "target": "technician_location_getlocation", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L174", - "weight": 1.0, - "_src": "technician_location_loglocation", - "_tgt": "technician_location_getlocation", - "source": "technician_location_getlocation", - "target": "technician_location_loglocation", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L216", - "weight": 1.0, - "_src": "technician_location_startlocationlogging", - "_tgt": "technician_location_istechnicianportal", - "source": "technician_location_istechnicianportal", - "target": "technician_location_startlocationlogging", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L160", - "weight": 1.0, - "_src": "technician_location_checkclockstatus", - "_tgt": "technician_location_startlocationtimer", - "source": "technician_location_checkclockstatus", - "target": "technician_location_startlocationtimer", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L163", - "weight": 1.0, - "_src": "technician_location_checkclockstatus", - "_tgt": "technician_location_stoplocationtimer", - "source": "technician_location_checkclockstatus", - "target": "technician_location_stoplocationtimer", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L219", - "weight": 1.0, - "_src": "technician_location_startlocationlogging", - "_tgt": "technician_location_checkclockstatus", - "source": "technician_location_checkclockstatus", - "target": "technician_location_startlocationlogging", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L204", - "weight": 1.0, - "_src": "technician_location_startlocationtimer", - "_tgt": "technician_location_loglocation", - "source": "technician_location_loglocation", - "target": "technician_location_startlocationtimer", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L227", - "weight": 1.0, - "_src": "technician_location_startlocationlogging", - "_tgt": "technician_location_startlocationtimer", - "source": "technician_location_startlocationtimer", - "target": "technician_location_startlocationlogging", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_location.js", - "source_location": "L225", - "weight": 1.0, - "_src": "technician_location_startlocationlogging", - "_tgt": "technician_location_stoplocationtimer", - "source": "technician_location_stoplocationtimer", - "target": "technician_location_startlocationlogging", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L23", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", - "_tgt": "technician_push_urlbase64touint8array", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", - "target": "technician_push_urlbase64touint8array", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L34", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", - "_tgt": "technician_push_registerpushsubscription", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_technician_push_js", - "target": "technician_push_registerpushsubscription", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/technician_push.js", - "source_location": "L59", - "weight": 1.0, - "_src": "technician_push_registerpushsubscription", - "_tgt": "technician_push_urlbase64touint8array", - "source": "technician_push_urlbase64touint8array", - "target": "technician_push_registerpushsubscription", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L177", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_builddatakeyoptions", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_builddatakeyoptions", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L209", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_jsonrpc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L225", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_init", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_init", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L243", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_builddatakeyssidebar", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_builddatakeyssidebar", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L260", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_loadfields", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_loadfields", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L273", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_renderfieldsforpage", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_renderfieldsforpage", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L281", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_renderfieldmarker", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_renderfieldmarker", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L374", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_onfielddragstart", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_onfielddragstart", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L389", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_setuppalettedrag", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_setuppalettedrag", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L409", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_setupcontainerdrop", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_setupcontainerdrop", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L493", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_startresize", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_startresize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L539", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_selectfield", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L648", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_savefield", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_savefield", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L656", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_setuppagenavigation", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_setuppagenavigation", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L663", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_switchpage", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_switchpage", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L677", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_setuppreviewbutton", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_setuppreviewbutton", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L688", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_normalize", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_normalize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L694", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_round3", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_round3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L696", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_val", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_val", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L698", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_sel", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_sel", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L700", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_row", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_row", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L706", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "_tgt": "pdf_field_editor_updatefieldcount", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_static_src_js_pdf_field_editor_js", - "target": "pdf_field_editor_updatefieldcount", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L552", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_builddatakeyoptions", - "source": "pdf_field_editor_builddatakeyoptions", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L261", - "weight": 1.0, - "_src": "pdf_field_editor_loadfields", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "pdf_field_editor_jsonrpc", - "target": "pdf_field_editor_loadfields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L457", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "pdf_field_editor_jsonrpc", - "target": "pdf_field_editor_setupcontainerdrop", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L635", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "pdf_field_editor_jsonrpc", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L649", - "weight": 1.0, - "_src": "pdf_field_editor_savefield", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "pdf_field_editor_jsonrpc", - "target": "pdf_field_editor_savefield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L667", - "weight": 1.0, - "_src": "pdf_field_editor_switchpage", - "_tgt": "pdf_field_editor_jsonrpc", - "source": "pdf_field_editor_jsonrpc", - "target": "pdf_field_editor_switchpage", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L226", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_loadfields", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_loadfields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L227", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_setuppagenavigation", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_setuppagenavigation", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L228", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_setuppalettedrag", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_setuppalettedrag", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L229", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_setupcontainerdrop", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_setupcontainerdrop", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L230", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_setuppreviewbutton", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_setuppreviewbutton", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L231", - "weight": 1.0, - "_src": "pdf_field_editor_init", - "_tgt": "pdf_field_editor_builddatakeyssidebar", - "source": "pdf_field_editor_init", - "target": "pdf_field_editor_builddatakeyssidebar", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L265", - "weight": 1.0, - "_src": "pdf_field_editor_loadfields", - "_tgt": "pdf_field_editor_renderfieldsforpage", - "source": "pdf_field_editor_loadfields", - "target": "pdf_field_editor_renderfieldsforpage", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L276", - "weight": 1.0, - "_src": "pdf_field_editor_renderfieldsforpage", - "_tgt": "pdf_field_editor_renderfieldmarker", - "source": "pdf_field_editor_renderfieldsforpage", - "target": "pdf_field_editor_renderfieldmarker", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L278", - "weight": 1.0, - "_src": "pdf_field_editor_renderfieldsforpage", - "_tgt": "pdf_field_editor_updatefieldcount", - "source": "pdf_field_editor_renderfieldsforpage", - "target": "pdf_field_editor_updatefieldcount", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L461", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_renderfieldsforpage", - "source": "pdf_field_editor_renderfieldsforpage", - "target": "pdf_field_editor_setupcontainerdrop", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L545", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_renderfieldsforpage", - "source": "pdf_field_editor_renderfieldsforpage", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L669", - "weight": 1.0, - "_src": "pdf_field_editor_switchpage", - "_tgt": "pdf_field_editor_renderfieldsforpage", - "source": "pdf_field_editor_renderfieldsforpage", - "target": "pdf_field_editor_switchpage", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L339", - "weight": 1.0, - "_src": "pdf_field_editor_renderfieldmarker", - "_tgt": "pdf_field_editor_startresize", - "source": "pdf_field_editor_renderfieldmarker", - "target": "pdf_field_editor_startresize", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L347", - "weight": 1.0, - "_src": "pdf_field_editor_renderfieldmarker", - "_tgt": "pdf_field_editor_onfielddragstart", - "source": "pdf_field_editor_renderfieldmarker", - "target": "pdf_field_editor_onfielddragstart", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L353", - "weight": 1.0, - "_src": "pdf_field_editor_renderfieldmarker", - "_tgt": "pdf_field_editor_selectfield", - "source": "pdf_field_editor_renderfieldmarker", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L435", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_normalize", - "source": "pdf_field_editor_setupcontainerdrop", - "target": "pdf_field_editor_normalize", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L437", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_round3", - "source": "pdf_field_editor_setupcontainerdrop", - "target": "pdf_field_editor_round3", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L462", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_selectfield", - "source": "pdf_field_editor_setupcontainerdrop", - "target": "pdf_field_editor_selectfield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L478", - "weight": 1.0, - "_src": "pdf_field_editor_setupcontainerdrop", - "_tgt": "pdf_field_editor_savefield", - "source": "pdf_field_editor_setupcontainerdrop", - "target": "pdf_field_editor_savefield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L555", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_row", - "source": "pdf_field_editor_selectfield", - "target": "pdf_field_editor_row", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L560", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_sel", - "source": "pdf_field_editor_selectfield", - "target": "pdf_field_editor_sel", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L576", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_round3", - "source": "pdf_field_editor_selectfield", - "target": "pdf_field_editor_round3", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L617", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_val", - "source": "pdf_field_editor_selectfield", - "target": "pdf_field_editor_val", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L628", - "weight": 1.0, - "_src": "pdf_field_editor_selectfield", - "_tgt": "pdf_field_editor_savefield", - "source": "pdf_field_editor_selectfield", - "target": "pdf_field_editor_savefield", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/static/src/js/pdf_field_editor.js", - "source_location": "L659", - "weight": 1.0, - "_src": "pdf_field_editor_setuppagenavigation", - "_tgt": "pdf_field_editor_switchpage", - "source": "pdf_field_editor_setuppagenavigation", - "target": "pdf_field_editor_switchpage", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L15", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "_tgt": "portal_page11_sign_page11publicsigncontroller", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "target": "portal_page11_sign_page11publicsigncontroller", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L38", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "_tgt": "portal_page11_sign_page11_sign_form", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "target": "portal_page11_sign_page11_sign_form", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L109", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "_tgt": "portal_page11_sign_page11_sign_submit", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "target": "portal_page11_sign_page11_sign_submit", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L186", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "_tgt": "portal_page11_sign_page11_download_pdf", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_page11_sign_py", - "target": "portal_page11_sign_page11_download_pdf", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L17", - "weight": 1.0, - "_src": "portal_page11_sign_page11publicsigncontroller", - "_tgt": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "source": "portal_page11_sign_page11publicsigncontroller", - "target": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L40", - "weight": 1.0, - "_src": "portal_page11_sign_page11_sign_form", - "_tgt": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "source": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "target": "portal_page11_sign_page11_sign_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L111", - "weight": 1.0, - "_src": "portal_page11_sign_page11_sign_submit", - "_tgt": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "source": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "target": "portal_page11_sign_page11_sign_submit", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_page11_sign.py", - "source_location": "L18", - "weight": 1.0, - "_src": "portal_page11_sign_rationale_18", - "_tgt": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "source": "portal_page11_sign_page11publicsigncontroller_get_sign_request", - "target": "portal_page11_sign_rationale_18", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L16", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_assessmentportal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_assessmentportal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L20", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessments", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessments", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L97", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_new", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_new", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L122", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_view", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_view", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L172", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_save", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_save", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L285", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_signatures", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_signatures", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L318", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_save_signature", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_save_signature", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L378", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_complete", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_complete", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L420", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_express_new", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_express_new", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L467", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_express_edit", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_express_edit", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L534", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_assessment_express_save", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_assessment_express_save", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1026", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_book_assessment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_book_assessment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1056", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "_tgt": "portal_assessment_portal_book_assessment_submit", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_assessment_py", - "target": "portal_assessment_portal_book_assessment_submit", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L16", - "weight": 1.0, - "_src": "portal_assessment_assessmentportal", - "_tgt": "customerportal", - "source": "portal_assessment_assessmentportal", - "target": "customerportal", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L803", - "weight": 1.0, - "_src": "portal_assessment_assessmentportal", - "_tgt": "portal_assessment_assessmentportal_build_express_assessment_vals", - "source": "portal_assessment_assessmentportal", - "target": "portal_assessment_assessmentportal_build_express_assessment_vals", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1003", - "weight": 1.0, - "_src": "portal_assessment_assessmentportal", - "_tgt": "portal_assessment_assessmentportal_get_canadian_provinces", - "source": "portal_assessment_assessmentportal", - "target": "portal_assessment_assessmentportal_get_canadian_provinces", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L17", - "weight": 1.0, - "_src": "portal_assessment_rationale_17", - "_tgt": "portal_assessment_assessmentportal", - "source": "portal_assessment_assessmentportal", - "target": "portal_assessment_rationale_17", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L14", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "customerportal", - "source": "customerportal", - "target": "portal_main_authorizerportal", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L455", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_new", - "_tgt": "portal_assessment_assessmentportal_get_canadian_provinces", - "source": "portal_assessment_portal_assessment_express_new", - "target": "portal_assessment_assessmentportal_get_canadian_provinces", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L523", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_edit", - "_tgt": "portal_assessment_assessmentportal_get_canadian_provinces", - "source": "portal_assessment_portal_assessment_express_edit", - "target": "portal_assessment_assessmentportal_get_canadian_provinces", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L548", - "weight": 1.0, - "_src": "portal_assessment_portal_assessment_express_save", - "_tgt": "portal_assessment_assessmentportal_build_express_assessment_vals", - "source": "portal_assessment_portal_assessment_express_save", - "target": "portal_assessment_assessmentportal_build_express_assessment_vals", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L804", - "weight": 1.0, - "_src": "portal_assessment_rationale_804", - "_tgt": "portal_assessment_assessmentportal_build_express_assessment_vals", - "source": "portal_assessment_assessmentportal_build_express_assessment_vals", - "target": "portal_assessment_rationale_804", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_assessment.py", - "source_location": "L1004", - "weight": 1.0, - "_src": "portal_assessment_rationale_1004", - "_tgt": "portal_assessment_assessmentportal_get_canadian_provinces", - "source": "portal_assessment_assessmentportal_get_canadian_provinces", - "target": "portal_assessment_rationale_1004", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L15", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_fusionpdfeditorcontroller", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_fusionpdfeditorcontroller", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L23", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_pdf_field_editor", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_pdf_field_editor", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L52", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_get_fields", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_get_fields", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L68", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_update_field", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_update_field", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L90", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_create_field", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_create_field", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L118", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_delete_field", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_delete_field", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L130", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_get_page_image", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_get_page_image", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L147", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_upload_preview_image", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_upload_preview_image", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L181", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "_tgt": "pdf_editor_preview_pdf", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_pdf_editor_py", - "target": "pdf_editor_preview_pdf", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/pdf_editor.py", - "source_location": "L16", - "weight": 1.0, - "_src": "pdf_editor_rationale_16", - "_tgt": "pdf_editor_fusionpdfeditorcontroller", - "source": "pdf_editor_fusionpdfeditorcontroller", - "target": "pdf_editor_rationale_16", - "confidence_score": 1.0 - }, - { - "relation": "imports_from", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/__init__.py", - "source_location": "L6", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", - "_tgt": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", - "target": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_init_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L14", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizerportal", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizerportal", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L42", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_timezone_auto_detect", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_timezone_auto_detect", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L57", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_home", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_home", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L211", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_dashboard", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L292", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_cases", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_cases", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L370", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_cases_search", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_cases_search", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L401", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_case_detail", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_case_detail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L461", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_add_comment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_add_comment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L510", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_upload_document", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_upload_document", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L547", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_download_document", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_download_document", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L590", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_download_attachment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_download_attachment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L648", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_authorizer_view_photo", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_authorizer_view_photo", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L691", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_sales_rep_dashboard", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_sales_rep_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L764", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_sales_rep_cases", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_sales_rep_cases", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L824", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_sales_rep_cases_search", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_sales_rep_cases_search", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L856", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_sales_rep_case_detail", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_sales_rep_case_detail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L916", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_sales_rep_add_comment", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_sales_rep_add_comment", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L981", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_client_funding_claims", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_client_funding_claims", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1024", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_client_funding_claim_detail", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_client_funding_claim_detail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1061", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_client_download_document", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_client_download_document", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1094", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_client_download_proof_of_delivery", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_client_download_proof_of_delivery", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1195", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_dashboard", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1275", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_tasks", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_tasks", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1329", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_task_detail", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_task_detail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1388", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_task_add_notes", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_task_add_notes", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1533", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_task_action", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_task_action", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1609", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_voice_transcribe", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_voice_transcribe", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1674", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_ai_format", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_ai_format", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1734", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_voice_complete", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_voice_complete", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1833", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_tomorrow", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_tomorrow", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1872", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_schedule_date", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_schedule_date", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1904", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_location_map", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_location_map", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1922", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_location_log", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_location_log", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1938", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_clock_status", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_clock_status", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1957", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_save_start_location", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_save_start_location", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1971", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_push_subscribe", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_push_subscribe", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1981", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_deliveries", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_deliveries", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1986", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_technician_delivery_detail", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_technician_delivery_detail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2008", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_pod_signature_page", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_pod_signature_page", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2074", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_pod_save_signature", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_pod_save_signature", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2226", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_task_pod_signature_page", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_task_pod_signature_page", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2252", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_task_pod_save_signature", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_task_pod_save_signature", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2354", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_assessment_selector", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_assessment_selector", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2372", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_assessment_list", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_assessment_list", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2413", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_stairlift_straight", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_stairlift_straight", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2418", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_stairlift_curved", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_stairlift_curved", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2423", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_vpl", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_vpl", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2428", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_ceiling_lift", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_ceiling_lift", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2433", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_ramp", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_ramp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2438", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_bathroom", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_bathroom", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2443", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_tub_cutout", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_tub_cutout", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2483", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_accessibility_assessment_save", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_accessibility_assessment_save", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2769", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_rental_inspection_page", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_rental_inspection_page", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2795", - "weight": 1.0, - "_src": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "_tgt": "portal_main_rental_inspection_submit", - "source": "users_gurpreet_github_odoo_modules_fusion_authorizer_portal_controllers_portal_main_py", - "target": "portal_main_rental_inspection_submit", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L17", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_get_user_tz", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_get_user_tz", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L966", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_prepare_home_portal_values", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_prepare_home_portal_values", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L138", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_get_adp_posting_info", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_get_adp_posting_info", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1128", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_get_clock_status_data", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_get_clock_status_data", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1179", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_check_technician_access", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2311", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_generate_signed_pod_pdf", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_generate_signed_pod_pdf", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2447", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2593", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2605", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2625", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_vpl_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_vpl_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2640", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2650", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_ramp_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_ramp_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2660", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_bathroom_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_bathroom_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2666", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_parse_tub_cutout_fields", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_parse_tub_cutout_fields", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2674", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_attach_accessibility_photos", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_attach_accessibility_photos", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2714", - "weight": 1.0, - "_src": "portal_main_authorizerportal", - "_tgt": "portal_main_authorizerportal_attach_accessibility_video", - "source": "portal_main_authorizerportal", - "target": "portal_main_authorizerportal_attach_accessibility_video", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L15", - "weight": 1.0, - "_src": "portal_main_rationale_15", - "_tgt": "portal_main_authorizerportal", - "source": "portal_main_authorizerportal", - "target": "portal_main_rationale_15", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L154", - "weight": 1.0, - "_src": "portal_main_authorizerportal_get_adp_posting_info", - "_tgt": "portal_main_authorizerportal_get_user_tz", - "source": "portal_main_authorizerportal_get_user_tz", - "target": "portal_main_authorizerportal_get_adp_posting_info", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1155", - "weight": 1.0, - "_src": "portal_main_authorizerportal_get_clock_status_data", - "_tgt": "portal_main_authorizerportal_get_user_tz", - "source": "portal_main_authorizerportal_get_user_tz", - "target": "portal_main_authorizerportal_get_clock_status_data", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1442", - "weight": 1.0, - "_src": "portal_main_technician_task_add_notes", - "_tgt": "portal_main_authorizerportal_get_user_tz", - "source": "portal_main_authorizerportal_get_user_tz", - "target": "portal_main_technician_task_add_notes", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L18", - "weight": 1.0, - "_src": "portal_main_rationale_18", - "_tgt": "portal_main_authorizerportal_get_user_tz", - "source": "portal_main_authorizerportal_get_user_tz", - "target": "portal_main_rationale_18", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L66", - "weight": 1.0, - "_src": "portal_main_home", - "_tgt": "portal_main_authorizerportal_get_adp_posting_info", - "source": "portal_main_home", - "target": "portal_main_authorizerportal_get_adp_posting_info", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L68", - "weight": 1.0, - "_src": "portal_main_home", - "_tgt": "portal_main_authorizerportal_get_clock_status_data", - "source": "portal_main_home", - "target": "portal_main_authorizerportal_get_clock_status_data", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L134", - "weight": 1.0, - "_src": "portal_main_authorizerportal_prepare_home_portal_values", - "_tgt": "portal_main_authorizerportal_get_adp_posting_info", - "source": "portal_main_authorizerportal_prepare_home_portal_values", - "target": "portal_main_authorizerportal_get_adp_posting_info", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L92", - "weight": 1.0, - "_src": "portal_main_rationale_92", - "_tgt": "portal_main_authorizerportal_prepare_home_portal_values", - "source": "portal_main_authorizerportal_prepare_home_portal_values", - "target": "portal_main_rationale_92", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L967", - "weight": 1.0, - "_src": "portal_main_rationale_967", - "_tgt": "portal_main_authorizerportal_prepare_home_portal_values", - "source": "portal_main_authorizerportal_prepare_home_portal_values", - "target": "portal_main_rationale_967", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L139", - "weight": 1.0, - "_src": "portal_main_rationale_139", - "_tgt": "portal_main_authorizerportal_get_adp_posting_info", - "source": "portal_main_authorizerportal_get_adp_posting_info", - "target": "portal_main_rationale_139", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L760", - "weight": 1.0, - "_src": "portal_main_sales_rep_dashboard", - "_tgt": "portal_main_authorizerportal_get_clock_status_data", - "source": "portal_main_sales_rep_dashboard", - "target": "portal_main_authorizerportal_get_clock_status_data", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1254", - "weight": 1.0, - "_src": "portal_main_technician_dashboard", - "_tgt": "portal_main_authorizerportal_get_clock_status_data", - "source": "portal_main_authorizerportal_get_clock_status_data", - "target": "portal_main_technician_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1129", - "weight": 1.0, - "_src": "portal_main_rationale_1129", - "_tgt": "portal_main_authorizerportal_get_clock_status_data", - "source": "portal_main_authorizerportal_get_clock_status_data", - "target": "portal_main_rationale_1129", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1197", - "weight": 1.0, - "_src": "portal_main_technician_dashboard", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1277", - "weight": 1.0, - "_src": "portal_main_technician_tasks", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_tasks", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1331", - "weight": 1.0, - "_src": "portal_main_technician_task_detail", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_task_detail", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1394", - "weight": 1.0, - "_src": "portal_main_technician_task_add_notes", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_task_add_notes", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1536", - "weight": 1.0, - "_src": "portal_main_technician_task_action", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_task_action", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1611", - "weight": 1.0, - "_src": "portal_main_technician_voice_transcribe", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_voice_transcribe", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1676", - "weight": 1.0, - "_src": "portal_main_technician_ai_format", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_ai_format", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1736", - "weight": 1.0, - "_src": "portal_main_technician_voice_complete", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_voice_complete", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1835", - "weight": 1.0, - "_src": "portal_main_technician_tomorrow", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_tomorrow", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1874", - "weight": 1.0, - "_src": "portal_main_technician_schedule_date", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_schedule_date", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1924", - "weight": 1.0, - "_src": "portal_main_technician_location_log", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_location_log", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1944", - "weight": 1.0, - "_src": "portal_main_technician_clock_status", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_clock_status", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1959", - "weight": 1.0, - "_src": "portal_main_technician_save_start_location", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_save_start_location", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1988", - "weight": 1.0, - "_src": "portal_main_technician_delivery_detail", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_technician_delivery_detail", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2228", - "weight": 1.0, - "_src": "portal_main_task_pod_signature_page", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_task_pod_signature_page", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2254", - "weight": 1.0, - "_src": "portal_main_task_pod_save_signature", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_task_pod_save_signature", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L1180", - "weight": 1.0, - "_src": "portal_main_rationale_1180", - "_tgt": "portal_main_authorizerportal_check_technician_access", - "source": "portal_main_authorizerportal_check_technician_access", - "target": "portal_main_rationale_1180", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2143", - "weight": 1.0, - "_src": "portal_main_pod_save_signature", - "_tgt": "portal_main_authorizerportal_generate_signed_pod_pdf", - "source": "portal_main_pod_save_signature", - "target": "portal_main_authorizerportal_generate_signed_pod_pdf", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2312", - "weight": 1.0, - "_src": "portal_main_rationale_2312", - "_tgt": "portal_main_authorizerportal_generate_signed_pod_pdf", - "source": "portal_main_authorizerportal_generate_signed_pod_pdf", - "target": "portal_main_rationale_2312", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2415", - "weight": 1.0, - "_src": "portal_main_accessibility_stairlift_straight", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_stairlift_straight", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2420", - "weight": 1.0, - "_src": "portal_main_accessibility_stairlift_curved", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_stairlift_curved", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2425", - "weight": 1.0, - "_src": "portal_main_accessibility_vpl", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_vpl", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2430", - "weight": 1.0, - "_src": "portal_main_accessibility_ceiling_lift", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_ceiling_lift", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2435", - "weight": 1.0, - "_src": "portal_main_accessibility_ramp", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_ramp", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2440", - "weight": 1.0, - "_src": "portal_main_accessibility_bathroom", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_bathroom", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2445", - "weight": 1.0, - "_src": "portal_main_accessibility_tub_cutout", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_accessibility_tub_cutout", - "target": "portal_main_authorizerportal_render_accessibility_form", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2448", - "weight": 1.0, - "_src": "portal_main_rationale_2448", - "_tgt": "portal_main_authorizerportal_render_accessibility_form", - "source": "portal_main_authorizerportal_render_accessibility_form", - "target": "portal_main_rationale_2448", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2524", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2526", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2528", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_vpl_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_vpl_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2530", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2532", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_ramp_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_ramp_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2534", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_bathroom_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_bathroom_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2536", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_parse_tub_cutout_fields", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_parse_tub_cutout_fields", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2549", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_attach_accessibility_photos", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_attach_accessibility_photos", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2565", - "weight": 1.0, - "_src": "portal_main_accessibility_assessment_save", - "_tgt": "portal_main_authorizerportal_attach_accessibility_video", - "source": "portal_main_accessibility_assessment_save", - "target": "portal_main_authorizerportal_attach_accessibility_video", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2594", - "weight": 1.0, - "_src": "portal_main_rationale_2594", - "_tgt": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "source": "portal_main_authorizerportal_parse_stairlift_straight_fields", - "target": "portal_main_rationale_2594", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2606", - "weight": 1.0, - "_src": "portal_main_rationale_2606", - "_tgt": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "source": "portal_main_authorizerportal_parse_stairlift_curved_fields", - "target": "portal_main_rationale_2606", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2626", - "weight": 1.0, - "_src": "portal_main_rationale_2626", - "_tgt": "portal_main_authorizerportal_parse_vpl_fields", - "source": "portal_main_authorizerportal_parse_vpl_fields", - "target": "portal_main_rationale_2626", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2641", - "weight": 1.0, - "_src": "portal_main_rationale_2641", - "_tgt": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "source": "portal_main_authorizerportal_parse_ceiling_lift_fields", - "target": "portal_main_rationale_2641", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2651", - "weight": 1.0, - "_src": "portal_main_rationale_2651", - "_tgt": "portal_main_authorizerportal_parse_ramp_fields", - "source": "portal_main_authorizerportal_parse_ramp_fields", - "target": "portal_main_rationale_2651", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2661", - "weight": 1.0, - "_src": "portal_main_rationale_2661", - "_tgt": "portal_main_authorizerportal_parse_bathroom_fields", - "source": "portal_main_authorizerportal_parse_bathroom_fields", - "target": "portal_main_rationale_2661", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2667", - "weight": 1.0, - "_src": "portal_main_rationale_2667", - "_tgt": "portal_main_authorizerportal_parse_tub_cutout_fields", - "source": "portal_main_authorizerportal_parse_tub_cutout_fields", - "target": "portal_main_rationale_2667", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2675", - "weight": 1.0, - "_src": "portal_main_rationale_2675", - "_tgt": "portal_main_authorizerportal_attach_accessibility_photos", - "source": "portal_main_authorizerportal_attach_accessibility_photos", - "target": "portal_main_rationale_2675", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "/Users/gurpreet/Github/Odoo-Modules/fusion_authorizer_portal/controllers/portal_main.py", - "source_location": "L2715", - "weight": 1.0, - "_src": "portal_main_rationale_2715", - "_tgt": "portal_main_authorizerportal_attach_accessibility_video", - "source": "portal_main_authorizerportal_attach_accessibility_video", - "target": "portal_main_rationale_2715", - "confidence_score": 1.0 - } - ], - "hyperedges": [] -} \ No newline at end of file diff --git a/fusion_centralize_billing/models/service.py b/fusion_centralize_billing/models/service.py index 10308af3..d0f57f43 100644 --- a/fusion_centralize_billing/models/service.py +++ b/fusion_centralize_billing/models/service.py @@ -247,3 +247,24 @@ class FusionBillingService(models.Model): sub.action_confirm() return {'status': 'ok', 'subscription_id': sub.id, 'subscription_state': sub.subscription_state} + + def _api_cancel_subscription(self, external_ref): + """Cancel (close) the subscription identified by ``external_ref``. + + Authorization mirrors ``_api_record_usage``: the resolved sale.order must + exist, be a subscription, and belong to a customer THIS service is linked + to. Idempotent — closing an already-churned subscription returns ok. + Validation (C3): an empty ref returns a 4xx-shaped error, never raises. + """ + self.ensure_one() + if external_ref in (None, ''): + return {'status': 'error', 'error': 'subscription id required'} + sub = self._fc_resolve_subscription(external_ref) + linked_partners = self.account_link_ids.mapped('partner_id') + if not sub.exists() or not sub.is_subscription \ + or sub.partner_id not in linked_partners: + return {'status': 'error', 'error': 'unknown subscription'} + if sub.subscription_state != '6_churn': + sub.set_close() + return {'status': 'ok', 'subscription_id': sub.id, + 'subscription_state': sub.subscription_state} diff --git a/fusion_centralize_billing/tests/__init__.py b/fusion_centralize_billing/tests/__init__.py index 59f53b12..57d0f68f 100644 --- a/fusion_centralize_billing/tests/__init__.py +++ b/fusion_centralize_billing/tests/__init__.py @@ -6,3 +6,4 @@ from . import test_webhook from . import test_importer from . import test_reconciliation from . import test_invoice_ledger +from . import test_subscription_cancel diff --git a/fusion_centralize_billing/tests/test_invoice_ledger.py b/fusion_centralize_billing/tests/test_invoice_ledger.py index c2f4fe29..3d2a7494 100644 --- a/fusion_centralize_billing/tests/test_invoice_ledger.py +++ b/fusion_centralize_billing/tests/test_invoice_ledger.py @@ -18,11 +18,26 @@ def _inv_fixture(): }] +def _fc_ensure_ca_billing_env(env): + """Prod (`nexamain`) is a fully-configured Canadian company; a bare test DB is not. + Give it the two things the ledger needs: an active CAD currency and a 13% sale tax + matching invoice.ledger.wizard._fc_tax_for (type_tax_use=sale, percent, amount=13).""" + cad = env.ref('base.CAD') + if not cad.active: + cad.sudo().write({'active': True}) + Tax = env['account.tax'].sudo() + if not Tax.search([('type_tax_use', '=', 'sale'), + ('amount_type', '=', 'percent'), ('amount', '=', 13.0)], limit=1): + Tax.create({'name': 'HST 13%', 'type_tax_use': 'sale', + 'amount_type': 'percent', 'amount': 13.0}) + + @tagged('post_install', '-at_install') class TestLedgerFamily(TransactionCase): def setUp(self): super().setUp() + _fc_ensure_ca_billing_env(self.env) self.W = self.env['fusion.billing.invoice.ledger.wizard'].sudo() def test_family_classification(self): @@ -47,6 +62,7 @@ class TestLedgerTax(TransactionCase): def setUp(self): super().setUp() + _fc_ensure_ca_billing_env(self.env) self.W = self.env['fusion.billing.invoice.ledger.wizard'].sudo() def test_tax_for_13pct_is_a_13_percent_sale_tax(self): @@ -68,6 +84,7 @@ class TestLedgerIngest(TransactionCase): def setUp(self): super().setUp() + _fc_ensure_ca_billing_env(self.env) self.W = self.env['fusion.billing.invoice.ledger.wizard'].sudo() self.Move = self.env['account.move'] @@ -174,6 +191,7 @@ class TestLedgerVerifiedSync(TransactionCase): def setUp(self): super().setUp() + _fc_ensure_ca_billing_env(self.env) self.W = self.env['fusion.billing.invoice.ledger.wizard'].sudo() self.Move = self.env['account.move'] ICP = self.env['ir.config_parameter'].sudo() diff --git a/fusion_centralize_billing/tests/test_subscription_cancel.py b/fusion_centralize_billing/tests/test_subscription_cancel.py new file mode 100644 index 00000000..70d89331 --- /dev/null +++ b/fusion_centralize_billing/tests/test_subscription_cancel.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +from odoo.tests.common import TransactionCase, tagged + + +@tagged('post_install', '-at_install') +class TestSubscriptionCancel(TransactionCase): + + def _service(self, code, name): + Svc = self.env['fusion.billing.service'].sudo() + return Svc.search([('code', '=', code)], limit=1) or Svc.create( + {'name': name, 'code': code}) + + def setUp(self): + super().setUp() + self.plan = self.env['sale.subscription.plan'].sudo().create( + {'name': 'Monthly', 'billing_period_value': 1, 'billing_period_unit': 'month'}) + self.product = self.env['product.product'].sudo().create( + {'name': 'NexaCloud Plan', 'type': 'service', + 'recurring_invoice': True, 'list_price': 49.0}) + self.svc_a = self._service('nexacloud', 'NexaCloud') + self.svc_b = self._service('other_app', 'Other App') + self.svc_a._api_upsert_customer({'external_id': 'user-1', 'name': 'Acme'}) + res = self.svc_a._api_create_subscription({ + 'external_customer_id': 'user-1', 'plan_id': self.plan.id, + 'lines': [{'product_id': self.product.id, 'quantity': 1}]}) + self.sub = self.env['sale.order'].browse(res['subscription_id']) + + def test_cancel_closes_subscription(self): + self.assertEqual(self.sub.subscription_state, '3_progress') + res = self.svc_a._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'ok') + self.assertEqual(self.sub.subscription_state, '6_churn') + + def test_cancel_is_idempotent(self): + self.svc_a._api_cancel_subscription(str(self.sub.id)) + res = self.svc_a._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'ok') + self.assertEqual(self.sub.subscription_state, '6_churn') + + def test_cancel_unknown_subscription_rejected(self): + res = self.svc_a._api_cancel_subscription('999999999') + self.assertEqual(res['status'], 'error') + self.assertEqual(res['error'], 'unknown subscription') + + def test_cancel_cross_service_rejected(self): + # svc_b is not linked to the customer that owns self.sub + res = self.svc_b._api_cancel_subscription(str(self.sub.id)) + self.assertEqual(res['status'], 'error') + self.assertEqual(res['error'], 'unknown subscription') + self.assertEqual(self.sub.subscription_state, '3_progress') + + def test_cancel_missing_id_rejected(self): + res = self.svc_a._api_cancel_subscription('') + self.assertEqual(res['status'], 'error') diff --git a/fusion_centralize_billing/tests/test_usage.py b/fusion_centralize_billing/tests/test_usage.py index c31db95b..020d573e 100644 --- a/fusion_centralize_billing/tests/test_usage.py +++ b/fusion_centralize_billing/tests/test_usage.py @@ -9,7 +9,8 @@ class TestRatingCron(TransactionCase): def setUp(self): super().setUp() - self.metric = self.env['fusion.billing.metric'].sudo().create( + Metric = self.env['fusion.billing.metric'].sudo() + self.metric = Metric.search([('code', '=', 'cpu_seconds')], limit=1) or Metric.create( {'name': 'CPU seconds', 'code': 'cpu_seconds', 'aggregation': 'sum'}) self.plan_a = self.env['sale.subscription.plan'].sudo().create( {'name': 'Plan A', 'billing_period_value': 1, 'billing_period_unit': 'month'}) @@ -67,7 +68,8 @@ class TestUsageIngestion(TransactionCase): def setUp(self): super().setUp() - self.metric = self.env['fusion.billing.metric'].sudo().create( + Metric = self.env['fusion.billing.metric'].sudo() + self.metric = Metric.search([('code', '=', 'cpu_seconds')], limit=1) or Metric.create( {'name': 'CPU seconds', 'code': 'cpu_seconds', 'aggregation': 'sum'}) self.plan = self.env['sale.subscription.plan'].sudo().create( {'name': 'Monthly', 'billing_period_value': 1, 'billing_period_unit': 'month'}) diff --git a/fusion_centralize_billing/tests/test_webhook.py b/fusion_centralize_billing/tests/test_webhook.py index 38e73cab..b8710123 100644 --- a/fusion_centralize_billing/tests/test_webhook.py +++ b/fusion_centralize_billing/tests/test_webhook.py @@ -13,11 +13,17 @@ class TestWebhookEngine(TransactionCase): def setUp(self): super().setUp() - self.service = self.env['fusion.billing.service'].sudo().create({ + Service = self.env['fusion.billing.service'].sudo() + vals = { 'name': 'NexaCloud', 'code': 'nexacloud', 'webhook_url': 'https://api.vps.nexasystems.ca/billing/webhook', 'webhook_secret': 'whsec_test', - }) + } + self.service = Service.search([('code', '=', 'nexacloud')], limit=1) + if self.service: + self.service.write(vals) + else: + self.service = Service.create(vals) self.Webhook = self.env['fusion.billing.webhook'].sudo() def test_enqueue_signs_payload(self): diff --git a/fusion_claims/CLAUDE.md b/fusion_claims/CLAUDE.md index 062617a8..9314bd1c 100644 --- a/fusion_claims/CLAUDE.md +++ b/fusion_claims/CLAUDE.md @@ -33,14 +33,14 @@ fusion_ringcentral, fusion_tasks `wizard/odsp_submit_to_odsp_wizard.py` calls into `fusion_faxes.send.fax.wizard` (the fax composer) and reads `partner.x_ff_fax_number` — **but `fusion_faxes` is NOT in `__manifest__.py.depends`**. The fax actions are guarded by `hasattr` checks so the wizard still loads if `fusion_faxes` is missing, but the "Send Fax" / "Send Email + Fax" buttons will fail at click-time. If you're moving this module to a new database, install `fusion_faxes` alongside it. -### ⚠ Reverse-dependency: `fusion_authorizer_portal` always installed alongside +### ⚠ Reverse-dependency: `fusion_portal` always installed alongside -The dependency direction is **`fusion_authorizer_portal` → `fusion_claims`** (hard, declared in fusion_authorizer_portal's manifest), but fusion_claims uses APIs that only exist when fusion_authorizer_portal is installed: +The dependency direction is **`fusion_portal` → `fusion_claims`** (hard, declared in fusion_portal's manifest), but fusion_claims uses APIs that only exist when fusion_portal is installed: -- `sale.order._apply_pod_signature_to_approval_form` imports `PDFTemplateFiller` from `odoo.addons.fusion_authorizer_portal.utils.pdf_filler` — `ImportError` if missing. -- `fusion.page11.sign.request` renders PDFs using `fusion.pdf.template` records — that **model lives in fusion_authorizer_portal**, not here. -- The `/page11/sign/` URL that the Page 11 wizard generates is handled by `fusion_authorizer_portal.controllers.portal_page11_sign` — without it the public signing flow is dead. -- `page11_sign_request._generate_signed_pdf` references `fusion.assessment` records — that model also lives in fusion_authorizer_portal. +- `sale.order._apply_pod_signature_to_approval_form` imports `PDFTemplateFiller` from `odoo.addons.fusion_portal.utils.pdf_filler` — `ImportError` if missing. +- `fusion.page11.sign.request` renders PDFs using `fusion.pdf.template` records — that **model lives in fusion_portal**, not here. +- The `/page11/sign/` URL that the Page 11 wizard generates is handled by `fusion_portal.controllers.portal_page11_sign` — without it the public signing flow is dead. +- `page11_sign_request._generate_signed_pdf` references `fusion.assessment` records — that model also lives in fusion_portal. In practice both modules are always installed together. See §29 for the full integration map. @@ -861,7 +861,7 @@ Mirrors the MOD on_hold pattern. `x_fc_odsp_previous_status_before_hold` saves t | Method | Used when | Mechanism | |---|---|---| | `action_sign_sa_mobility_form` | Client signs the SA Mobility form directly (Page 2 client consent) | **Hard-coded coordinates**: writes printed name at `(180, h-180)` and `(72, h-560)`, date at `(350, h-560)`, signature image at `(72, h-540, 200×50px)`. Uses `reportlab.pdfgen.canvas` + `odoo.tools.pdf.PdfFileReader/Writer`. **Brittle** — if the gov PDF layout changes, the coordinates must be re-measured. | -| `_apply_pod_signature_to_approval_form` | POD signature collected (auto-fired by `write` override when `x_fc_pod_signature` is set) | **PDFTemplateFiller** from `fusion_authorizer_portal` — reads field positions from the active `fusion.pdf.template` (category=`odsp`), uses per-case `x_fc_sa_signature_page`. Configurable via drag-and-drop visual editor, not code. Bypass via `skip_pod_signature_hook=True` context. | +| `_apply_pod_signature_to_approval_form` | POD signature collected (auto-fired by `write` override when `x_fc_pod_signature` is set) | **PDFTemplateFiller** from `fusion_portal` — reads field positions from the active `fusion.pdf.template` (category=`odsp`), uses per-case `x_fc_sa_signature_page`. Configurable via drag-and-drop visual editor, not code. Bypass via `skip_pod_signature_hook=True` context. | The PDFTemplateFiller approach is the preferred path going forward — it survives gov form revisions because positions live in the database, not in Python code. @@ -1588,7 +1588,7 @@ All user-facing text is **Canadian English** (per repo CLAUDE.md). All monetary 74. **`odsp_sa_mobility_wizard._get_template_path()` uses raw `os.path`** instead of Odoo's `tools.misc.file_path`. If the module is ever deployed as a zip (rare in Odoo deployments but possible), this will fail. Migrate to `file_path('fusion_claims/static/src/pdf/sa_mobility_form_template.pdf')` if you ship this for multi-tenant. -75. **PDF template field positions for ODSP signing live in `fusion.pdf.template` (category=odsp)** — managed via a drag-and-drop editor that lives in `fusion_authorizer_portal`. The OWL editor reads field positions per-page; `_apply_pod_signature_to_approval_form` consumes them. If the gov SA form layout changes, edit the template via the visual editor, not by changing Python coordinates. +75. **PDF template field positions for ODSP signing live in `fusion.pdf.template` (category=odsp)** — managed via a drag-and-drop editor that lives in `fusion_portal`. The OWL editor reads field positions per-page; `_apply_pod_signature_to_approval_form` consumes them. If the gov SA form layout changes, edit the template via the visual editor, not by changing Python coordinates. 76. **SA Mobility wizard limits rows**: 6 parts, 5 labour, 4 fees. The gov PDF only has that many slots. If the SO has more lines, the rest are silently dropped from the form fill (but still appear in the invoice). The wizard truncates via slicing in `default_get`. @@ -1862,11 +1862,11 @@ This module is the **lower-level engine**. Two sibling modules layer on top of i The whole technician task → sale order coupling lives in `fusion_claims/models/technician_task.py:674` — and the calendar / map / scheduling logic stays in the base `fusion.technician.task` model in fusion_tasks. -### 29.2 `fusion_authorizer_portal` (portal layer — undeclared but co-installed) +### 29.2 `fusion_portal` (portal layer — undeclared but co-installed) -fusion_authorizer_portal manifest declares `fusion_claims` + `fusion_tasks` + `fusion_loaners_management` as hard deps. fusion_claims uses APIs that only exist when fusion_authorizer_portal is installed — see the dependency note at the top of §2. +fusion_portal manifest declares `fusion_claims` + `fusion_tasks` + `fusion_loaners_management` as hard deps. fusion_claims uses APIs that only exist when fusion_portal is installed — see the dependency note at the top of §2. -| Provided by fusion_authorizer_portal | Used by fusion_claims | +| Provided by fusion_portal | Used by fusion_claims | |---|---| | `PDFTemplateFiller` class (`utils/pdf_filler.py`) | `sale.order._apply_pod_signature_to_approval_form` imports it. Same pattern as Odoo Enterprise Sign module — overlays text/checkmarks/signatures via reportlab Canvas + `mergePage()`. | | `fusion.pdf.template` model + `fusion.pdf.template.field` + `fusion.pdf.template.preview` | Drag-and-drop visual editor for placing fields on PDF preview images. Categories: `adp`, `mod`, `odsp`, `hardship`, `other`. fusion_claims searches for `(category='odsp', state='active')` for SA Mobility / OW signature overlays. The Page 11 wizard searches for `name ilike 'adp_page_11'` or `'page 11'`. | @@ -1888,7 +1888,7 @@ fusion_authorizer_portal manifest declares `fusion_claims` + `fusion_tasks` + `f - Renaming a field on `sale.order` likely affects portal templates (`portal_templates.xml`, `portal_assessment_express.xml`, `portal_accessibility_*.xml`) that reference it via QWeb. - Adding a new `x_fc_adp_application_status` value may need a portal-side handler in `portal_main.py` to render the new state. - The `fusion.pdf.template` schema (page-positioned fields) is the ground truth for ODSP signature placement — DON'T hard-code coordinates in fusion_claims when you could create a template field instead. -- The `_reactivate_views` post-init hook on fusion_authorizer_portal exists specifically because the inheritance from this module's views is fragile — if you rename a field referenced by an xpath in fusion_authorizer_portal, that view goes dead and stays dead. +- The `_reactivate_views` post-init hook on fusion_portal exists specifically because the inheritance from this module's views is fragile — if you rename a field referenced by an xpath in fusion_portal, that view goes dead and stays dead. ### 29.3 Other co-installed Nexa modules @@ -1896,7 +1896,7 @@ fusion_authorizer_portal manifest declares `fusion_claims` + `fusion_tasks` + `f |---|---|---| | `fusion_ringcentral` | RingCentral softphone, click-to-dial widget, fax composer | Click-to-dial works on any phone field — no direct API calls from this module | | `fusion_faxes` | `fusion_faxes.send.fax.wizard` + `partner.x_ff_fax_number` | Hard-soft-dep: `odsp_submit_to_odsp_wizard` calls the fax wizard for ODSP submissions | -| `fusion_loaners_management` | Loaner equipment lending | fusion_authorizer_portal depends on this; fusion_claims doesn't touch it directly | +| `fusion_loaners_management` | Loaner equipment lending | fusion_portal depends on this; fusion_claims doesn't touch it directly | | `fusion_pdf_preview` | PDF preview client action + report intercept | Project CLAUDE.md says prefer this over `act_url`+`target=new` for attachments. fusion_claims still has legacy attachment buttons using the old pattern — see gotcha #12 | ## 30. Per-funder workflow state machines @@ -2323,7 +2323,7 @@ Creates a `fusion.technician.location` record on the remote with `source='sync'` - `context['skip_travel_recalc']` — prevents the pull from triggering local recalculations. - Terminal-state tasks (`completed`, `cancelled`) — push side does write, but pull side does NOT update existing shadow records that are already terminal (defensive against late race conditions). -## 33. `fusion.assessment` (OT assessment model — lives in `fusion_authorizer_portal`) +## 33. `fusion.assessment` (OT assessment model — lives in `fusion_portal`) The 1,636-line model that captures an OT's assessment of a client + their equipment needs, then generates the draft sale order. @@ -2395,7 +2395,7 @@ The model has `signature_page_11` + `signature_page_12` binary fields. `signatur `action_complete_express()` skips step 3 (signatures) entirely — used for the "express" assessment route from the sales-rep portal where the rep just needs to spec a wheelchair without doing the full ADP assessment. -## 34. `fusion.accessibility.assessment` (MOD/accessibility assessment — lives in `fusion_authorizer_portal`) +## 34. `fusion.accessibility.assessment` (MOD/accessibility assessment — lives in `fusion_portal`) The 966-line sibling for accessibility modifications (not ADP). @@ -2466,7 +2466,7 @@ The model has hundreds of measurement fields, only some of which are visible per `stairlift_curved`, `vpl`, `ceiling_lift`, `ramp`, `bathroom`, `tub_cutout` each have their own set of fields. -## 35. `fusion_authorizer_portal` controller routes — detailed +## 35. `fusion_portal` controller routes — detailed Full per-route inventory from `portal_main.py` (2,827 lines), `portal_assessment.py` (1,238), `portal_page11_sign.py` (206), `pdf_editor.py` (218). @@ -2816,7 +2816,7 @@ All filtered to `move_type in ['out_invoice', 'out_refund']` (customer invoices ACSD (Assistance to Children with Severe Disabilities) is a CLIENT TYPE, not a sale type. The menu has a dedicated ACSD entry that catches any sale type but with `client_type='ACS'`. -## 40. `fusion_authorizer_portal.sale_order` extensions (266 lines) +## 40. `fusion_portal.sale_order` extensions (266 lines) Adds 6 fields to `sale.order` + 5 methods: @@ -2843,7 +2843,7 @@ JSON-RPC methods (called from portal JS): `_get_partner_address_display()` — formatted address string. `_get_product_lines_for_portal()` — product lines minus internal-only data. -## 41. `fusion_authorizer_portal.res_partner` extensions (767 lines) +## 41. `fusion_portal.res_partner` extensions (767 lines) Adds geolocation + portal access management: @@ -3019,7 +3019,7 @@ ssh odoo-westin "docker exec odoo-dev-app odoo -d westin-v19 -u fusion_claims -- ssh odoo-mobility "docker exec odoo-mobility-app odoo -d mobility -u fusion_claims --stop-after-init && docker restart odoo-mobility-app" ``` -For multiple modules: `-u fusion_claims,fusion_tasks,fusion_authorizer_portal`. +For multiple modules: `-u fusion_claims,fusion_tasks,fusion_portal`. ### 46.3 Database probes @@ -3077,7 +3077,7 @@ After 9 rounds of deep diving, here's what CLAUDE.md covers vs the codebase: - Every cron job with cadence + logic - Every constraint method with regex + rule - Every special-character/edge-case behaviour I encountered -- Every cross-module integration point with both sibling modules (fusion_tasks, fusion_authorizer_portal) +- Every cross-module integration point with both sibling modules (fusion_tasks, fusion_portal) - Every PDF report's conditional sections + business logic - Every ICP setting (~60+) - Every gotcha (~83) @@ -3103,4 +3103,4 @@ After 9 rounds of deep diving, here's what CLAUDE.md covers vs the codebase: - Build new reports following the established color/header/footer conventions - Add new gotchas in the right format - Understand the soft-dep on `fusion_faxes` + `fusion_pdf_preview` -- Know the deployment fact that fusion_authorizer_portal is always co-installed +- Know the deployment fact that fusion_portal is always co-installed diff --git a/fusion_claims/models/sale_order.py b/fusion_claims/models/sale_order.py index a98d3098..b0f4e738 100644 --- a/fusion_claims/models/sale_order.py +++ b/fusion_claims/models/sale_order.py @@ -1709,7 +1709,7 @@ class SaleOrder(models.Model): return import base64 - from odoo.addons.fusion_authorizer_portal.utils.pdf_filler import PDFTemplateFiller + from odoo.addons.fusion_portal.utils.pdf_filler import PDFTemplateFiller tpl = self.env['fusion.pdf.template'].search([ ('category', '=', 'odsp'), ('state', '=', 'active'), diff --git a/fusion_clock/CLAUDE.md b/fusion_clock/CLAUDE.md index c92f57db..46a12ae5 100644 --- a/fusion_clock/CLAUDE.md +++ b/fusion_clock/CLAUDE.md @@ -5,7 +5,7 @@ ## 1. What This Module Is - **Name**: Fusion Clock. -- **Version**: `19.0.3.3.0`. +- **Version**: `19.0.4.1.0`. - **Category**: Human Resources/Attendances. - **License**: OPL-1, Nexa Systems Inc. - **Purpose**: complete time and attendance app built on Odoo `hr.attendance`. @@ -68,6 +68,7 @@ Custom models: | `fusion.clock.leave.request` | `models/clock_leave_request.py` | Portal leave requests, auto-approved but office-notified. | | `fusion.clock.correction` | `models/clock_correction.py` | Timesheet correction requests with approve/reject workflow. | | `fusion.clock.report` | `models/clock_report.py` | Employee or batch pay-period report with PDF/CSV export and email send. | +| `fusion.clock.break.rule` | `models/clock_break_rule.py` | Per-province statutory unpaid-break thresholds (2-tier: first break after N1 h, second after N2 h). | | `fusion.clock.nfc.enrollment.wizard` | `wizard/clock_nfc_enrollment_wizard.py` | Backend NFC card enrolment/reassignment wizard. | Inherited models: @@ -101,7 +102,7 @@ Clock-out flow: 1. Verify location again. 2. Call `_attendance_action_change()`. 3. Write out-distance. -4. Apply break deduction when configured. +4. Break is deducted automatically — `x_fclk_break_minutes` is a stored compute (see §13), not an explicit controller step. 5. Create `early_out` penalty when outside grace. 6. Log `clock_out`. 7. Log overtime if computed overtime is positive. @@ -252,7 +253,6 @@ fusion_clock.default_clock_in_time fusion_clock.default_clock_out_time fusion_clock.default_break_minutes fusion_clock.auto_deduct_break -fusion_clock.break_threshold_hours fusion_clock.enable_auto_clockout fusion_clock.max_shift_hours fusion_clock.enable_penalties @@ -327,8 +327,9 @@ All new JSON endpoints must use `type="jsonrpc"`, not deprecated `type="json"`. - Always use local-day helpers for date domains. UTC midnight boundaries will break attendance totals around timezone offsets. - `hr.employee._get_fclk_scheduled_times(date)` returns naive UTC datetimes suitable for Odoo comparisons. -- Break deduction is stored as minutes in `hr.attendance.x_fclk_break_minutes`; penalties add to that same field. -- `x_fclk_net_hours` is computed from Odoo `worked_hours` minus break minutes. +- **`hr.attendance.x_fclk_break_minutes` is a stored COMPUTE, not a writable field** (`_compute_fclk_break_minutes`): statutory break (per the employee's province `fusion.clock.break.rule`, from actual `worked_hours`, 2-tier — first break after N1 h, second after N2 h, inclusive `>=`) **plus** Σ penalty minutes. It recomputes on every path incl. manual backend create/edit, which is what makes the break auto-apply on manually-entered hours. NEVER `write()` it — change the province rule or toggle `fusion_clock.auto_deduct_break` instead. Penalty minutes are now strictly additive (the old controller `max()` that could swallow a late clock-in penalty is gone). Rule resolved via `hr.employee._get_fclk_break_rule()` (company `state_id` → matching rule → global `is_default` rule). The retired `break_threshold_hours` setting is superseded by per-rule `break1_after_hours`. +- `x_fclk_net_hours` is computed from Odoo `worked_hours` minus break minutes. **Gotcha: `worked_hours` itself subtracts the resource-calendar lunch interval for NON-flexible employees** (Odoo core `hr.attendance._get_worked_hours_in_range`), so the statutory tiers run on lunch-excluded hours; flexible / no-calendar employees get the raw check_in→check_out span. Tests that need a deterministic span give the employee a `flexible_hours` calendar. +- **Migration recompute gotcha**: recomputing ONE stored computed field via `env.add_to_compute(field, recs) + recs.flush_recordset([field])` does NOT cascade to fields that depend on it. The `19.0.4.1.0` post-migrate recomputes `x_fclk_break_minutes`, `x_fclk_net_hours` AND `x_fclk_overtime_hours` (in that dependency order, flushing each) — recomputing only the break left historical `net_hours` stale (caught on the entech deploy 2026-06-01). - Daily overtime compares net hours to the employee's scheduled hours or the daily threshold. (The old `weekly_overtime_threshold` and `grace_period_minutes` settings were removed 2026-05-31 — they were defined/shown but never consumed.) - `fusion_clock.enable_ip_fallback` is honoured: `_verify_location()` only attempts IP-whitelist matching when the toggle is on (default on). - **All fusion_clock Boolean settings are persisted explicitly** (`'True'`/`'False'`) via the `_FCLK_BOOL_PARAMS` loop in `res.config.settings.get_values/set_values`, NOT via `config_parameter=`. Reason: a `config_parameter` Boolean can't be turned OFF (Odoo deletes the param row on a falsy value, so `get_param` returns the default and the feature stays on). When adding a new Boolean setting, add it to `_FCLK_BOOL_PARAMS` with its default; don't use `config_parameter=`. diff --git a/fusion_clock/__manifest__.py b/fusion_clock/__manifest__.py index f2ed0b42..5e027958 100644 --- a/fusion_clock/__manifest__.py +++ b/fusion_clock/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Clock', - 'version': '19.0.4.0.3', + 'version': '19.0.4.2.0', 'category': 'Human Resources/Attendances', 'summary': 'Complete Employee T&A with Geofencing, Shifts, Penalties, Overtime, Kiosk, Dashboard & Payroll Export', 'description': """ @@ -52,6 +52,7 @@ Integrates natively with Odoo's hr.attendance module for full payroll compatibil 'security/ir.model.access.csv', # Data 'data/ir_config_parameter_data.xml', + 'data/clock_break_rule_data.xml', 'data/ir_cron_data.xml', # Reports (must load before mail templates that reference them) 'report/clock_report_template.xml', @@ -71,6 +72,7 @@ Integrates natively with Odoo's hr.attendance module for full payroll compatibil 'views/clock_dashboard_views.xml', 'views/hr_employee_views.xml', 'views/clock_schedule_views.xml', + 'views/clock_break_rule_views.xml', # Wizards (must load before clock_menus.xml since menu references wizard action) 'wizard/clock_nfc_enrollment_views.xml', 'wizard/clock_period_picker_views.xml', diff --git a/fusion_clock/controllers/clock_api.py b/fusion_clock/controllers/clock_api.py index 41bd020e..d50105db 100644 --- a/fusion_clock/controllers/clock_api.py +++ b/fusion_clock/controllers/clock_api.py @@ -5,7 +5,6 @@ import base64 import math import logging -import pytz from datetime import datetime, timedelta from odoo import http, fields, _ from odoo.http import request @@ -137,12 +136,6 @@ class FusionClockAPI(http.Controller): 'date': actual_dt.date() if isinstance(actual_dt, datetime) else get_local_today(request.env, employee), }) - # Deduct penalty minutes from attendance (adds to break deduction) - current_break = attendance.x_fclk_break_minutes or 0.0 - attendance.sudo().write({ - 'x_fclk_break_minutes': current_break + deduction, - }) - # Log penalty log_type = 'late_clock_in' if penalty_type == 'late_in' else 'early_clock_out' request.env['fusion.clock.activity.log'].sudo().create({ @@ -158,32 +151,6 @@ class FusionClockAPI(http.Controller): if penalty_type == 'late_in': employee.sudo().write({'x_fclk_ontime_streak': 0}) - def _apply_break_deduction(self, attendance, employee): - """Apply automatic break deduction if configured.""" - ICP = request.env['ir.config_parameter'].sudo() - if ICP.get_param('fusion_clock.auto_deduct_break', 'True') != 'True': - return - - threshold = float(ICP.get_param('fusion_clock.break_threshold_hours', '4.0')) - worked = attendance.worked_hours or 0.0 - - if worked >= threshold: - local_date = get_local_today(request.env, employee) - if attendance.check_in: - tz_name = ( - employee.resource_id.tz - or (employee.user_id.partner_id.tz if employee.user_id else False) - or employee.company_id.partner_id.tz - or 'UTC' - ) - local_date = pytz.UTC.localize(attendance.check_in).astimezone(pytz.timezone(tz_name)).date() - break_min = employee._get_fclk_break_minutes(local_date) - current = attendance.x_fclk_break_minutes or 0.0 - # Set to whichever is higher: configured break or existing (penalty-inflated) value - new_val = max(break_min, current) - if new_val != current: - attendance.sudo().write({'x_fclk_break_minutes': new_val}) - def _log_activity(self, employee, log_type, description, attendance=None, location=None, latitude=0, longitude=0, distance=0, source='portal'): """Create an activity log entry.""" @@ -320,6 +287,11 @@ class FusionClockAPI(http.Controller): attendance.sudo().write(write_vals) + # A successful clock-in resolves any pending missed-clock-out flag, + # so the employee is never nagged once they are back on the clock. + if employee.x_fclk_pending_reason: + employee.sudo().write({'x_fclk_pending_reason': False}) + # Log clock-in self._log_activity( employee, 'clock_in', @@ -405,9 +377,6 @@ class FusionClockAPI(http.Controller): 'x_fclk_out_distance': round(distance, 1), }) - # Apply break deduction - self._apply_break_deduction(attendance, employee) - # Check for early clock-out penalty if not is_scheduled_off: _, scheduled_out = self._get_scheduled_times(employee, today) @@ -578,7 +547,10 @@ class FusionClockAPI(http.Controller): 'is_checked_in': is_checked_in, 'employee_name': employee.name, 'enable_clock': employee.x_fclk_enable_clock, - 'pending_reason': employee.x_fclk_pending_reason, + # Only nag when there is genuinely something to explain: a flag set, + # the employee NOT currently on the clock, and not attendance-exempt. + 'pending_reason': (employee.x_fclk_pending_reason and not is_checked_in + and not employee._fclk_is_attendance_exempt()), 'ontime_streak': employee.x_fclk_ontime_streak, } local_today = get_local_today(request.env, employee) @@ -764,7 +736,8 @@ class FusionClockAPI(http.Controller): 'is_checked_in': is_checked_in, 'check_in': check_in, 'location_name': location_name, - 'pending_reason': employee.x_fclk_pending_reason, + 'pending_reason': (employee.x_fclk_pending_reason and not is_checked_in + and not employee._fclk_is_attendance_exempt()), 'today_hours': today_hours, 'week_hours': week_hours, 'overtime_week': round(employee.x_fclk_overtime_this_week or 0, 2), diff --git a/fusion_clock/controllers/clock_kiosk.py b/fusion_clock/controllers/clock_kiosk.py index 9b0441f0..f34eba2e 100644 --- a/fusion_clock/controllers/clock_kiosk.py +++ b/fusion_clock/controllers/clock_kiosk.py @@ -137,6 +137,9 @@ class FusionClockKiosk(http.Controller): 'x_fclk_clock_source': 'kiosk', 'x_fclk_check_in_photo': photo_bytes if photo_bytes else False, }) + # Back on the clock -> clear any stale missed-clock-out flag. + if employee.x_fclk_pending_reason: + employee.sudo().write({'x_fclk_pending_reason': False}) api._log_activity(employee, 'clock_in', f"Kiosk clock-in at {location.name}", attendance=attendance, location=location, latitude=0, longitude=0, distance=0, source='kiosk') @@ -155,7 +158,6 @@ class FusionClockKiosk(http.Controller): 'x_fclk_out_distance': 0.0, 'x_fclk_check_out_photo': photo_bytes if photo_bytes else False, }) - api._apply_break_deduction(attendance, employee) if not is_scheduled_off: _, scheduled_out = api._get_scheduled_times(employee, today) api._check_and_create_penalty(employee, attendance, 'early_out', scheduled_out, now) diff --git a/fusion_clock/controllers/clock_nfc_kiosk.py b/fusion_clock/controllers/clock_nfc_kiosk.py index 96fac51b..58381d0a 100644 --- a/fusion_clock/controllers/clock_nfc_kiosk.py +++ b/fusion_clock/controllers/clock_nfc_kiosk.py @@ -345,6 +345,9 @@ class FusionClockNfcKiosk(http.Controller): 'x_fclk_clock_source': 'nfc_kiosk', 'x_fclk_check_in_photo': photo_bytes if photo_bytes else False, }) + # Back on the clock -> clear any stale missed-clock-out flag. + if employee.x_fclk_pending_reason: + employee.sudo().write({'x_fclk_pending_reason': False}) api._log_activity( employee, 'clock_in', f"NFC kiosk clock-in at {location.name}", @@ -378,7 +381,6 @@ class FusionClockNfcKiosk(http.Controller): 'x_fclk_out_distance': 0.0, 'x_fclk_check_out_photo': photo_bytes if photo_bytes else False, }) - api._apply_break_deduction(attendance, employee) if not is_scheduled_off: _, scheduled_out = api._get_scheduled_times(employee, today) api._check_and_create_penalty(employee, attendance, 'early_out', scheduled_out, now) diff --git a/fusion_clock/data/clock_break_rule_data.xml b/fusion_clock/data/clock_break_rule_data.xml new file mode 100644 index 00000000..fcbc3a3c --- /dev/null +++ b/fusion_clock/data/clock_break_rule_data.xml @@ -0,0 +1,13 @@ + + + + Ontario + + + + 5.0 + 30.0 + 10.0 + 30.0 + + diff --git a/fusion_clock/data/ir_config_parameter_data.xml b/fusion_clock/data/ir_config_parameter_data.xml index f024abec..d946ac5d 100644 --- a/fusion_clock/data/ir_config_parameter_data.xml +++ b/fusion_clock/data/ir_config_parameter_data.xml @@ -20,10 +20,6 @@ fusion_clock.auto_deduct_break True
- - fusion_clock.break_threshold_hours - 4.0 - diff --git a/fusion_clock/migrations/19.0.4.1.0/post-migrate.py b/fusion_clock/migrations/19.0.4.1.0/post-migrate.py new file mode 100644 index 00000000..1c62c5ba --- /dev/null +++ b/fusion_clock/migrations/19.0.4.1.0/post-migrate.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from odoo import api, SUPERUSER_ID + + +def migrate(cr, version): + """Retire the single-threshold break param (superseded by per-rule + break1_after_hours), and force-recompute the now-computed break field so + existing closed attendances reflect the province rule + their penalties.""" + cr.execute( + "DELETE FROM ir_config_parameter WHERE key = %s", + ('fusion_clock.break_threshold_hours',), + ) + env = api.Environment(cr, SUPERUSER_ID, {}) + Attendance = env['hr.attendance'] + closed = Attendance.search([('check_out', '!=', False)]) + if closed: + # Recompute the break AND everything that derives from it, in dependency + # order (break -> net hours -> overtime). Recomputing break alone leaves + # stored x_fclk_net_hours / x_fclk_overtime_hours stale, because + # add_to_compute + flush of one field does not cascade to its dependents. + for fname in ('x_fclk_break_minutes', 'x_fclk_net_hours', 'x_fclk_overtime_hours'): + env.add_to_compute(Attendance._fields[fname], closed) + closed.flush_recordset([fname]) diff --git a/fusion_clock/migrations/19.0.4.2.0/post-migrate.py b/fusion_clock/migrations/19.0.4.2.0/post-migrate.py new file mode 100644 index 00000000..970cc695 --- /dev/null +++ b/fusion_clock/migrations/19.0.4.2.0/post-migrate.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) +"""One-time reset of stale missed-clock-out flags on upgrade to 19.0.4.1.0. + +Background: x_fclk_pending_reason was set by the absence + auto-clock-out crons +but only cleared by the systray reason dialog -- never by the kiosk / NFC clock +paths that staff actually use. During the kiosk rollout the absence cron flagged +essentially the whole company (hundreds of "absent" logs), and those flags then +nagged everyone forever, even while currently clocked in. + +This release clears the flag on every clock-in (all paths), stops absences from +setting it at all, and exempts owners. The flags already on record are stale +artifacts of the rollout, so wipe them once here; correct ones re-appear only +for a genuine forgotten clock-out from now on. +""" + + +def migrate(cr, version): + if not version: + return + cr.execute( + "UPDATE hr_employee SET x_fclk_pending_reason = false " + "WHERE x_fclk_pending_reason = true" + ) diff --git a/fusion_clock/models/__init__.py b/fusion_clock/models/__init__.py index fa59a31a..c51939ad 100644 --- a/fusion_clock/models/__init__.py +++ b/fusion_clock/models/__init__.py @@ -5,6 +5,7 @@ from . import clock_location from . import hr_attendance from . import hr_employee from . import clock_penalty +from . import clock_break_rule from . import clock_report from . import res_config_settings from . import clock_activity_log diff --git a/fusion_clock/models/clock_break_rule.py b/fusion_clock/models/clock_break_rule.py new file mode 100644 index 00000000..c812053c --- /dev/null +++ b/fusion_clock/models/clock_break_rule.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# Copyright 2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError + + +class FusionClockBreakRule(models.Model): + _name = 'fusion.clock.break.rule' + _description = 'Statutory Break Rule' + _order = 'sequence, name' + + name = fields.Char(string='Name', required=True) + country_id = fields.Many2one('res.country', string='Country') + state_id = fields.Many2one( + 'res.country.state', + string='Province / State', + help="Employees whose company is in this province use this rule.", + ) + is_default = fields.Boolean( + string='Default Rule', + help="Used when an employee's company province matches no other rule. " + "Only one active rule may be the default.", + ) + break1_after_hours = fields.Float( + string='First Break After (h)', default=5.0, + help="Worked hours at or above this trigger the first unpaid break.", + ) + break1_minutes = fields.Float( + string='First Break (min)', default=30.0, + help="Length of the first unpaid break. 0 disables it.", + ) + break2_after_hours = fields.Float( + string='Second Break After (h)', default=10.0, + help="Worked hours at or above this add the second unpaid break.", + ) + break2_minutes = fields.Float( + string='Second Break (min)', default=30.0, + help="Length of the second unpaid break. 0 disables it.", + ) + sequence = fields.Integer(default=10) + active = fields.Boolean(default=True) + + def break_minutes_for(self, worked_hours): + """Total statutory unpaid break (minutes) for the given worked hours. + + Tiers are inclusive (``>=``): a break applies when worked hours are + equal to or greater than the threshold. The second tier adds on top of + the first. + """ + self.ensure_one() + worked = worked_hours or 0.0 + total = 0.0 + if self.break1_minutes and worked >= self.break1_after_hours: + total += self.break1_minutes + if self.break2_minutes and worked >= self.break2_after_hours: + total += self.break2_minutes + return total + + @api.constrains('break1_after_hours', 'break1_minutes', + 'break2_after_hours', 'break2_minutes') + def _check_tiers(self): + for rule in self: + if min(rule.break1_after_hours, rule.break1_minutes, + rule.break2_after_hours, rule.break2_minutes) < 0: + raise ValidationError(_("Break hours and minutes cannot be negative.")) + if rule.break2_minutes and rule.break2_after_hours <= rule.break1_after_hours: + raise ValidationError(_( + "The second break threshold (%(n2)s h) must be greater than " + "the first (%(n1)s h).", + n2=rule.break2_after_hours, n1=rule.break1_after_hours)) + + @api.constrains('is_default', 'active') + def _check_single_default(self): + for rule in self: + if rule.is_default and rule.active: + dupe = self.search([ + ('is_default', '=', True), ('active', '=', True), + ('id', '!=', rule.id), + ], limit=1) + if dupe: + raise ValidationError(_( + "Only one active break rule can be the default " + "(currently: %s).", dupe.name)) diff --git a/fusion_clock/models/hr_attendance.py b/fusion_clock/models/hr_attendance.py index 95a8c3fa..bb6204cb 100644 --- a/fusion_clock/models/hr_attendance.py +++ b/fusion_clock/models/hr_attendance.py @@ -161,9 +161,12 @@ class HrAttendance(models.Model): ) x_fclk_break_minutes = fields.Float( string='Break (min)', - default=0.0, + compute='_compute_fclk_break_minutes', + store=True, tracking=True, - help="Break duration in minutes to deduct from worked hours.", + help="Unpaid break deducted from worked hours: statutory break (per the " + "employee's province rule, from actual hours worked) plus any penalty " + "minutes. Computed automatically on every save.", ) x_fclk_net_hours = fields.Float( string='Net Hours', @@ -258,6 +261,20 @@ class HrAttendance(models.Model): def _search_fclk_in_next_period(self, operator, value): return self._fclk_period_search('next', operator, value) + @api.depends('worked_hours', 'check_out', + 'x_fclk_penalty_ids.penalty_minutes', 'employee_id') + def _compute_fclk_break_minutes(self): + ICP = self.env['ir.config_parameter'].sudo() + auto = ICP.get_param('fusion_clock.auto_deduct_break', 'True') == 'True' + for att in self: + statutory = 0.0 + if auto and att.check_out and att.employee_id: + rule = att.employee_id._get_fclk_break_rule() + if rule: + statutory = rule.break_minutes_for(att.worked_hours or 0.0) + penalties = sum(att.x_fclk_penalty_ids.mapped('penalty_minutes')) + att.x_fclk_break_minutes = statutory + penalties + @api.depends('worked_hours', 'x_fclk_break_minutes') def _compute_net_hours(self): for att in self: @@ -314,7 +331,6 @@ class HrAttendance(models.Model): max_shift = float(ICP.get_param('fusion_clock.max_shift_hours', '16.0')) office_user_id = int(ICP.get_param('fusion_clock.office_user_id', '0')) - threshold = float(ICP.get_param('fusion_clock.break_threshold_hours', '4.0')) now = fields.Datetime.now() open_attendances = self.sudo().search([('check_out', '=', False)]) @@ -329,8 +345,9 @@ class HrAttendance(models.Model): continue employee = att.employee_id - emp_tz = pytz.timezone(employee.tz or self.env.company.tz or 'UTC') - check_in_date = pytz.UTC.localize(check_in).astimezone(emp_tz).date() + # Owners / attendance-exempt employees are never auto-clocked-out or nagged. + if employee._fclk_is_attendance_exempt(): + continue clock_out_time = effective_deadline try: with self.env.cr.savepoint(): @@ -340,10 +357,6 @@ class HrAttendance(models.Model): 'x_fclk_grace_used': True, 'x_fclk_clock_source': 'auto', }) - if (att.worked_hours or 0) >= threshold: - att.sudo().write( - {'x_fclk_break_minutes': employee._get_fclk_break_minutes(check_in_date)} - ) att.sudo().message_post( body=f"Auto clocked out at {_fclk_utc_to_local_str(clock_out_time, employee, '%H:%M')} " f"(max-shift cap reached). Net hours: {att.x_fclk_net_hours:.1f}h", @@ -446,6 +459,9 @@ class HrAttendance(models.Model): for emp in employees: try: with self.env.cr.savepoint(): + # Owners / attendance-exempt employees are never flagged absent. + if emp._fclk_is_attendance_exempt(): + continue yesterday = get_local_today(self.env, emp) - timedelta(days=1) # Only days the employee was actually scheduled to work @@ -488,7 +504,11 @@ class HrAttendance(models.Model): 'source': 'system', }) - emp.sudo().write({'x_fclk_pending_reason': True}) + # NOTE: an absence does NOT set x_fclk_pending_reason. That flag + # drives the "explain your missed clock-OUT (departure time)" + # dialog, which is meaningless for a day with no attendance and + # caused a persistent false nag. The absence is logged + the + # office is notified on excess; that is the absence remedy. month_start = yesterday.replace(day=1) month_boundary_start, _ = get_local_day_boundaries(self.env, month_start, emp) @@ -536,6 +556,9 @@ class HrAttendance(models.Model): for emp in employees: try: with self.env.cr.savepoint(): + # Owners / attendance-exempt employees are never reminded. + if emp._fclk_is_attendance_exempt(): + continue today = get_local_today(self.env, emp) if not emp._get_fclk_day_plan(today).get('scheduled'): continue @@ -600,6 +623,9 @@ class HrAttendance(models.Model): company_name = company.name or '' for emp in employees: + # Owners / attendance-exempt employees get no weekly summary. + if emp._fclk_is_attendance_exempt(): + continue if not emp.work_email: continue diff --git a/fusion_clock/models/hr_employee.py b/fusion_clock/models/hr_employee.py index f8a73e0e..1b840320 100644 --- a/fusion_clock/models/hr_employee.py +++ b/fusion_clock/models/hr_employee.py @@ -40,6 +40,18 @@ class HrEmployee(models.Model): help="If set, employee must explain a missed clock-out before clocking in again.", ) + # Attendance exemption (owners / anyone who works but is not "on the clock"). + # Exempt employees are skipped by absence detection, auto-clock-out and + # reminders, and never see the missed-clock-out reason dialog. + x_fclk_exempt_from_attendance = fields.Boolean( + string='Exempt from Attendance Tracking', + default=False, + help="If set, this employee is never flagged absent, auto-clocked-out, " + "reminded, or asked to explain a missed clock-out. Use for owners " + "and others who work but are not on the clock. The Fusion Clock " + "'Owner' role grants this automatically.", + ) + # Kiosk PIN x_fclk_kiosk_pin = fields.Char( string='Kiosk PIN', @@ -122,6 +134,19 @@ class HrEmployee(models.Model): help="Tracks the last date a reminder was sent to avoid duplicates.", ) + def _fclk_is_attendance_exempt(self): + """True when this employee is exempt from attendance automation. + + Exempt = the per-employee checkbox is set, OR the linked user holds the + Fusion Clock 'Owner' role. Exempt employees are never flagged absent, + auto-clocked-out, reminded, or shown the missed-clock-out reason dialog. + """ + self.ensure_one() + if self.x_fclk_exempt_from_attendance: + return True + user = self.user_id + return bool(user) and user.has_group('fusion_clock.group_fusion_clock_owner') + def _get_fclk_schedule_for_date(self, date): """Return this employee's dated Fusion Clock schedule for a local date.""" self.ensure_one() @@ -215,6 +240,23 @@ class HrEmployee(models.Model): ) ) + def _get_fclk_break_rule(self): + """Return the statutory break rule for this employee. + + Resolution: company's province -> matching rule; else the global default + rule; else an empty recordset (caller treats as zero break). Read via + sudo so the portal net-hours compute can resolve it without a direct ACL. + """ + self.ensure_one() + Rule = self.env['fusion.clock.break.rule'].sudo() + rule = Rule.browse() + state = self.company_id.state_id + if state: + rule = Rule.search([('state_id', '=', state.id)], limit=1) + if not rule: + rule = Rule.search([('is_default', '=', True)], limit=1) + return rule + def _get_fclk_scheduled_times(self, date): """Return (scheduled_in_dt, scheduled_out_dt) for a given date. diff --git a/fusion_clock/models/res_config_settings.py b/fusion_clock/models/res_config_settings.py index 9da8a313..d00c53e3 100644 --- a/fusion_clock/models/res_config_settings.py +++ b/fusion_clock/models/res_config_settings.py @@ -36,12 +36,6 @@ class ResConfigSettings(models.TransientModel): default=30.0, help="Default unpaid break duration in minutes.", ) - fclk_break_threshold_hours = fields.Float( - string='Break Threshold (hours)', - config_parameter='fusion_clock.break_threshold_hours', - default=4.0, - help="Only deduct break if shift is longer than this many hours.", - ) # ── Attendance Rules ─────────────────────────────────────────────── fclk_enable_auto_clockout = fields.Boolean( diff --git a/fusion_clock/security/ir.model.access.csv b/fusion_clock/security/ir.model.access.csv index f36b307c..644cecff 100644 --- a/fusion_clock/security/ir.model.access.csv +++ b/fusion_clock/security/ir.model.access.csv @@ -27,3 +27,4 @@ access_hr_employee_portal_clock,hr.employee.portal.clock,hr.model_hr_employee,ba access_fusion_clock_shift_portal,fusion.clock.shift.portal,model_fusion_clock_shift,base.group_portal,1,0,0,0 access_fusion_clock_schedule_portal,fusion.clock.schedule.portal,model_fusion_clock_schedule,base.group_portal,1,0,0,0 access_fusion_clock_nfc_enrollment_wizard_manager,fusion.clock.nfc.enrollment.wizard.manager,model_fusion_clock_nfc_enrollment_wizard,group_fusion_clock_manager,1,1,1,1 +access_fusion_clock_break_rule_manager,fusion.clock.break.rule.manager,model_fusion_clock_break_rule,group_fusion_clock_manager,1,1,1,1 diff --git a/fusion_clock/security/security.xml b/fusion_clock/security/security.xml index 4dfc9647..a3101a57 100644 --- a/fusion_clock/security/security.xml +++ b/fusion_clock/security/security.xml @@ -49,6 +49,18 @@ Can manage locations, view all attendance, generate reports + + + Owner + + + Full Clock management; exempt from attendance tracking, reminders and missed-clock alerts. + + +