def post(self, task_id): ( name, mode, software_id, comment, revision, separator, ) = self.get_arguments() try: task = tasks_service.get_task(task_id) user_service.check_project_access(task["project_id"]) software = files_service.get_software(software_id) is_revision_set_by_user = revision != 0 if not is_revision_set_by_user: revision = files_service.get_next_working_file_revision( task_id, name ) file_path = file_tree_service.get_working_folder_path( task, mode=mode, software=software, name=name, sep=separator, revision=revision ) file_name = file_tree_service.get_working_file_name( task, mode=mode, revision=revision, software=software, name=name ) except MalformedFileTreeException as exception: return ( {"message": str(exception), "received_data": request.json}, 400, ) return {"path": file_path, "name": file_name}, 200
def test_get_working_folder_path_with_software(self): path = file_tree_service.get_working_folder_path( self.task.serialize(), software=self.software.serialize()) self.assertEqual( path, "/simple/productions/cosmos_landromat/assets/props/tree/shaders/" "blender")
def test_get_working_folder_path_shot(self): path = file_tree_service.get_working_folder_path( self.shot_task.serialize(), software=self.software_max.serialize()) self.assertEqual( path, "/simple/productions/cosmos_landromat/shots/s01/p01/animation/" "3dsmax")
def test_get_working_folder_path_with_separator(self): path = file_tree_service.get_working_folder_path( self.shot_task.serialize(), software=self.software_max.serialize(), sep="\\") self.assertEqual( path, "/simple\\productions\\cosmos_landromat\\shots\\s01\\p01\\" "animation\\3dsmax")
def post(self, project_id): project_id = self.get_arguments() project = projects_service.get_project(project_id) shots = shots_service.get_shots_and_tasks({"project_id": project_id}) assets = assets_service.get_assets_and_tasks( {"project_id": project_id}) paths = [] for shot in shots: tasks = shot['tasks'] for task in tasks: path = file_tree_service.get_working_folder_path(task) paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="components_output") paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="output_output") paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="slated_output") paths.append(path) for asset in assets: tasks = asset['tasks'] for task in tasks: path = file_tree_service.get_working_folder_path(task) paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="components_output") paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="output_output") paths.append(path) path = file_tree_service.get_working_folder_path( task, mode="slated_output") paths.append(path) try: for path in paths: if not os.path.exists(os.path.dirname(path)): os.makedirs(os.path.dirname(path)) except Exception as e: pass return paths, 200
def build_path(self, task, name, revision, software, sep, mode): folder_path = file_tree_service.get_working_folder_path( task, name=name, software=software, mode=mode ) file_name = file_tree_service.get_working_file_name( task, name=name, software=software, revision=revision, mode=mode ) return "%s%s%s" % (folder_path, sep, file_name)
def get_preview_path(self, task, name, revision): try: folder_path = file_tree_service.get_working_folder_path( task, name=name, mode="preview", revision=revision) file_name = file_tree_service.get_working_file_name( task, name=name, mode="preview", revision=revision) except MalformedFileTreeException: # No template for preview files. return {"folder_path": "", "file_name": ""} return {"folder_path": folder_path, "file_name": file_name}
def post(self, task_id): ( name, mode, software_id, comment, revision, separator ) = self.get_arguments() try: task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(task["project_id"]) software = files_service.get_software(software_id) is_revision_set_by_user = revision != 0 if not is_revision_set_by_user: revision = files_service.get_next_working_file_revision( task_id, name ) file_path = file_tree_service.get_working_folder_path( task, mode=mode, software=software, name=name, sep=separator ) file_name = file_tree_service.get_working_file_name( task, mode=mode, revision=revision, software=software, name=name ) except MalformedFileTreeException: return { "error": "Tree is not properly written, check modes and variables", "received_data": request.json, }, 400 return {"path": file_path, "name": file_name}, 200