mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-03 17:35:19 +01:00
add existing asset docs to hierarchy
This commit is contained in:
parent
6e578ee63c
commit
7d3132f058
1 changed files with 31 additions and 6 deletions
|
|
@ -98,12 +98,37 @@ class HierarchyModel(QtCore.QAbstractItemModel):
|
|||
if not project_name:
|
||||
return
|
||||
|
||||
project_doc = self.dbcon.database[project_name].find_one({
|
||||
"type": "project"
|
||||
})
|
||||
if project_doc:
|
||||
item = ProjectItem(project_doc)
|
||||
self.add_item(item)
|
||||
project_doc = self.dbcon.database[project_name].find_one(
|
||||
{"type": "project"},
|
||||
ProjectItem.query_projection
|
||||
)
|
||||
if not project_doc:
|
||||
return
|
||||
|
||||
project_item = ProjectItem(project_doc)
|
||||
self.add_item(project_item)
|
||||
|
||||
asset_docs = self.dbcon.database[project_name].find(
|
||||
{"type": "asset"},
|
||||
AssetItem.query_projection
|
||||
)
|
||||
asset_docs_by_parent_id = collections.defaultdict(list)
|
||||
for asset_doc in asset_docs:
|
||||
parent_id = asset_doc["data"]["visualParent"]
|
||||
asset_docs_by_parent_id[parent_id].append(asset_doc)
|
||||
|
||||
appending_queue = Queue()
|
||||
appending_queue.put((None, project_item))
|
||||
|
||||
while not appending_queue.empty():
|
||||
parent_id, parent_item = appending_queue.get()
|
||||
if parent_id not in asset_docs_by_parent_id:
|
||||
continue
|
||||
|
||||
for asset_doc in asset_docs_by_parent_id[parent_id]:
|
||||
new_item = AssetItem(asset_doc)
|
||||
self.add_item(new_item, parent_item)
|
||||
appending_queue.put((asset_doc["_id"], new_item))
|
||||
|
||||
def rowCount(self, parent=None):
|
||||
if parent is None or not parent.isValid():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue