def generate_fixture_task(self, name="Master", entity_id=None, task_type_id=None): if entity_id is None: entity_id = self.asset.id if task_type_id is None: task_type_id = self.task_type.id start_date = fields.get_date_object("2017-02-20") due_date = fields.get_date_object("2017-02-28") real_start_date = fields.get_date_object("2017-02-22") self.task = Task.create(name=name, project_id=self.project.id, task_type_id=task_type_id, task_status_id=self.task_status.id, entity_id=entity_id, assignees=[self.person], assigner_id=self.assigner.id, duration=50, estimation=40, start_date=start_date, due_date=due_date, real_start_date=real_start_date) self.task_id = self.task.id self.project.team.append(self.person) self.project.save() return self.task
def create_task(task_type, entity, name="main"): """ Create a new task for given task type and entity. """ task_status = get_todo_status() try: try: current_user_id = persons_service.get_current_user()["id"] except RuntimeError: current_user_id = None task = Task.create( name=name, duration=0, estimation=0, completion_rate=0, start_date=None, end_date=None, due_date=None, real_start_date=None, project_id=entity["project_id"], task_type_id=task_type["id"], task_status_id=task_status["id"], entity_id=entity["id"], assigner_id=current_user_id, assignees=[], ) task_dict = _finalize_task_creation(task_type, task_status, task) return task_dict except IntegrityError: pass # Tasks already exists, no need to create it. return None
def generate_fixture_shot_task_standard(self): self.shot_task_standard = Task.create( name="Super animation", project_id=self.project_standard.id, task_type_id=self.task_type_animation.id, task_status_id=self.task_status.id, entity_id=self.shot_standard.id, assignees=[self.person], assigner_id=self.assigner.id)
def generate_fixture_sequence_task(self, name="Master"): self.sequence_task = Task.create( name=name, project_id=self.project.id, task_type_id=self.task_type_animation.id, task_status_id=self.task_status.id, entity_id=self.sequence.id, assignees=[self.person], assigner_id=self.assigner.id, )
def generate_fixture_scene_task(self, name="Master"): self.scene_task = Task.create( name=name, project_id=self.project.id, task_type_id=self.task_type_animation.id, task_status_id=self.task_status.id, entity_id=self.scene.id, assignees=[self.person], assigner_id=self.assigner.id, ) self.project.team.append(self.person) self.project.save() return self.scene_task
def create_task(task_type, entity, name="main"): """ Create a new task for given task type and entity. """ task_status = get_todo_status() try: try: current_user_id = persons_service.get_current_user()["id"] except RuntimeError: current_user_id = None task = Task.create( name=name, duration=0, estimation=0, completion_rate=0, start_date=None, end_date=None, due_date=None, real_start_date=None, project_id=entity["project_id"], task_type_id=task_type["id"], task_status_id=task_status["id"], entity_id=entity["id"], assigner_id=current_user_id, assignees=[], ) task_dict = task.serialize(relations=True) task_dict.update( { "task_status_id": task_status["id"], "task_status_name": task_status["name"], "task_status_short_name": task_status["short_name"], "task_status_color": task_status["color"], "task_type_id": task_type["id"], "task_type_name": task_type["name"], "task_type_color": task_type["color"], "task_type_priority": task_type["priority"], } ) events.emit( "task:new", {"task_id": task.id}, project_id=entity["project_id"] ) return task_dict except IntegrityError: pass # Tasks already exists, no need to create it.
def generate_fixture_edit_task(self, name="Edit", task_type_id=None): if task_type_id is None: task_type_id = self.task_type_edit.id self.edit_task = Task.create( name=name, project_id=self.project.id, task_type_id=task_type_id, task_status_id=self.task_status.id, entity_id=self.edit.id, assignees=[self.person], assigner_id=self.assigner.id, ) self.project.team.append(self.person) self.project.save() return self.edit_task
def generate_fixture_task_standard(self): start_date = fields.get_date_object("2017-02-20") due_date = fields.get_date_object("2017-02-28") real_start_date = fields.get_date_object("2017-02-22") self.task_standard = Task.create(name="Super modeling", project_id=self.project_standard.id, task_type_id=self.task_type.id, task_status_id=self.task_status.id, entity_id=self.asset_standard.id, assignees=[self.person], assigner_id=self.assigner.id, duration=50, estimation=40, start_date=start_date, due_date=due_date, real_start_date=real_start_date)
def import_row(self, row): project_name = row["Project"] department_name = row["Department"] task_type_name = row["Task Type"] task_status_name = row["Task Status"] entity_type_name = row["Asset Type"] entity_name = row["Asset"] episode_name = row["Episode"] sequence_name = row["Sequence"] shot_name = row["Shot"] name = row["Name"] assigner_name = row["Assigner"] assignee_name = row["Assignee"] duration = int(row["Duration"]) * 3600 estimation = int(row["Estimation"]) * 3600 start_date = self.normalize_date(row["Start Date"]) real_start_date = self.normalize_date(row["Real Start Date"]) due_date = self.normalize_date(row["Due Date"]) end_date = self.normalize_date(row["End Date"]) self.add_to_cache_if_absent(self.task_statuses, tasks_service.get_or_create_status, task_status_name) task_status_id = self.get_id_from_cache(self.task_statuses, task_status_name) self.add_to_cache_if_absent(self.departments, tasks_service.get_or_create_department, department_name) department_id = self.get_id_from_cache(self.departments, department_name) task_type_key = "%s-%s" % (department_id, task_type_name) if task_type_key not in self.task_types: department = self.departments[department_name] self.task_types[task_type_key] = \ tasks_service.get_or_create_task_type( department, task_type_name ) task_type_id = self.get_id_from_cache(self.task_types, task_type_key) project_id = self.projects[project_name].id assigner_id = self.persons[assigner_name].id assignee = self.persons.get(assignee_name, None) if len(shot_name) > 0: episode_id = self.episodes[str(project_id) + episode_name]["id"] sequence_id = self.sequences[str(project_id) + str(episode_id) + sequence_name]["id"] entity_id = self.shots[str(project_id) + str(sequence_id) + shot_name]["id"] else: entity_type_id = self.entity_types[entity_type_name].id entity_id = self.entities[str(project_id) + str(entity_type_id) + entity_name].id task = Task.create(name=name, project_id=project_id, task_type_id=task_type_id, entity_id=entity_id, task_status_id=task_status_id, assigner_id=assigner_id, duration=duration, estimation=estimation, start_date=start_date, end_date=end_date, real_start_date=real_start_date, due_date=due_date) if assignee is not None: task.assignees.append(assignee) task.save() return task