The FP sale report template (report_fp_sale_portrait) walks into fp.part.catalog records, which portal users don't have ACL on - they'd hit 'You are not allowed to access Fusion Plating - Part Catalog' when rendering. Standard /report/pdf/ route runs as the authed user, so the template traversal fails. Mirror the portal_download_coc pattern: gate on _document_check_access for the portal job (customer can only ever reach their own data), then render the report via ir.actions.report.sudo()._render_qweb_pdf so the QWeb template traversal bypasses ACL. Return the PDF as an attachment with a friendly filename. Updates _fp_group_documents to point the From-You SO Confirmation link at this new route instead of /report/pdf/ directly. 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.