Skip to content

Commit 55a5acc

Browse files
committed
Set annotations metadata to datasets
1 parent 95e5267 commit 55a5acc

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

backend/webserver/api/datasets.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
update_dataset = reqparse.RequestParser()
4949
update_dataset.add_argument('categories', location='json', type=list, help="New list of categories")
5050
update_dataset.add_argument('default_annotation_metadata', location='json', type=dict,
51-
help="Default annotation metadata")
51+
help="Default annotation metadata")
5252

5353
dataset_generate = reqparse.RequestParser()
5454
dataset_generate.add_argument('keywords', location='json', type=list, default=[],
@@ -193,20 +193,31 @@ def delete(self, dataset_id):
193193

194194
@api.expect(update_dataset)
195195
def post(self, dataset_id):
196+
196197
""" Updates dataset by ID """
198+
197199
dataset = current_user.datasets.filter(id=dataset_id, deleted=False).first()
198200
if dataset is None:
199201
return {"message": "Invalid dataset id"}, 400
200202

201203
args = update_dataset.parse_args()
202204
categories = args.get('categories')
203205
default_annotation_metadata = args.get('default_annotation_metadata')
206+
set_default_annotation_metadata = args.get('set_default_annotation_metadata')
204207

205208
if categories is not None:
206209
dataset.categories = CategoryModel.bulk_create(categories)
207210

208211
if default_annotation_metadata is not None:
212+
213+
update = {}
214+
for key, value in default_annotation_metadata.items():
215+
if key not in dataset.default_annotation_metadata:
216+
update[f'set__metadata__{key}'] = value
217+
209218
dataset.default_annotation_metadata = default_annotation_metadata
219+
AnnotationModel.objects(dataset_id=dataset.id, deleted=False)\
220+
.update(**update)
210221

211222
dataset.update(
212223
categories=dataset.categories,

0 commit comments

Comments
 (0)