Portal users have read access to fp.portal.job but NOT to fp.job. The new job-card macro traverses job.x_fc_job_id -> fp.job to surface part info, sale_order, ship-to address — that raised AccessError for real customers (admins were fine due to inherited groups). Adding .sudo() to the three Job queries in home(), portal_my_jobs(), and the certifications panel mirror lookup. Domain still filters to the customer's commercial partner tree, so sudo doesn't widen visibility — it just lets the template walk past the portal-job boundary to the privileged backend models. Same pattern is already used in the same file for sale.order, account.move, and stock.picking queries. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fusion Plating — Customer Portal
Part of the Fusion Plating product family by Nexa Systems Inc.
Customer-facing portal that extends fusion_plating with a self-service area
inside Odoo's standard portal layout. Customers can:
- Submit Requests for Quote (RFQ) with drawings, target dates, and notes
- Track production jobs through Received → In Progress → QC → Ready → Shipped → Complete
- Download Certificates of Conformance (CoC) and packing lists
- Reference shipment tracking numbers and invoice references
Models
| Model | Purpose |
|---|---|
fusion.plating.quote.request |
Customer-submitted RFQ |
fusion.plating.portal.job |
Lightweight portal-facing job summary |
res.partner (extended) |
Adds portal-enabled flag and counts |
Routes
| Route | Purpose |
|---|---|
/my/quote_requests |
List quote requests |
/my/quote_requests/<id> |
RFQ detail |
/my/quote_requests/new |
New RFQ form |
/my/quote_requests/submit |
RFQ form submission |
/my/jobs |
List jobs |
/my/jobs/<id> |
Job detail |
/my/jobs/<id>/coc |
Download CoC PDF |
Conventions
- New
res.partnerfields prefixedx_fc_*. - All portal pages extend
portal.portal_layout. - SCSS theme-aware: uses Bootstrap CSS variables only, no hex values.
- Routes are
type='http'(not the deprecatedtype='json').
License
OPL-1 (Odoo Proprietary License v1.0). Copyright 2026 Nexa Systems Inc.