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,