From daea1706a2706a0519f54c86499f40df78fd9fcb Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 24 Nov 2025 09:25:15 +0000 Subject: [PATCH] Enable parameters for Company model --- src/backend/InvenTree/company/models.py | 1 + .../src/components/panels/ParametersPanel.tsx | 26 +++++++++++++++++++ .../src/pages/company/CompanyDetail.tsx | 5 ++++ src/frontend/src/pages/part/PartDetail.tsx | 17 ++++-------- 4 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 src/frontend/src/components/panels/ParametersPanel.tsx diff --git a/src/backend/InvenTree/company/models.py b/src/backend/InvenTree/company/models.py index c60e82900c..b4bf796565 100644 --- a/src/backend/InvenTree/company/models.py +++ b/src/backend/InvenTree/company/models.py @@ -77,6 +77,7 @@ class CompanyReportContext(report.mixins.BaseReportContext): class Company( InvenTree.models.InvenTreeAttachmentMixin, + InvenTree.models.InvenTreeParameterMixin, InvenTree.models.InvenTreeNotesMixin, report.mixins.InvenTreeReportMixin, InvenTree.models.InvenTreeImageMixin, diff --git a/src/frontend/src/components/panels/ParametersPanel.tsx b/src/frontend/src/components/panels/ParametersPanel.tsx new file mode 100644 index 0000000000..5cc5782c84 --- /dev/null +++ b/src/frontend/src/components/panels/ParametersPanel.tsx @@ -0,0 +1,26 @@ +import type { ModelType } from '@lib/enums/ModelType'; +import { t } from '@lingui/core/macro'; +import { Skeleton } from '@mantine/core'; +import { IconList } from '@tabler/icons-react'; +import { ParameterTable } from '../../tables/general/ParameterTable'; +import type { PanelType } from './Panel'; + +export default function ParametersPanel({ + model_type, + model_id +}: { + model_type: ModelType; + model_id: number | undefined; +}): PanelType { + return { + name: 'parameters', + label: t`Parameters`, + icon: , + content: + model_type && model_id ? ( + + ) : ( + + ) + }; +} diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index 228cdc2940..1c1383841d 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -39,6 +39,7 @@ import AttachmentPanel from '../../components/panels/AttachmentPanel'; import NotesPanel from '../../components/panels/NotesPanel'; import type { PanelType } from '../../components/panels/Panel'; import { PanelGroup } from '../../components/panels/PanelGroup'; +import ParametersPanel from '../../components/panels/ParametersPanel'; import { companyFields } from '../../forms/CompanyForms'; import { useDeleteApiFormModal, @@ -265,6 +266,10 @@ export default function CompanyDetail(props: Readonly) { icon: , content: company?.pk && }, + ParametersPanel({ + model_type: ModelType.company, + model_id: company?.pk + }), AttachmentPanel({ model_type: ModelType.company, model_id: company.pk diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 1e26b5a74c..80354a4cfb 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -22,7 +22,6 @@ import { IconExclamationCircle, IconInfoCircle, IconLayersLinked, - IconList, IconListCheck, IconListTree, IconLock, @@ -74,6 +73,7 @@ import AttachmentPanel from '../../components/panels/AttachmentPanel'; import NotesPanel from '../../components/panels/NotesPanel'; import type { PanelType } from '../../components/panels/Panel'; import { PanelGroup } from '../../components/panels/PanelGroup'; +import ParametersPanel from '../../components/panels/ParametersPanel'; import { RenderPart } from '../../components/render/Part'; import { RenderUser } from '../../components/render/User'; import OrderPartsWizard from '../../components/wizards/OrderPartsWizard'; @@ -97,7 +97,6 @@ import { useUserState } from '../../states/UserState'; import { BomTable } from '../../tables/bom/BomTable'; import { UsedInTable } from '../../tables/bom/UsedInTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; -import { ParameterTable } from '../../tables/general/ParameterTable'; import PartPurchaseOrdersTable from '../../tables/part/PartPurchaseOrdersTable'; import PartTestResultTable from '../../tables/part/PartTestResultTable'; import PartTestTemplateTable from '../../tables/part/PartTestTemplateTable'; @@ -788,16 +787,10 @@ export default function PartDetail() { icon: , content: detailsPanel }, - { - name: 'parameters', - label: t`Parameters`, - icon: , - content: part?.pk ? ( - - ) : ( - - ) - }, + ParametersPanel({ + model_type: ModelType.part, + model_id: part?.pk + }), { name: 'stock', label: t`Stock`,