From 2b8ecae2adb9c8ce1e7e4e56db6e2741fa793ef5 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 27 Nov 2019 17:19:57 +0100 Subject: [PATCH] handled situations when ftrack entities are not queried yet --- pype/ftrack/events/event_sync_to_avalon.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pype/ftrack/events/event_sync_to_avalon.py b/pype/ftrack/events/event_sync_to_avalon.py index 4db7684349..97e8e50c58 100644 --- a/pype/ftrack/events/event_sync_to_avalon.py +++ b/pype/ftrack/events/event_sync_to_avalon.py @@ -1544,12 +1544,31 @@ class SyncToAvalonEvent(BaseEvent): # Parents preparation *** mongo_to_ftrack_parents = {} + missing_ftrack_ents = {} for mongo_id in parent_changes: avalon_ent = self.avalon_ents_by_id[mongo_id] ftrack_id = avalon_ent["data"]["ftrackId"] + if ftrack_id not in self.ftrack_ents_by_id: + missing_ftrack_ents[ftrack_id] = mongo_id + continue ftrack_ent = self.ftrack_ents_by_id[ftrack_id] mongo_to_ftrack_parents[mongo_id] = len(ftrack_ent["link"]) + if missing_ftrack_ents: + joine_ids = ", ".join( + ["\"{}\"".format(id) for id in missing_ftrack_ents.keys()] + ) + entities = self.process_session.query( + self.entities_query_by_id.format( + self.cur_project["id"], joine_ids + ) + ).all() + for entity in entities: + ftrack_id = entity["id"] + self.ftrack_ents_by_id[ftrack_id] = entity + mongo_id = missing_ftrack_ents[ftrack_id] + mongo_to_ftrack_parents[mongo_id] = len(entity["link"]) + stored_parents_by_mongo = {} # sort by hierarchy level mongo_to_ftrack_parents = [k for k, v in sorted(