feat(portal): customer PO/uploads + WO Detail PDF + hover-underline fix

1. From-You group now surfaces ANY ir.attachment attached to the
   linked sale.order (sudo'd) so customer-uploaded PO + drawings
   appear automatically. Each shows file name + upload date + size,
   downloads via /web/content/<id>?download=true. Falls through to
   the Sales Order Confirmation entry as before.

2. New 'Work Order' document group between Specifications and Quality,
   surfacing the EN Plating WO Detail PDF via new route
   /my/jobs/<id>/wo_detail. Sudo'd render of report_fp_job_wo_detail_
   template so the template can read backend fp.job + recipe nodes.
   Placeholder rendered when there's no linked backend job yet.

3. Hover underline gone: Bootstrap Reboot puts
   text-decoration: underline on a:hover for every anchor, which read
   as buggy on our flat chips / pill buttons / dashboard cards. Added
   a catch-all selector list in fp_portal_buttons.scss that pins
   text-decoration: none across hover/focus/active for every brand
   element. Hover signal lives in color + shadow only.

Version bump: 19.0.3.5.0 -> 19.0.3.6.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-17 12:06:41 -04:00
parent 27badff570
commit 6cad69cb86
3 changed files with 123 additions and 7 deletions

View File

@@ -86,3 +86,35 @@
// Size modifiers — match Bootstrap btn-sm / btn-lg sizing
.o_fp_btn_sm { padding: .25rem .5rem; font-size: .875rem; }
.o_fp_btn_lg { padding: .5rem 1rem; font-size: 1.25rem; }
// ============================================================================
// Globally suppress browser-default underline-on-hover for portal
// surfaces. Bootstrap's Reboot puts `a:hover { text-decoration: underline }`
// on every anchor; for our flat-aesthetic chips / cards / pill buttons that
// reads as a buggy visual artifact. Hover signal lives in color + shadow
// instead. Specificity is high enough to win without !important.
// ============================================================================
.o_fp_btn,
.o_fp_btn_primary,
.o_fp_btn_secondary,
.o_fp_btn_ghost,
.o_fp_btn_danger,
.o_fp_btn_mint,
.o_fp_dashboard a,
.o_fp_job_detail a,
.o_fp_job_card,
.o_fp_doc_chip,
.o_fp_doc_row,
.o_fp_panel_view_all,
.o_fp_panel_inline_cta,
.o_fp_kpi_hint,
.o_fp_view_all a,
.o_fp_status_tab,
.o_fp_related_links a {
text-decoration: none;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}