From 787422ab0127ef30907139e0f4da12c8db435aa6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Tue, 8 Jan 2019 16:38:32 +0100 Subject: [PATCH 1/2] initial --- pype/ftrack/actions/ftrack_action_handler.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pype/ftrack/actions/ftrack_action_handler.py b/pype/ftrack/actions/ftrack_action_handler.py index d147a2630b..215d054e4d 100644 --- a/pype/ftrack/actions/ftrack_action_handler.py +++ b/pype/ftrack/actions/ftrack_action_handler.py @@ -10,7 +10,7 @@ import toml from avalon import io, lib, pipeline from avalon import session as sess import acre - +from pype.ftrack import ftrack_utils from pype import api as pype @@ -354,6 +354,11 @@ class AppAction(object): self.log.info('Starting timer for task: ' + task['name']) user.start_timer(task, force=True) + # Change status of task to In progress + config = ftrack_utils.get_config_data() + statuses = config['sync_to_avalon']['statuses_name_change'] + status = config['status_on_app_launch'] + return { 'success': True, 'message': "Launching {0}".format(self.label) From af3a918f24ce93bbf97b9d9382286dcd9eeb9843 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Tue, 8 Jan 2019 17:16:48 +0100 Subject: [PATCH 2/2] app launch changes status if current status is same as in config 'statuses_name_change' --- pype/ftrack/actions/ftrack_action_handler.py | 28 +++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/pype/ftrack/actions/ftrack_action_handler.py b/pype/ftrack/actions/ftrack_action_handler.py index 215d054e4d..bfa297790e 100644 --- a/pype/ftrack/actions/ftrack_action_handler.py +++ b/pype/ftrack/actions/ftrack_action_handler.py @@ -345,19 +345,35 @@ class AppAction(object): } pass - - # RUN TIMER IN FTRACK username = event['source']['user']['username'] - user = session.query('User where username is "{}"'.format(username)).one() - task = session.query('Task where id is {}'.format(entity['id'])).one() + query_user = 'User where username is "{}"'.format(username) + query_task = 'Task where id is {}'.format(entity['id']) + user = session.query(query_user).one() + task = session.query(query_task).one() self.log.info('Starting timer for task: ' + task['name']) user.start_timer(task, force=True) # Change status of task to In progress config = ftrack_utils.get_config_data() - statuses = config['sync_to_avalon']['statuses_name_change'] - status = config['status_on_app_launch'] + + if ( + 'status_on_app_launch' in config and + 'sync_to_avalon' in config and + 'statuses_name_change' in config['sync_to_avalon'] + ): + statuses = config['sync_to_avalon']['statuses_name_change'] + if entity['status']['name'].lower() in statuses: + status_name = config['status_on_app_launch'] + + try: + query = 'Status where name is "{}"'.format(status_name) + status = session.query(query).one() + task['status'] = status + session.commit() + except Exception as e: + msg = "Status '{}' in config wasn't found on Ftrack".format(status_name) + self.log.warning(msg) return { 'success': True,