Hello Forum! I’m currently having issues with my ShotgunEventDaemon. Hoping I can get some help here
The purpose of my script is to:
If a user updates there task status to “In Progress”, then set the start_date of that task to the current date.
If a user updates there task status to “Final”, then set the due_date of that task to the current date.
I’ve setup the script and everything seems to work fine until I change a task status to “Final”, for some reason whenever I do this, the entire task is deleted.
Here’s my code:
import os import logging import pprint import datetime from datetime import date def registerCallbacks(reg): eventFilter = {'Shotgun_Task_Change': ['sg_status_list']} reg.registerCallback( 'name', 'key', taskStatusGanttChart, eventFilter, None ) reg.logger.setLevel(logging.DEBUG) #This function will only run if Shotgun Daemon System catches a Task Status Change def taskStatusGanttChart(sg,logger,event,args): task_due_date = sg.find_one("Task", [["id", "is", event['meta']['entity_id']]], ['due_date']) due_date = task_due_date['due_date'] #Get Tasks Due_Date task_start_date = sg.find_one("Task", [["id", "is", event['meta']['entity_id']]], ['start_date']) start_date = task_start_date['start_date'] #Get Tasks Start_Date today = date.today() tomorrow = today + datetime.timedelta(days=1) #Get today and tomorrows current date #If the task was "Waiting to Start" and has been changed to "In Progress" then update the start_date to today if event['meta']['new_value'] == 'ip' and event['meta']['old_value'] == 'wtg': if(str(today) != str(start_date)): sg.update('Task', event['meta']['entity_id'], {'start_date': today}) #If the task is updated to "Final" then update the due_date to the current date if event['meta']['new_value'] == 'fin': if(str(due_date) != str(today)): sg.update('Task', event['meta']['entity_id'], {'due_date': today})