diff --git a/fusion_plating/fusion_plating_portal/controllers/portal.py b/fusion_plating/fusion_plating_portal/controllers/portal.py index 2dd5d95b..81baeddf 100644 --- a/fusion_plating/fusion_plating_portal/controllers/portal.py +++ b/fusion_plating/fusion_plating_portal/controllers/portal.py @@ -196,6 +196,20 @@ class FpCustomerPortal(CustomerPortal): values['fp_partner_display_name'] = commercial.name or partner.name return values + def _get_page_view_values(self, document, access_token, values, session_history, no_breadcrumbs, **kwargs): + # Odoo's detail-page routes (sale order, invoice, delivery, etc.) + # funnel through this helper. It sets up chatter/pager but doesn't + # touch _prepare_portal_layout_values, so our sidebar context wouldn't + # otherwise reach those templates. Inject our keys conservatively via + # setdefault — never overwrite anything the page already set. + values = super()._get_page_view_values( + document, access_token, values, session_history, no_breadcrumbs, **kwargs, + ) + layout = self._prepare_portal_layout_values() + values.setdefault('fp_sidebar_items', layout.get('fp_sidebar_items')) + values.setdefault('fp_partner_display_name', layout.get('fp_partner_display_name')) + return values + # ========================================================================== # Customer-visible stage timeline (detail page) # ========================================================================== diff --git a/fusion_plating/fusion_plating_portal/views/fp_sale_order_portal.xml b/fusion_plating/fusion_plating_portal/views/fp_sale_order_portal.xml index a7846abd..92e9da7d 100644 --- a/fusion_plating/fusion_plating_portal/views/fp_sale_order_portal.xml +++ b/fusion_plating/fusion_plating_portal/views/fp_sale_order_portal.xml @@ -95,4 +95,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +