feat(portal): sidebar shell template + portal.portal_layout inherit

fp_portal_shell wraps every /my/* page (FP custom + Odoo default)
in a sticky-sidebar shell with no per-template edits. Sidebar markup
is a separate fp_portal_sidebar template that reads fp_sidebar_items
+ fp_partner_display_name from the page context.

Approach D ($0 re-emit) used instead of plan's unbalanced-xpath approach:
position="replace" on //div[@id='wrap'] with $0 inside <main> causes
Odoo's Python inheritance engine to re-emit the original #wrap node
(verified in tools/template_inheritance.py lines 162-169). Every
xpath block is well-formed XML.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-17 13:38:25 -04:00
parent df74d702af
commit d17cadabf0
2 changed files with 107 additions and 0 deletions

View File

@@ -55,6 +55,7 @@ Copyright (c) 2026 Nexa Systems Inc. All rights reserved.
'security/fp_portal_security.xml',
'security/ir.model.access.csv',
'data/fp_sequence_data.xml',
'views/fp_portal_shell.xml',
'views/fp_portal_macros.xml',
'views/fp_quote_request_views.xml',
'views/fp_portal_dashboard.xml',