From ea445cede307a07abd6cc39d5963faa29d7bf180 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 20 Apr 2020 18:54:31 +0200 Subject: [PATCH] `_get_entities` in base can care about ignore entityTypes so can be removed from event handler --- pype/ftrack/lib/ftrack_base_handler.py | 30 +++++++++++++++++++------ pype/ftrack/lib/ftrack_event_handler.py | 19 ---------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/pype/ftrack/lib/ftrack_base_handler.py b/pype/ftrack/lib/ftrack_base_handler.py index 37c3a0ffe6..6a78a19929 100644 --- a/pype/ftrack/lib/ftrack_base_handler.py +++ b/pype/ftrack/lib/ftrack_base_handler.py @@ -209,20 +209,36 @@ class BaseHandler(object): return _entities + def _get_entities(self, event, session=None, ignore=None): + entities = [] + selection = event['data'].get('selection') + if not selection: + return entities + + if ignore is None: + ignore = [] + elif isinstance(ignore, str): + ignore = [ignore] + + filtered_selection = [] + for entity in selection: + if entity['entityType'] not in ignore: + filtered_selection.append(entity) + + if not filtered_selection: + return entities - def _get_entities(self, event, session=None): if session is None: session = self.session session._local_cache.clear() - selection = event['data'].get('selection') or [] - _entities = [] - for entity in selection: - _entities.append(session.get( + + for entity in filtered_selection: + entities.append(session.get( self._get_entity_type(entity, session), entity.get('entityId') )) - event['data']['entities_object'] = _entities - return _entities + + return entities def _get_entity_type(self, entity, session=None): '''Return translated entity type tht can be used with API.''' diff --git a/pype/ftrack/lib/ftrack_event_handler.py b/pype/ftrack/lib/ftrack_event_handler.py index 80a86527ab..b4743fe01a 100644 --- a/pype/ftrack/lib/ftrack_event_handler.py +++ b/pype/ftrack/lib/ftrack_event_handler.py @@ -56,22 +56,3 @@ class BaseEvent(BaseHandler): event ] - def _get_entities( - self, session, event, ignore=['socialfeed', 'socialnotification'] - ): - _selection = event['data'].get('entities', []) - _entities = list() - if isinstance(ignore, str): - ignore = list(ignore) - for entity in _selection: - if entity['entityType'] in ignore: - continue - _entities.append( - ( - session.get( - self._get_entity_type(entity), - entity.get('entityId') - ) - ) - ) - return _entities