From 77531c5a67710f4075c906352f114b45ad36bfdb Mon Sep 17 00:00:00 2001 From: clesgow Date: Wed, 8 Mar 2023 14:26:46 +0000 Subject: [PATCH] [IMP] mrp: Restrict shown column on done MO in Overview Product availabilities and their related replenishments are no longer relevant when displaying a completed MO. Therefore, those columns are disabled in the Overview when the the MO is either done or cancelled. Part of task-3217757 Part-of: odoo/odoo#118023 --- .../components/mo_overview/mrp_mo_overview.js | 8 ++++++++ .../components/mo_overview/mrp_mo_overview.xml | 2 +- .../mrp_mo_overview_display_filter.js | 17 +++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.js b/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.js index 537eaa09d9c..6fa89dea526 100644 --- a/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.js +++ b/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.js @@ -21,6 +21,7 @@ export class MoOverview extends Component { this.state = useState({ data: {}, + isDone: false, showOptions: this.getDefaultConfig(), }); @@ -40,6 +41,13 @@ export class MoOverview extends Component { [this.activeId], ); this.state.data = reportValues.data; + this.state.isDone = ['done', 'cancel'].some(doneState => reportValues.data?.summary?.state === doneState); + if (this.state.isDone) { + // Hide Availabilities / Receipts / Status columns when the MO is done. + this.state.showOptions.availabilities = false; + this.state.showOptions.receipts = false; + this.state.showOptions.replenishments = false; + } this.state.showOptions.uom = reportValues.context.show_uom; this.context = reportValues.context; if (reportValues.data?.operations?.summary?.index) { diff --git a/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.xml b/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.xml index 150764ddcd6..ec2070caef4 100644 --- a/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.xml +++ b/addons/mrp/static/src/components/mo_overview/mrp_mo_overview.xml @@ -4,7 +4,7 @@
- + diff --git a/addons/mrp/static/src/components/mo_overview_display_filter/mrp_mo_overview_display_filter.js b/addons/mrp/static/src/components/mo_overview_display_filter/mrp_mo_overview_display_filter.js index 4a7ee18b186..8062a3f2551 100644 --- a/addons/mrp/static/src/components/mo_overview_display_filter/mrp_mo_overview_display_filter.js +++ b/addons/mrp/static/src/components/mo_overview_display_filter/mrp_mo_overview_display_filter.js @@ -3,10 +3,15 @@ import { BomOverviewDisplayFilter } from "../bom_overview_display_filter/mrp_bom export class MoOverviewDisplayFilter extends BomOverviewDisplayFilter { setup() { + if (!this.props.limited) { + this.displayOptions = { + replenishments: this.env._t("Replenishments"), + availabilities: this.env._t("Availabilities"), + receipts: this.env._t("Receipts"), + }; + } this.displayOptions = { - replenishments: this.env._t("Replenishments"), - availabilities: this.env._t("Availabilities"), - receipts: this.env._t("Receipts"), + ...(this.displayOptions || {}), moCosts: this.env._t("MO Costs"), productCosts: this.env._t("Product Costs"), }; @@ -23,7 +28,11 @@ MoOverviewDisplayFilter.props = { receipts: Boolean, moCosts: Boolean, productCosts: Boolean, - } + }, }, changeDisplay: Function, + limited: { type: Boolean, optional: true }, +}; +MoOverviewDisplayFilter.defaultProps = { + limited: false, };