fix(portal): sidebar values + Purchase Order naming on /my/orders detail

1. Odoo's portal_order_page route calls _get_page_view_values which
   doesn't touch _prepare_portal_layout_values, so our sidebar
   context (fp_sidebar_items, fp_partner_display_name) was missing
   on every Odoo detail page (SO, invoice, delivery, quote). Override
   _get_page_view_values to setdefault our two keys into the values
   dict — non-clobbering, covers every detail route.

2. Rename "Sales Order(s)" / "Your Orders" to "Purchase Order(s)" on
   the customer portal so the wording matches the sidebar item and
   the customer's perspective (they purchase from us). Inherits in
   fp_sale_order_portal.xml replace the relevant text nodes in
   sale.portal_my_home_menu_sale / sale.portal_my_orders /
   sale.sale_order_portal_content.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-18 00:22:36 -04:00
parent ab7ff3eea5
commit 4e54ecc32f
2 changed files with 109 additions and 0 deletions

View File

@@ -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)
# ==========================================================================