mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 22:02:15 +01:00
separated functions to query asset by name and id
This commit is contained in:
parent
9829410932
commit
0d38c76f54
17 changed files with 94 additions and 73 deletions
|
|
@ -2,7 +2,8 @@ from .entities import (
|
|||
get_projects,
|
||||
get_project,
|
||||
|
||||
get_asset,
|
||||
get_asset_by_id,
|
||||
get_asset_by_name,
|
||||
get_assets,
|
||||
get_asset_ids_with_subsets,
|
||||
|
||||
|
|
@ -33,7 +34,8 @@ __all__ = (
|
|||
"get_projects",
|
||||
"get_project",
|
||||
|
||||
"get_asset",
|
||||
"get_asset_by_id",
|
||||
"get_asset_by_name",
|
||||
"get_assets",
|
||||
"get_asset_ids_with_subsets",
|
||||
|
||||
|
|
@ -56,6 +58,6 @@ __all__ = (
|
|||
"get_representation_parents",
|
||||
"get_representations_parents",
|
||||
|
||||
"get_thubmnail",
|
||||
"get_thumbnail",
|
||||
"get_thumbnail_id_from_source",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -90,23 +90,44 @@ def get_project(project_name, active=True, inactive=False, fields=None):
|
|||
return conn.find_one(query_filter, _prepare_fields(fields))
|
||||
|
||||
|
||||
def get_asset(project_name, asset_name=None, asset_id=None, fields=None):
|
||||
query_filter = {"type": "asset"}
|
||||
has_filter = False
|
||||
if asset_name:
|
||||
has_filter = True
|
||||
query_filter["name"] = asset_name
|
||||
def get_asset_by_id(project_name, asset_id, fields=None):
|
||||
"""Receive asset data by it's id.
|
||||
|
||||
if asset_id:
|
||||
has_filter = True
|
||||
query_filter["_id"] = _convert_id(asset_id)
|
||||
Args:
|
||||
project_name (str): Name of project where to look for subset.
|
||||
asset_id (str|ObjectId): Asset's id.
|
||||
|
||||
# Avoid random asset quqery
|
||||
if not has_filter:
|
||||
Returns:
|
||||
dict: Asset entity data.
|
||||
None: Asset was not found by id.
|
||||
"""
|
||||
|
||||
asset_id = _convert_id(asset_id)
|
||||
if not asset_id:
|
||||
return None
|
||||
|
||||
query_filter = {"type": "asset", "_id": asset_id}
|
||||
conn = _get_project_connection(project_name)
|
||||
return conn.find_one(query_filter, _prepare_fields(fields))
|
||||
|
||||
|
||||
def get_asset_by_name(project_name, asset_name, fields=None):
|
||||
"""Receive asset data by it's name.
|
||||
|
||||
Args:
|
||||
project_name (str): Name of project where to look for subset.
|
||||
asset_name (str): Asset's name.
|
||||
|
||||
Returns:
|
||||
dict: Asset entity data.
|
||||
None: Asset was not found by name.
|
||||
"""
|
||||
|
||||
if not asset_name:
|
||||
return None
|
||||
|
||||
query_filter = {"type": "asset", "name": asset_name}
|
||||
conn = _get_project_connection(project_name)
|
||||
return conn.find_one(query_filter, _prepare_fields(fields))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import re
|
|||
|
||||
from Qt import QtWidgets, QtCore
|
||||
|
||||
from openpype.client import get_asset, get_subsets
|
||||
from openpype.client import get_asset_by_name, get_subsets
|
||||
from openpype import style
|
||||
from openpype.api import get_current_project_settings
|
||||
from openpype.tools.utils.lib import qt_app_context
|
||||
|
|
@ -220,8 +220,8 @@ class CreatorWindow(QtWidgets.QDialog):
|
|||
asset_doc = None
|
||||
if creator_plugin:
|
||||
# Get the asset from the database which match with the name
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=asset_name, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, asset_name, fields=["_id"]
|
||||
)
|
||||
|
||||
# Get plugin
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import os
|
|||
|
||||
import maya.cmds as cmds
|
||||
|
||||
from openpype.client import get_asset
|
||||
from openpype.client import get_asset_by_id
|
||||
from openpype.pipeline import (
|
||||
legacy_io,
|
||||
remove_container,
|
||||
|
|
@ -161,7 +161,7 @@ def create_items_from_nodes(nodes):
|
|||
|
||||
project_name = legacy_io.active_project()
|
||||
for _id, id_nodes in id_hashes.items():
|
||||
asset = get_asset(project_name, asset_id=_id, fields=["name"])
|
||||
asset = get_asset_by_id(project_name, _id, fields=["name"])
|
||||
|
||||
# Skip if asset id is not found
|
||||
if not asset:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ except Exception:
|
|||
commonmark = None
|
||||
from Qt import QtWidgets, QtCore, QtGui
|
||||
|
||||
from openpype.client import get_asset, get_subsets
|
||||
from openpype.client import get_asset_by_name, get_subsets
|
||||
from openpype.lib import TaskNotSetError
|
||||
from openpype.pipeline.create import (
|
||||
CreatorError,
|
||||
|
|
@ -650,7 +650,7 @@ class CreateDialog(QtWidgets.QDialog):
|
|||
return
|
||||
|
||||
project_name = self.dbcon.active_project()
|
||||
asset_doc = get_asset(project_name, asset_name=asset_name)
|
||||
asset_doc = get_asset_by_name(project_name, asset_name)
|
||||
self._asset_doc = asset_doc
|
||||
|
||||
if asset_doc:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from Qt import QtCore, QtGui
|
|||
import qtawesome
|
||||
|
||||
from openpype.client import (
|
||||
get_asset,
|
||||
get_asset_by_id,
|
||||
get_subset,
|
||||
get_version,
|
||||
get_last_version_for_subset,
|
||||
|
|
@ -342,7 +342,7 @@ class InventoryModel(TreeModel):
|
|||
not_found_ids.append(repre_id)
|
||||
continue
|
||||
|
||||
asset = get_asset(project_name, asset_id=subset["parent"])
|
||||
asset = get_asset_by_id(project_name, subset["parent"])
|
||||
if not asset:
|
||||
not_found["asset"].append(group_items)
|
||||
not_found_ids.append(repre_id)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import qtawesome
|
|||
from bson.objectid import ObjectId
|
||||
|
||||
from openpype.client import (
|
||||
get_asset,
|
||||
get_asset_by_name,
|
||||
get_assets,
|
||||
get_subset,
|
||||
get_subsets,
|
||||
|
|
@ -484,9 +484,9 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
# Prepare asset document if asset is selected
|
||||
asset_doc = None
|
||||
if selected_asset:
|
||||
asset_doc = get_asset(
|
||||
asset_doc = get_asset_by_name(
|
||||
self.active_project(),
|
||||
asset_name=selected_asset,
|
||||
selected_asset,
|
||||
fields=["_id"]
|
||||
)
|
||||
if not asset_doc:
|
||||
|
|
@ -768,8 +768,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
project_name = self.active_project()
|
||||
selected_asset = self._assets_box.get_valid_value()
|
||||
if selected_asset:
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
asset_ids = [asset_doc["_id"]]
|
||||
else:
|
||||
|
|
@ -832,8 +832,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
|
||||
# [x] [x] [?]
|
||||
if selected_asset and selected_subset:
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
subset_doc = get_subset(
|
||||
project_name,
|
||||
|
|
@ -858,8 +858,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
# [x] [ ] [?]
|
||||
# If asset only is selected
|
||||
if selected_asset:
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
if not asset_doc:
|
||||
return list()
|
||||
|
|
@ -995,8 +995,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
|
||||
# [x] [ ] [?]
|
||||
project_name = self.active_project()
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
subset_docs = get_subsets(
|
||||
project_name, asset_ids=[asset_doc["_id"]], fields=["name"]
|
||||
|
|
@ -1043,8 +1043,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
# [x] [x] [ ]
|
||||
project_name = self.active_project()
|
||||
if selected_asset is not None and selected_subset is not None:
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
subset_doc = get_subset(
|
||||
project_name,
|
||||
|
|
@ -1077,8 +1077,8 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
|
||||
# [x] [ ] [ ]
|
||||
if selected_asset is not None:
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=selected_asset, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, selected_asset, fields=["_id"]
|
||||
)
|
||||
subset_docs = list(get_subsets(
|
||||
project_name,
|
||||
|
|
@ -1189,7 +1189,7 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
|
||||
project_name = self.active_project()
|
||||
if selected_asset:
|
||||
asset_doc = get_asset(project_name, asset_name=selected_asset)
|
||||
asset_doc = get_asset_by_name(project_name, selected_asset)
|
||||
asset_docs_by_id = {asset_doc["_id"]: asset_doc}
|
||||
else:
|
||||
asset_docs_by_id = self.content_assets
|
||||
|
|
|
|||
|
|
@ -657,11 +657,9 @@ class SceneInventoryView(QtWidgets.QTreeView):
|
|||
|
||||
project_name = legacy_io.active_project()
|
||||
# Get available versions for active representation
|
||||
representation_id = ObjectId(active["representation"])
|
||||
|
||||
repre_doc = get_representation(
|
||||
project_name,
|
||||
representation_id=representation_id,
|
||||
representation_id=active["representation"],
|
||||
fields=["parent"]
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import signal
|
|||
from bson.objectid import ObjectId
|
||||
from Qt import QtWidgets, QtCore, QtGui
|
||||
|
||||
from openpype.client import get_asset
|
||||
from openpype.client import get_asset_by_id
|
||||
|
||||
from .widgets import (
|
||||
AssetWidget, FamilyWidget, ComponentsWidget, ShadowWidget
|
||||
|
|
@ -144,8 +144,8 @@ class Window(QtWidgets.QDialog):
|
|||
if len(selected) == 1:
|
||||
self.valid_parent = True
|
||||
project_name = self.db.active_project()
|
||||
asset = get_asset(
|
||||
project_name, asset_id=selected[0], fields=["name"]
|
||||
asset = get_asset_by_id(
|
||||
project_name, selected[0], fields=["name"]
|
||||
)
|
||||
self.widget_family.change_asset(asset['name'])
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import qtawesome
|
|||
|
||||
from openpype.client import (
|
||||
get_project,
|
||||
get_asset,
|
||||
get_asset_by_id,
|
||||
)
|
||||
from openpype.tools.utils import PlaceholderLineEdit
|
||||
|
||||
|
|
@ -251,9 +251,9 @@ class AssetWidget(QtWidgets.QWidget):
|
|||
return output
|
||||
|
||||
project_name = self.dbcon.active_project()
|
||||
parent = get_asset(
|
||||
parent = get_asset_by_id(
|
||||
project_name,
|
||||
asset_id=parent_asset_id,
|
||||
parent_asset_id,
|
||||
fields=["name", "data.visualParent"]
|
||||
)
|
||||
output.append(parent['name'])
|
||||
|
|
@ -362,8 +362,8 @@ class AssetWidget(QtWidgets.QWidget):
|
|||
selected = self.get_selected_assets()
|
||||
if len(selected) == 1:
|
||||
project_name = self.dbcon.active_project()
|
||||
asset = get_asset(
|
||||
project_name, asset_id=selected[0], fields=["data.tasks"]
|
||||
asset = get_asset_by_id(
|
||||
project_name, selected[0], fields=["data.tasks"]
|
||||
)
|
||||
if asset:
|
||||
tasks = asset.get('data', {}).get('tasks', [])
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import re
|
|||
from Qt import QtWidgets, QtCore
|
||||
|
||||
from openpype.client import (
|
||||
get_asset,
|
||||
get_asset_by_name,
|
||||
get_subset,
|
||||
get_subsets,
|
||||
get_last_version_for_subset,
|
||||
|
|
@ -188,8 +188,8 @@ class FamilyWidget(QtWidgets.QWidget):
|
|||
if asset_name != self.NOT_SELECTED:
|
||||
# Get the assets from the database which match with the name
|
||||
project_name = self.dbcon.active_project()
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=asset_name, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, asset_name, fields=["_id"]
|
||||
)
|
||||
|
||||
# Get plugin and family
|
||||
|
|
@ -205,8 +205,8 @@ class FamilyWidget(QtWidgets.QWidget):
|
|||
|
||||
# Get the asset from the database which match with the name
|
||||
project_name = self.dbcon.active_project()
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=asset_name, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, asset_name, fields=["_id"]
|
||||
)
|
||||
# Get plugin
|
||||
plugin = item.data(PluginRole)
|
||||
|
|
@ -310,8 +310,8 @@ class FamilyWidget(QtWidgets.QWidget):
|
|||
asset_name != self.NOT_SELECTED and
|
||||
subset_name.strip() != ''
|
||||
):
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=asset_name, fields=["_id"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, asset_name, fields=["_id"]
|
||||
)
|
||||
|
||||
if asset_doc:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import click
|
|||
|
||||
import speedcopy
|
||||
|
||||
from openpype.client import get_project, get_asset
|
||||
from openpype.client import get_project, get_asset_by_name
|
||||
from openpype.lib import Terminal
|
||||
from openpype.api import Anatomy
|
||||
from openpype.pipeline import legacy_io
|
||||
|
|
@ -94,7 +94,7 @@ class TextureCopy:
|
|||
t.echo("!!! Project name [ {} ] not found.".format(project_name))
|
||||
exit(1)
|
||||
|
||||
asset = get_asset(project_name, asset_name=asset_name)
|
||||
asset = get_asset_by_name(project_name, asset_name)
|
||||
if not asset:
|
||||
t.echo("!!! Asset [ {} ] not found in project".format(asset_name))
|
||||
exit(1)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import qtawesome
|
|||
|
||||
from openpype.client import (
|
||||
get_project,
|
||||
get_asset,
|
||||
get_asset_by_name,
|
||||
)
|
||||
from openpype.style import (
|
||||
get_default_entity_icon_color,
|
||||
|
|
@ -434,8 +434,8 @@ class FamilyConfigCache:
|
|||
database = getattr(self.dbcon, "database", None)
|
||||
if database is None:
|
||||
database = self.dbcon._database
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_name=asset_name, fields=["data.tasks"]
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name, asset_name, fields=["data.tasks"]
|
||||
) or {}
|
||||
tasks_info = asset_doc.get("data", {}).get("tasks") or {}
|
||||
task_type = tasks_info.get(task_name, {}).get("type")
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import qtawesome
|
|||
|
||||
from openpype.client import (
|
||||
get_project,
|
||||
get_asset,
|
||||
get_asset_by_id,
|
||||
)
|
||||
from openpype.style import get_disabled_entity_icon_color
|
||||
from openpype.tools.utils.lib import get_task_icon
|
||||
|
|
@ -77,8 +77,8 @@ class TasksModel(QtGui.QStandardItemModel):
|
|||
asset_doc = None
|
||||
if self._context_is_valid():
|
||||
project_name = self._get_current_project()
|
||||
asset_doc = get_asset(
|
||||
project_name, asset_id=asset_id, fields=["data.tasks"]
|
||||
asset_doc = get_asset_by_id(
|
||||
project_name, asset_id, fields=["data.tasks"]
|
||||
)
|
||||
self._set_asset(asset_doc)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import shutil
|
|||
import Qt
|
||||
from Qt import QtWidgets, QtCore
|
||||
|
||||
from openpype.client import get_asset
|
||||
from openpype.client import get_asset_by_id
|
||||
from openpype.tools.utils import PlaceholderLineEdit
|
||||
from openpype.tools.utils.delegates import PrettyTimeDelegate
|
||||
from openpype.lib import (
|
||||
|
|
@ -386,7 +386,7 @@ class FilesWidget(QtWidgets.QWidget):
|
|||
|
||||
if self._asset_doc is None:
|
||||
project_name = legacy_io.active_project()
|
||||
self._asset_doc = get_asset(project_name, asset_id=self._asset_id)
|
||||
self._asset_doc = get_asset_by_id(project_name, self._asset_id)
|
||||
|
||||
return self._asset_doc
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from Qt import QtWidgets, QtCore
|
|||
|
||||
from openpype.client import (
|
||||
get_project,
|
||||
get_asset,
|
||||
get_asset_by_name,
|
||||
)
|
||||
from openpype.lib import (
|
||||
get_last_workfile_with_version,
|
||||
|
|
@ -33,9 +33,9 @@ def build_workfile_data(session):
|
|||
project_doc = get_project(
|
||||
project_name, fields=["name", "data.code", "config.tasks"]
|
||||
)
|
||||
asset_doc = get_asset(
|
||||
asset_doc = get_asset_by_name(
|
||||
project_name,
|
||||
asset_name=asset_name,
|
||||
asset_name,
|
||||
fields=["name", "data.tasks", "data.parents"]
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import os
|
|||
import datetime
|
||||
from Qt import QtCore, QtWidgets
|
||||
|
||||
from openpype.client import get_asset
|
||||
from openpype.client import get_asset_by_id, get_asset_by_name
|
||||
from openpype import style
|
||||
from openpype.lib import (
|
||||
get_workfile_doc,
|
||||
|
|
@ -302,7 +302,7 @@ class Window(QtWidgets.QMainWindow):
|
|||
workdir, filename = os.path.split(filepath)
|
||||
asset_id = self.assets_widget.get_selected_asset_id()
|
||||
project_name = legacy_io.active_project()
|
||||
asset_doc = get_asset(project_name, asset_id=asset_id)
|
||||
asset_doc = get_asset_by_id(project_name, asset_id)
|
||||
task_name = self.tasks_widget.get_selected_task_name()
|
||||
create_workfile_doc(
|
||||
asset_doc, task_name, filename, workdir, legacy_io
|
||||
|
|
@ -328,7 +328,7 @@ class Window(QtWidgets.QMainWindow):
|
|||
|
||||
self._context_to_set, context = None, self._context_to_set
|
||||
if "asset" in context:
|
||||
asset_doc = get_asset(
|
||||
asset_doc = get_asset_by_name(
|
||||
self.project_name, context["asset"], fields=["_id"]
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue