use query function to get version document

This commit is contained in:
Jakub Trllo 2022-07-25 14:43:08 +02:00
parent e7c937bdc0
commit 1a5258b2fe

View file

@ -13,6 +13,7 @@ import openpype.api
from openpype.client import ( from openpype.client import (
get_representations, get_representations,
get_subset_by_name, get_subset_by_name,
get_version_by_name,
) )
from openpype.lib.profiles_filtering import filter_profiles from openpype.lib.profiles_filtering import filter_profiles
from openpype.lib.file_transaction import FileTransaction from openpype.lib.file_transaction import FileTransaction
@ -478,40 +479,40 @@ class IntegrateAsset(pyblish.api.InstancePlugin):
self.log.info("Prepared subset: {}".format(subset_name)) self.log.info("Prepared subset: {}".format(subset_name))
return subset_doc, bulk_writes return subset_doc, bulk_writes
def prepare_version(self, instance, subset): def prepare_version(self, instance, subset_doc, project_name):
version_number = instance.data["version"] version_number = instance.data["version"]
version = { version_doc = {
"schema": "openpype:version-3.0", "schema": "openpype:version-3.0",
"type": "version", "type": "version",
"parent": subset["_id"], "parent": subset_doc["_id"],
"name": version_number, "name": version_number,
"data": self.create_version_data(instance) "data": self.create_version_data(instance)
} }
existing_version = legacy_io.find_one({ existing_version = get_version_by_name(
'type': 'version', project_name,
'parent': subset["_id"], version_number,
'name': version_number subset_doc["_id"],
}, projection={"_id": True}) fields=["_id"]
)
if existing_version: if existing_version:
self.log.debug("Updating existing version ...") self.log.debug("Updating existing version ...")
version["_id"] = existing_version["_id"] version_doc["_id"] = existing_version["_id"]
else: else:
self.log.debug("Creating new version ...") self.log.debug("Creating new version ...")
version["_id"] = ObjectId() version_doc["_id"] = ObjectId()
bulk_writes = [ReplaceOne( bulk_writes = [ReplaceOne(
filter={"_id": version["_id"]}, filter={"_id": version_doc["_id"]},
replacement=version, replacement=version_doc,
upsert=True upsert=True
)] )]
self.log.info("Prepared version: v{0:03d}".format(version["name"])) self.log.info("Prepared version: v{0:03d}".format(version_doc["name"]))
return version, bulk_writes return version_doc, bulk_writes
def prepare_representation(self, repre, def prepare_representation(self, repre,
template_name, template_name,