fix(portal): consistent breadcrumb position + history + column height parity
Three coordinated portal-chrome fixes:
1. Drop `breadcrumbs_searchbar=True` from the four list templates
(quote_requests, jobs, deliveries, certifications). They were
suppressing Odoo's outer breadcrumb container, so the breadcrumb
rendered inside portal.portal_searchbar in the right column on
those pages. With the flag off, the outer container fires on
every /my/* page (consistent with the dashboard, configurator,
and detail pages). The portal_searchbar's else-branch now renders
the page title in a Bootstrap navbar — the title still shows,
just no longer doubled up as breadcrumb chrome.
2. Breadcrumb history pass in fp_portal_breadcrumbs.xml:
- fp_jobs / fp_portal_job: rename label from "Parts Portal" to
"Work Orders" so the breadcrumb matches the sidebar item.
- fp_purchase_orders / fp_invoices: drop the dead stanzas. Both
page_names are unreachable since Task 7 turned those routes
into redirects.
- fp_account_summary: add the missing entry so the new page has
a trail.
3. Drop `align-items: start` on .o_fp_portal_shell and add
min-height: 100% + min-width: 0 on .o_fp_portal_main. The right
column now stretches to match the sidebar's height on short
pages, so layouts look uniform. min-width: 0 lets wide table
children scroll horizontally instead of forcing the grid track
to grow.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,6 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 240px 1fr;
|
grid-template-columns: 240px 1fr;
|
||||||
gap: $fp-space-5;
|
gap: $fp-space-5;
|
||||||
align-items: start;
|
|
||||||
background: $fp-page-bg;
|
background: $fp-page-bg;
|
||||||
min-height: calc(100vh - 80px);
|
min-height: calc(100vh - 80px);
|
||||||
padding: $fp-space-4;
|
padding: $fp-space-4;
|
||||||
@@ -146,3 +145,14 @@
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.o_fp_portal_main {
|
||||||
|
// Stretches with the grid row so the right column matches the
|
||||||
|
// sidebar's height on short pages (empty list states, statements
|
||||||
|
// tab, etc.) — uniform visual rhythm.
|
||||||
|
min-height: 100%;
|
||||||
|
// Bootstrap tables can grow wider than the grid track without this;
|
||||||
|
// min-width: 0 lets the flex/grid child shrink and lets overflow-x
|
||||||
|
// on inner .table-responsive containers do their job on Safari.
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -62,13 +62,13 @@
|
|||||||
<li t-if="page_name == 'fp_jobs'"
|
<li t-if="page_name == 'fp_jobs'"
|
||||||
class="breadcrumb-item active"
|
class="breadcrumb-item active"
|
||||||
aria-current="page">
|
aria-current="page">
|
||||||
Parts Portal
|
Work Orders
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- Job detail -->
|
<!-- Job detail -->
|
||||||
<li t-if="page_name == 'fp_portal_job'"
|
<li t-if="page_name == 'fp_portal_job'"
|
||||||
class="breadcrumb-item">
|
class="breadcrumb-item">
|
||||||
<a href="/my/jobs">Parts Portal</a>
|
<a href="/my/jobs">Work Orders</a>
|
||||||
</li>
|
</li>
|
||||||
<li t-if="page_name == 'fp_portal_job'"
|
<li t-if="page_name == 'fp_portal_job'"
|
||||||
class="breadcrumb-item active"
|
class="breadcrumb-item active"
|
||||||
@@ -76,18 +76,11 @@
|
|||||||
<span t-out="job.name"/>
|
<span t-out="job.name"/>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- Purchase Orders -->
|
<!-- Account Summary -->
|
||||||
<li t-if="page_name == 'fp_purchase_orders'"
|
<li t-if="page_name == 'fp_account_summary'"
|
||||||
class="breadcrumb-item active"
|
class="breadcrumb-item active"
|
||||||
aria-current="page">
|
aria-current="page">
|
||||||
Purchase Orders
|
Account Summary
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Invoices -->
|
|
||||||
<li t-if="page_name == 'fp_invoices'"
|
|
||||||
class="breadcrumb-item active"
|
|
||||||
aria-current="page">
|
|
||||||
Invoices
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- Deliveries / Packing Slips -->
|
<!-- Deliveries / Packing Slips -->
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
<!-- ================================================================== -->
|
<!-- ================================================================== -->
|
||||||
<template id="portal_my_quote_requests" name="My Quote Requests">
|
<template id="portal_my_quote_requests" name="My Quote Requests">
|
||||||
<t t-call="portal.portal_layout">
|
<t t-call="portal.portal_layout">
|
||||||
<t t-set="breadcrumbs_searchbar" t-value="True"/>
|
|
||||||
<t t-call="portal.portal_searchbar">
|
<t t-call="portal.portal_searchbar">
|
||||||
<t t-set="title">Quote Requests</t>
|
<t t-set="title">Quote Requests</t>
|
||||||
</t>
|
</t>
|
||||||
@@ -422,7 +421,6 @@
|
|||||||
<!-- ================================================================== -->
|
<!-- ================================================================== -->
|
||||||
<template id="portal_my_jobs" name="My Work Orders">
|
<template id="portal_my_jobs" name="My Work Orders">
|
||||||
<t t-call="portal.portal_layout">
|
<t t-call="portal.portal_layout">
|
||||||
<t t-set="breadcrumbs_searchbar" t-value="True"/>
|
|
||||||
<t t-call="portal.portal_searchbar">
|
<t t-call="portal.portal_searchbar">
|
||||||
<t t-set="title">Work Orders</t>
|
<t t-set="title">Work Orders</t>
|
||||||
</t>
|
</t>
|
||||||
@@ -580,7 +578,6 @@
|
|||||||
<!-- ================================================================== -->
|
<!-- ================================================================== -->
|
||||||
<template id="portal_my_deliveries" name="My Deliveries">
|
<template id="portal_my_deliveries" name="My Deliveries">
|
||||||
<t t-call="portal.portal_layout">
|
<t t-call="portal.portal_layout">
|
||||||
<t t-set="breadcrumbs_searchbar" t-value="True"/>
|
|
||||||
<t t-call="portal.portal_searchbar">
|
<t t-call="portal.portal_searchbar">
|
||||||
<t t-set="title">Packing Slips / Deliveries</t>
|
<t t-set="title">Packing Slips / Deliveries</t>
|
||||||
</t>
|
</t>
|
||||||
@@ -622,7 +619,6 @@
|
|||||||
<!-- ================================================================== -->
|
<!-- ================================================================== -->
|
||||||
<template id="portal_my_certifications" name="My Certifications">
|
<template id="portal_my_certifications" name="My Certifications">
|
||||||
<t t-call="portal.portal_layout">
|
<t t-call="portal.portal_layout">
|
||||||
<t t-set="breadcrumbs_searchbar" t-value="True"/>
|
|
||||||
<t t-call="portal.portal_searchbar">
|
<t t-call="portal.portal_searchbar">
|
||||||
<t t-set="title">Certifications & Quality</t>
|
<t t-set="title">Certifications & Quality</t>
|
||||||
</t>
|
</t>
|
||||||
|
|||||||
Reference in New Issue
Block a user