def generate_fixture_output_file(self, output_type=None, revision=1, name="main", task=None): if output_type is None: output_type = self.output_type if task is None: task_type_id = self.task_type.id entity_id = self.entity.id else: task_type_id = task.task_type_id entity_id = task.entity_id self.output_file = OutputFile.create( comment="", revision=revision, task_type_id=task_type_id, entity_id=entity_id, person_id=self.person.id, file_status_id=self.file_status.id, output_type_id=output_type.id, name=name) return self.output_file
def generate_fixture_output_file( self, output_type=None, revision=1, name="main", representation="", asset_instance=None, temporal_entity_id=None, task=None, ): if output_type is None: output_type = self.output_type if task is None: task_type_id = self.task_type.id asset_id = self.asset.id else: task_type_id = task.task_type_id asset_id = task.entity_id if asset_instance is None: asset_instance_id = None else: asset_instance_id = asset_instance.id if temporal_entity_id is None: temporal_entity_id = self.scene.id self.output_file = OutputFile.create( comment="", revision=revision, task_type_id=task_type_id, entity_id=asset_id, person_id=self.person.id, file_status_id=self.file_status.id, output_type_id=output_type.id, asset_instance_id=asset_instance_id, representation=representation, temporal_entity_id=temporal_entity_id, name=name, ) return self.output_file
def create_new_output_revision(entity_id, working_file_id, output_type_id, person_id, task_type_id, revision=0, representation="", name="main", comment="", extension="", nb_elements=1, asset_instance_id=None, temporal_entity_id=None): """ Create a new ouput file for given entity. Output type, task type, author and source file are required. The revision is set as next revision available but it can be forced. An extension and a name can be set too. An asset instance can be given too. In that case, the output file is linked to the asset instance. The `temporal_entity_id` concerns only asset instance output files. It is here to describe if the output is generated in the context of a shot or in the context of a scene. """ if revision < 1: try: output_file = get_last_output_revision( entity_id, output_type_id, task_type_id, name=name, asset_instance_id=asset_instance_id, temporal_entity_id=temporal_entity_id) revision = output_file["revision"] + 1 except NoOutputFileException: revision = 1 file_status_id = get_default_status()["id"] try: output_file = OutputFile.get_by(name=name, entity_id=entity_id, asset_instance_id=asset_instance_id, output_type_id=output_type_id, task_type_id=task_type_id, temporal_entity_id=temporal_entity_id, representation=representation, revision=revision) if output_file is None: output_file = OutputFile.create( name=name, comment=comment, extension=extension, representation=representation, revision=revision, entity_id=entity_id, asset_instance_id=asset_instance_id, person_id=person_id, source_file_id=working_file_id, output_type_id=output_type_id, file_status_id=file_status_id, task_type_id=task_type_id, nb_elements=nb_elements, temporal_entity_id=temporal_entity_id) events.emit("output_file:new", {"output_file_id": output_file.id}) else: raise EntryAlreadyExistsException except IntegrityError: raise EntryAlreadyExistsException return output_file.serialize()