From cd2efc437ca8404fcf34876e530f4a909c0333bd Mon Sep 17 00:00:00 2001 From: van-go <35277477+van-go@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:20:33 -0600 Subject: [PATCH 1/2] Requested changes to Analysis Dataset view --- .../_common/Form/DynamicForm/DynamicForm.jsx | 14 +++++++++----- .../_custom/drp/utils/hooks/useDrpDatasetModals.js | 11 +++++++++-- server/portal/apps/_custom/drp/models.py | 3 ++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx index f7f74f177..0a3f84bd0 100644 --- a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx +++ b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx @@ -23,17 +23,21 @@ const DynamicForm = ({ initialFormFields, onChange }) => { modifiedField ) => { const { dependency } = field; - - const filteredOptions = field.options.filter( - (option) => option.dependentId == values[dependency.name] - ); + console.log(field.options) + const filteredOptions = field.options.filter(option => { + if (option.value === 'other') { + return true; + } + return option.dependentId === values[dependency.name]; + }); + console.log(filteredOptions) const updatedOptions = [{ value: '', label: '' }, ...filteredOptions]; // Only update the field value if the modified field is the dependency field if (modifiedField && modifiedField.name === dependency.name) { setFieldValue(field.name, updatedOptions[0].value); } - + console.log(updatedOptions) return { ...field, hidden: false, diff --git a/client/src/components/_custom/drp/utils/hooks/useDrpDatasetModals.js b/client/src/components/_custom/drp/utils/hooks/useDrpDatasetModals.js index 2ba2ecab0..1e56eacd7 100644 --- a/client/src/components/_custom/drp/utils/hooks/useDrpDatasetModals.js +++ b/client/src/components/_custom/drp/utils/hooks/useDrpDatasetModals.js @@ -100,7 +100,7 @@ const useDrpDatasetModals = ( }; }) ); - } else if (field.name === 'base_origin_data') { + } else if (field.name === 'digital_dataset') { field.options.push( ...originDatasets.map((originData) => { return { @@ -108,8 +108,15 @@ const useDrpDatasetModals = ( label: originData.value.name, dependentId: originData.value.sample, }; - }) + }), + { value: 'other', label: 'Other (Specify Below)' } ); + // field.options.push( + // { + // value: 'other', + // label: 'Other', + // } + // ); } }); diff --git a/server/portal/apps/_custom/drp/models.py b/server/portal/apps/_custom/drp/models.py index 999aa1434..1eb76d5e6 100644 --- a/server/portal/apps/_custom/drp/models.py +++ b/server/portal/apps/_custom/drp/models.py @@ -143,7 +143,7 @@ class DrpDatasetMetadata(DrpMetadataModel): ) name: str - description: str + description: Optional[str] = None data_type: Literal[ "sample", "origin_data", @@ -231,3 +231,4 @@ class DrpAnalysisDatasetMetadata(DrpDatasetMetadata): sample: str # base_origin_data: Optional[str] = None digital_dataset: Optional[str] = None + digital_dataset_other_information: Optional[str] = None From 2715e3dbcc3e50c06f8ba6dedc739c94a2b8898a Mon Sep 17 00:00:00 2001 From: van-go <35277477+van-go@users.noreply.github.com> Date: Tue, 25 Feb 2025 11:32:49 -0600 Subject: [PATCH 2/2] Remove console logs from DynamicForm component and streamline option filtering logic --- client/src/components/_common/Form/DynamicForm/DynamicForm.jsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx index 0a3f84bd0..64c619763 100644 --- a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx +++ b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx @@ -23,21 +23,18 @@ const DynamicForm = ({ initialFormFields, onChange }) => { modifiedField ) => { const { dependency } = field; - console.log(field.options) const filteredOptions = field.options.filter(option => { if (option.value === 'other') { return true; } return option.dependentId === values[dependency.name]; }); - console.log(filteredOptions) const updatedOptions = [{ value: '', label: '' }, ...filteredOptions]; // Only update the field value if the modified field is the dependency field if (modifiedField && modifiedField.name === dependency.name) { setFieldValue(field.name, updatedOptions[0].value); } - console.log(updatedOptions) return { ...field, hidden: false,