def get(self): """ Retrieve all entities that are not shot or sequence. Adds project name and asset type name and all related tasks. If episode_id is given as parameter, it returns assets not linked to an episode and assets linked to given episode. """ criterions = query.get_query_criterions_from_request(request) page = query.get_page_from_request(request) user_service.check_project_access(criterions.get("project_id", None)) assets = assets_service.get_assets_and_tasks(criterions, page) if "episode_id" in criterions: criterions["episode_id"] = None assets += assets_service.get_assets_and_tasks(criterions, page) return assets
def get_assets_data(self, project_id): results = assets_service.get_assets_and_tasks( {"project_id": project_id} ) return sorted( results, key=lambda asset: (asset["asset_type_name"], asset["name"]), )
def get(self): """ Retrieve all entities that are not shot or sequence. Adds project name and asset type name and all related tasks. """ criterions = query.get_query_criterions_from_request(request) page = query.get_page_from_request(request) user_service.check_project_access(criterions.get("project_id", None)) return assets_service.get_assets_and_tasks(criterions, page)
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 get(self): """ Retrieve all entities that are not shot or sequence. Adds project name and asset type name and all related tasks. If episode_id is given as parameter, it returns assets not linked to an episode and assets linked to given episode. """ criterions = query.get_query_criterions_from_request(request) page = query.get_page_from_request(request) check_criterion_access(criterions) if permissions.has_vendor_permissions(): criterions["assigned_to"] = persons_service.get_current_user( )["id"] return assets_service.get_assets_and_tasks(criterions, page)
def test_get_assets_and_tasks(self): self.generate_fixture_asset_types() self.generate_fixture_asset_character() self.generate_fixture_person() self.generate_fixture_assigner() self.generate_fixture_department() self.generate_fixture_task_status() self.generate_fixture_task_type() self.generate_fixture_task() self.generate_fixture_task(name="Secondary") assets = assets_service.get_assets_and_tasks() self.assertEqual(len(assets), 2) assets = sorted(assets, key=lambda asset: asset["name"]) self.assertEqual(len(assets[1]["tasks"]), 2) self.assertEqual(assets[1]["tasks"][0]["assignees"][0], str(self.person.id)) self.assertEqual(assets[1]["tasks"][0]["task_status_id"], str(self.task_status.id)) self.assertEqual(assets[1]["tasks"][0]["task_type_id"], str(self.task_type.id))
def get_assets_data(self, criterions): results = assets_service.get_assets_and_tasks(criterions) return sorted( results, key=lambda asset: (asset["asset_type_name"], asset["name"]), )