Skip to content

Commit d54d722

Browse files
committed
* solve parent not nullable problem
1 parent f7b65da commit d54d722

File tree

3 files changed

+10
-16
lines changed

3 files changed

+10
-16
lines changed

rdmo/projects/assets/js/project/actions/projectActions.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,7 @@ export function updateProject(data) {
9797
dispatch(addToPending('updateProject'))
9898
dispatch(updateProjectInit())
9999

100-
/* TODO fix project.parent in API (not able to save empty parent) */
101-
const cleanedData = { ...data }
102-
if (cleanedData.parent === null) {
103-
delete cleanedData.parent
104-
}
105-
106-
return ProjectApi.updateProject(id, cleanedData)
107-
// return ProjectApi.updateProject(id, data)
100+
return ProjectApi.updateProject(id, data)
108101
.then((updatedProject) => {
109102
const updatedBundle = {
110103
...currentBundle,

rdmo/projects/assets/js/project/components/pages/ProjectForm.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ const ProjectForm = () => {
5858
}, 500)
5959

6060
useEffect(() => {
61-
if (formData.parent && parentOptions.length === 0) {
62-
ProjectApi.fetchProject(formData.parent).then(project => {
61+
if (formData.parent && !parentOptions.some(p => p.value === formData.parent)) {
62+
ProjectApi.fetchProject(formData.parent).then((project) => {
6363
const option = { value: project.id, label: project.title }
64-
setParentOptions([option])
64+
setParentOptions((prev) => [...prev, option])
6565
})
6666
}
67-
}, [formData.parent, parentOptions.length])
67+
}, [formData.parent, parentOptions])
6868

6969
// const handleSubmit = (e) => {
7070
// e.preventDefault()
@@ -96,7 +96,8 @@ const ProjectForm = () => {
9696
/>
9797

9898
{/* TODO feature project phase */}
99-
{/* <Select
99+
{/*
100+
<Select
100101
className="mb-3 form-label fw-bold"
101102
label={gettext('Project phase')}
102103
help="Die Phase, in der sich Ihr Projekt zum aktuellen Zeitpunkt befindet."
@@ -110,7 +111,8 @@ const ProjectForm = () => {
110111
onChange={(value) => handleChange('phase', value)}
111112
errors={getFieldErrors('phase')}
112113
placeholder={gettext('Select project phase')}
113-
/> */}
114+
/>
115+
*/}
114116

115117
{/* TODO show only active catalogs */}
116118
<div className="mb-3">
@@ -169,7 +171,6 @@ const ProjectForm = () => {
169171
getOptionLabel={(project) => project.label}
170172
isDisabled={!isParentSwitchOn}
171173
loadOptions={handleLoadProjects}
172-
defaultOptions
173174
isClearable
174175
backspaceRemovesValue={true}
175176
/>

rdmo/projects/serializers/v1/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def get_queryset(self):
4444
return Project.objects.filter_user(self.context['request'].user)
4545

4646
catalog = CatalogField(required=True)
47-
parent = ParentField(required=False)
47+
parent = ParentField(required=False, allow_null=True)
4848

4949
owners = UserSerializer(many=True, read_only=True)
5050
managers = UserSerializer(many=True, read_only=True)

0 commit comments

Comments
 (0)