Esempio n. 1
0
 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
Esempio n. 2
0
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()
Esempio n. 3
0
    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))
Esempio n. 4
0
    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
Esempio n. 5
0
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)
Esempio n. 6
0
 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
Esempio n. 7
0
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
Esempio n. 8
0
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()
Esempio n. 9
0
    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