_translate_event is not launched by default so events are faster

This commit is contained in:
Jakub Trllo 2019-03-13 16:31:51 +01:00
parent b894496f9a
commit c2eb4599e8
8 changed files with 18 additions and 58 deletions

View file

@ -13,7 +13,7 @@ class DelAvalonIdFromNew(BaseEvent):
'''
priority = Sync_to_Avalon.priority - 1
def launch(self, event):
def launch(self, session, event):
created = []
entities = event['data']['entities']
for entity in entities:
@ -31,7 +31,7 @@ class DelAvalonIdFromNew(BaseEvent):
get_ca_mongoid() in entity['keys'] and
entity_id in created
):
ftrack_entity = self.session.get(
ftrack_entity = session.get(
self._get_entity_type(entity),
entity_id
)
@ -44,22 +44,13 @@ class DelAvalonIdFromNew(BaseEvent):
ftrack_entity['custom_attributes'][
get_ca_mongoid()
] = ''
self.session.commit()
session.commit()
except Exception:
self.session.rollback()
session.rollback()
continue
def register(self):
'''Registers the event, subscribing the discover and launch topics.'''
self.session.event_hub.subscribe(
'topic=ftrack.update',
self.launch,
priority=self.priority
)
def register(session, **kw):
'''Register plugin. Called when used as an plugin.'''
if not isinstance(session, ftrack_api.session.Session):

View file

@ -34,7 +34,7 @@ class NextTaskUpdate(BaseEvent):
return None
def launch(self, session, entities, event):
def launch(self, session, event):
'''Propagates status from version to task when changed'''
# self.log.info(event)

View file

@ -7,7 +7,7 @@ ignore_me = True
class Radio_buttons(BaseEvent):
def launch(self, session, entities, event):
def launch(self, session, event):
'''Provides a readio button behaviour to any bolean attribute in
radio_button group.'''

View file

@ -4,7 +4,12 @@ from pype.ftrack import BaseEvent, lib
class Sync_to_Avalon(BaseEvent):
def launch(self, session, entities, event):
ignore_entityType = [
'assetversion', 'job', 'user', 'reviewsessionobject', 'timer',
'socialfeed', 'socialnotification', 'timelog'
]
def launch(self, session, event):
ca_mongoid = lib.get_ca_mongoid()
# If mongo_id textfield has changed: RETURN!
# - infinite loop
@ -13,6 +18,7 @@ class Sync_to_Avalon(BaseEvent):
if ca_mongoid in ent['keys']:
return
entities = self._get_entities(session, event, self.ignore_entityType)
ft_project = None
# get project
for entity in entities:
@ -109,40 +115,6 @@ class Sync_to_Avalon(BaseEvent):
return
def _launch(self, event):
self.session.reset()
args = self._translate_event(
self.session, event
)
self.launch(
self.session, *args
)
return
def _translate_event(self, session, event):
exceptions = [
'assetversion', 'job', 'user', 'reviewsessionobject', 'timer',
'socialfeed', 'timelog'
]
_selection = event['data'].get('entities', [])
_entities = list()
for entity in _selection:
if entity['entityType'] in exceptions:
continue
_entities.append(
(
session.get(
self._get_entity_type(entity),
entity.get('entityId')
)
)
)
return [_entities, event]
def register(session, **kw):
'''Register plugin. Called when used as an plugin.'''

View file

@ -13,7 +13,7 @@ class Test_Event(BaseEvent):
priority = 10000
def launch(self, session, entities, event):
def launch(self, session, event):
'''just a testing event'''

View file

@ -4,7 +4,7 @@ from pype.ftrack import BaseEvent
class ThumbnailEvents(BaseEvent):
def launch(self, session, entities, event):
def launch(self, session, event):
'''just a testing event'''
# self.log.info(event)

View file

@ -4,7 +4,7 @@ from pype.ftrack import BaseEvent
class VersionToTaskStatus(BaseEvent):
def launch(self, session, entities, event):
def launch(self, session, event):
'''Propagates status from version to task when changed'''
session.commit()

View file

@ -40,14 +40,11 @@ class BaseEvent(BaseHandler):
)
def _launch(self, event):
self.session._local_cache.clear()
self.session.rollback()
args = self._translate_event(
self.session, event
)
self.session._local_cache.clear()
self.launch(
self.session, *args
self.session, event
)
return