Don't use ObjectId in scene inventory view

This commit is contained in:
iLLiCiTiT 2023-02-23 22:02:03 +01:00 committed by Jakub Trllo
parent b2e8d2ff7a
commit 3ae3d01a20

View file

@ -4,7 +4,6 @@ from functools import partial
from qtpy import QtWidgets, QtCore
import qtawesome
from bson.objectid import ObjectId
from openpype.client import (
get_version_by_id,
@ -84,22 +83,20 @@ class SceneInventoryView(QtWidgets.QTreeView):
if not items:
return
repre_ids = []
for item in items:
item_id = ObjectId(item["representation"])
if item_id not in repre_ids:
repre_ids.append(item_id)
repre_ids = {
item["representation"]
for item in items
}
project_name = legacy_io.active_project()
repre_docs = get_representations(
project_name, representation_ids=repre_ids, fields=["parent"]
)
version_ids = []
for repre_doc in repre_docs:
version_id = repre_doc["parent"]
if version_id not in version_ids:
version_ids.append(version_id)
version_ids = {
repre_doc["parent"]
for repre_doc in repre_docs
}
loaded_versions = get_versions(
project_name, version_ids=version_ids, hero=True
@ -107,18 +104,17 @@ class SceneInventoryView(QtWidgets.QTreeView):
loaded_hero_versions = []
versions_by_parent_id = collections.defaultdict(list)
version_parents = []
subset_ids = set()
for version in loaded_versions:
if version["type"] == "hero_version":
loaded_hero_versions.append(version)
else:
parent_id = version["parent"]
versions_by_parent_id[parent_id].append(version)
if parent_id not in version_parents:
version_parents.append(parent_id)
subset_ids.add(parent_id)
all_versions = get_versions(
project_name, subset_ids=version_parents, hero=True
project_name, subset_ids=subset_ids, hero=True
)
hero_versions = []
versions = []
@ -146,11 +142,11 @@ class SceneInventoryView(QtWidgets.QTreeView):
switch_to_versioned = None
if has_loaded_hero_versions:
def _on_switch_to_versioned(items):
repre_ids = []
repre_ids = set()
for item in items:
item_id = ObjectId(item["representation"])
item_id = item["representation"]
if item_id not in repre_ids:
repre_ids.append(item_id)
repre_ids.add(item_id)
repre_docs = get_representations(
project_name,
@ -158,13 +154,13 @@ class SceneInventoryView(QtWidgets.QTreeView):
fields=["parent"]
)
version_ids = []
version_ids = set()
version_id_by_repre_id = {}
for repre_doc in repre_docs:
version_id = repre_doc["parent"]
version_id_by_repre_id[repre_doc["_id"]] = version_id
if version_id not in version_ids:
version_ids.append(version_id)
repre_id = str(repre_doc["_id"])
version_id_by_repre_id[repre_id] = version_id
version_ids.add(version_id)
hero_versions = get_hero_versions(
project_name,
@ -194,7 +190,7 @@ class SceneInventoryView(QtWidgets.QTreeView):
version_doc["name"]
for item in items:
repre_id = ObjectId(item["representation"])
repre_id = item["representation"]
version_id = version_id_by_repre_id.get(repre_id)
version_name = version_name_by_id.get(version_id)
if version_name is not None: