diff --git a/fusion_plating/fusion_plating_shopfloor/__manifest__.py b/fusion_plating/fusion_plating_shopfloor/__manifest__.py index b59f4089..4f9f596a 100644 --- a/fusion_plating/fusion_plating_shopfloor/__manifest__.py +++ b/fusion_plating/fusion_plating_shopfloor/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating — Shop Floor', - 'version': '19.0.25.2.0', + 'version': '19.0.25.2.1', 'category': 'Manufacturing/Plating', 'summary': 'Shop-floor tablet stations, QR scanning, bake window enforcer, ' 'first-piece inspection gates.', diff --git a/fusion_plating/fusion_plating_shopfloor/static/src/js/process_tree.js b/fusion_plating/fusion_plating_shopfloor/static/src/js/process_tree.js index 75173b8b..f7b3c2d3 100644 --- a/fusion_plating/fusion_plating_shopfloor/static/src/js/process_tree.js +++ b/fusion_plating/fusion_plating_shopfloor/static/src/js/process_tree.js @@ -131,6 +131,19 @@ export class ProcessTree extends Component { } onBack() { + // Try action.restore() first — that pops the Process Tree + // off the breadcrumb stack and returns the user to the WO + // (or Step) they came from. Without this, doAction pushes a + // NEW act_window each time and the breadcrumb keeps growing + // (WO → Tree → WO → Tree → ...). + try { + this.action.restore(); + return; + } catch (e) { + // No parent in the stack (user opened Process Tree by + // URL or as the first action). Fall through to explicit + // navigation. + } const stepId = this.backStepId; if (stepId) { this.action.doAction({ diff --git a/fusion_plating/fusion_plating_shopfloor/static/src/xml/process_tree.xml b/fusion_plating/fusion_plating_shopfloor/static/src/xml/process_tree.xml index d5420da8..60243e92 100644 --- a/fusion_plating/fusion_plating_shopfloor/static/src/xml/process_tree.xml +++ b/fusion_plating/fusion_plating_shopfloor/static/src/xml/process_tree.xml @@ -119,14 +119,14 @@