mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 08:54:53 +01:00
it is possible to get update changes for mongo from asset item
This commit is contained in:
parent
df75e05e7d
commit
7d56929fff
1 changed files with 36 additions and 0 deletions
|
|
@ -1058,6 +1058,42 @@ class AssetItem(BaseItem):
|
|||
doc_data[key] = value
|
||||
|
||||
return doc
|
||||
|
||||
def update_data(self):
|
||||
if not self.mongo_id:
|
||||
return {}
|
||||
|
||||
document = self.to_doc()
|
||||
|
||||
changes = {}
|
||||
|
||||
for key, value in document.items():
|
||||
if key in ("data", "_id"):
|
||||
continue
|
||||
|
||||
if (
|
||||
key in self._origin_asset_doc
|
||||
and self._origin_asset_doc[key] == value
|
||||
):
|
||||
continue
|
||||
|
||||
changes[key] = value
|
||||
|
||||
if "data" not in self._origin_asset_doc:
|
||||
changes["data"] = document["data"]
|
||||
else:
|
||||
origin_data = self._origin_asset_doc["data"]
|
||||
|
||||
for key, value in document["data"].items():
|
||||
if key in origin_data and origin_data[key] == value:
|
||||
continue
|
||||
_key = "data.{}".format(key)
|
||||
changes[_key] = value
|
||||
|
||||
if changes:
|
||||
return {"$set": changes}
|
||||
return {}
|
||||
|
||||
@classmethod
|
||||
def data_from_doc(cls, asset_doc):
|
||||
data = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue