diff --git a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx index f7f74f177..64c619763 100644 --- a/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx +++ b/client/src/components/_common/Form/DynamicForm/DynamicForm.jsx @@ -23,17 +23,18 @@ const DynamicForm = ({ initialFormFields, onChange }) => { modifiedField ) => { const { dependency } = field; - - const filteredOptions = field.options.filter( - (option) => option.dependentId == values[dependency.name] - ); + const filteredOptions = field.options.filter(option => { + if (option.value === 'other') { + return true; + } + return option.dependentId === values[dependency.name]; + }); 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); } - 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 095fe853c..4b246af9c 100644 --- a/server/portal/apps/_custom/drp/models.py +++ b/server/portal/apps/_custom/drp/models.py @@ -144,7 +144,7 @@ class DrpDatasetMetadata(DrpMetadataModel): ) name: str - description: str + description: Optional[str] = None data_type: Literal[ "sample", "origin_data", @@ -232,3 +232,4 @@ class DrpAnalysisDatasetMetadata(DrpDatasetMetadata): sample: str # base_origin_data: Optional[str] = None digital_dataset: Optional[str] = None + digital_dataset_other_information: Optional[str] = None