Skip to content
Snippets Groups Projects
Commit 28eccc6b authored by Romin's avatar Romin :eye:
Browse files

Improve parsing of existing metadata for nested AP

parent 18dcd2c8
No related branches found
No related tags found
No related merge requests found
......@@ -1213,19 +1213,19 @@ class MetadataForm:
}
}
def _parse_items(self, items: list[dict], parent_root: str = "") -> None:
root_paths = self.paths()
def _parse_items(self, items: list[dict]) -> None:
# Select the smallest lexicographic blank node guid
active_root = min([i["root"] for i in items])
for item in items:
path: str = item["path"]
value: str = item["value"]
root: str = item["root"]
if parent_root and root != parent_root:
continue
if path in root_paths:
if root == active_root:
field = self.path(path)
if field.is_inherited:
form = field.metadata_form()
form._parse_items(items, value)
subitems = list(filter(lambda e: e["root"] == value, items))
form._parse_items(subitems)
field.append(form)
else:
field.append(value, True)
......@@ -1235,4 +1235,4 @@ class MetadataForm:
Parses existing metadata that was received from Coscine.
"""
self.clear()
self._parse_items(data.items(), "")
self._parse_items(data.items())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment