def update_data(self, data): name = data.get("name", None) task_type = TaskType.get_by(name=name) if task_type is not None: raise ArgumentsException( "A task type with similar name already exists") return data
def get_or_create_task_type( department, name, color="#888888", priority=1, for_shots=False, for_entity="Asset", short_name="", shotgun_id=None, ): """ Create a new task type if it doesn't exist. If it exists, it returns the type from database. """ task_type = TaskType.get_by(name=name) if task_type is None: task_type = TaskType.create( name=name, short_name=short_name, department_id=department["id"], color=color, priority=priority, for_shots=for_shots, shotgun_id=shotgun_id, ) events.emit("task-type:new", {"task_type_id": task_type.id}) return task_type.serialize()
def test_import_task(self): self.load_task() self.assertEqual(len(self.tasks), 1) self.tasks = self.get("data/tasks") self.assertEqual(len(self.tasks), 1) task = self.tasks[0] project = Project.get_by(name=self.sg_task["project"]["name"]) task_type = \ TaskType.get_by(name=self.sg_task["step"]["name"]) task_status = TaskStatus.get_by( short_name=self.sg_task["sg_status_list"]) assets = assets_service.get_assets( {"shotgun_id": self.sg_task["entity"]["id"]}) entity = assets[0] assigner = Person.get_by( last_name=self.sg_task["created_by"]["name"].split(" ")[1]) assignee = Person.get_by( last_name=self.sg_task["task_assignees"][0]["name"].split(" ")[1]) self.assertEqual(task["name"], self.sg_task["cached_display_name"]) self.assertEqual(task["duration"], self.sg_task["duration"]) self.assertEqual(task["shotgun_id"], self.sg_task["id"]) self.assertEqual(task["project_id"], str(project.id)) self.assertEqual(task["task_type_id"], str(task_type.id)) self.assertEqual(task["task_status_id"], str(task_status.id)) self.assertEqual(task["entity_id"], entity["id"]) self.assertEqual(task["assigner_id"], str(assigner.id)) self.assertEqual(task["assignees"][0], str(assignee.id))
def save_task_type(self, department, data): task_type = TaskType.get_by(shotgun_id=data["shotgun_id"]) data["department_id"] = department.id if task_type is None: task_type = TaskType.get_by(name=data["name"]) if task_type is None: task_type = TaskType(**data) task_type.save() current_app.logger.info("Task Type created: %s" % task_type) else: task_type.update(data) current_app.logger.info("Task Type updated: %s" % task_type) return task_type
def guess_task_type(department_name, task_type_name): criterions = {"name": task_type_name} if len(department_name) > 0: criterions["department_id"] = Department.get_by( name=department_name).id return TaskType.get_by(**criterions)
def update_data(self, data, instance_id): name = data.get("name", None) if name is not None: task_type = TaskType.get_by(name=name) if task_type is not None and instance_id != str(task_type.id): raise ArgumentsException( "A task type with similar name already exists") return data
def get_or_create_task_type(departmemt, name, color="#888888"): task_type = TaskType.get_by(name=name) if task_type is None: task_type = TaskType( name=name, department_id=departmemt.id, color=color ) task_type.save() return task_type
def get_or_create_task_type(department, name, color="#888888", priority=1, for_shots=False): task_type = TaskType.get_by(name=name) if task_type is None: task_type = TaskType(name=name, department_id=department["id"], color=color, priority=priority, for_shots=for_shots) task_type.save() return task_type.serialize()
def save_task_type(self, department, data): task_type = TaskType.get_by(shotgun_id=data["shotgun_id"]) data["department_id"] = department.id if task_type is None: task_type = TaskType.get_by(name=data["name"], for_entity=data["for_entity"]) if task_type is None: task_type = TaskType(**data) task_type.save() current_app.logger.info("Task Type created: %s" % task_type) else: existing_task_type = TaskType.get_by( name=data["name"], for_entity=data["for_entity"], department_id=data["department_id"]) if existing_task_type is not None: data.pop("name", None) data.pop("for_entity", None) data.pop("department_id", None) task_type.update(data) current_app.logger.info("Task Type updated: %s" % task_type) return task_type