From 3a18934b83aa02d6ee6d0677a095b3d28e530ff8 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 6 Dec 2025 20:20:39 +1100 Subject: [PATCH] Obvserve default values for part forms (#10964) - Closes https://github.com/inventree/InvenTree/issues/10909 - Use global setting values as defaults --- src/frontend/src/forms/PartForms.tsx | 45 +++++++++++++++++++++------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/frontend/src/forms/PartForms.tsx b/src/frontend/src/forms/PartForms.tsx index 61c14a0103..90f03bf78c 100644 --- a/src/frontend/src/forms/PartForms.tsx +++ b/src/frontend/src/forms/PartForms.tsx @@ -16,8 +16,12 @@ export function usePartFields({ }): ApiFormFieldSet { const settings = useGlobalSettingsState(); - const [virtual, setVirtual] = useState(false); - const [purchaseable, setPurchaseable] = useState(false); + const globalSettings = useGlobalSettingsState(); + + const [virtual, setVirtual] = useState(undefined); + const [purchaseable, setPurchaseable] = useState( + undefined + ); return useMemo(() => { const fields: ApiFormFieldSet = { @@ -56,19 +60,33 @@ export function usePartFields({ is_active: true } }, - component: {}, - assembly: {}, - is_template: {}, - testable: {}, - trackable: {}, + component: { + default: globalSettings.isSet('PART_COMPONENT') + }, + assembly: { + default: globalSettings.isSet('PART_ASSEMBLY') + }, + is_template: { + default: globalSettings.isSet('PART_TEMPLATE') + }, + testable: { + default: false + }, + trackable: { + default: globalSettings.isSet('PART_TRACKABLE') + }, purchaseable: { value: purchaseable, + default: globalSettings.isSet('PART_PURCHASEABLE'), onValueChange: (value: boolean) => { setPurchaseable(value); } }, - salable: {}, + salable: { + default: globalSettings.isSet('PART_SALABLE') + }, virtual: { + default: globalSettings.isSet('PART_VIRTUAL'), value: virtual, onValueChange: (value: boolean) => { setVirtual(value); @@ -89,7 +107,7 @@ export function usePartFields({ if (create) { fields.copy_category_parameters = {}; - if (!virtual) { + if (virtual != false) { fields.initial_stock = { icon: , children: { @@ -172,7 +190,14 @@ export function usePartFields({ } return fields; - }, [virtual, purchaseable, create, duplicatePartInstance, settings]); + }, [ + virtual, + purchaseable, + create, + globalSettings, + duplicatePartInstance, + settings + ]); } /**