def list_instance(self, filter_obj: FancyDict, page_obj: Page, **options) -> ListResult: projects = list_projects(get_system_token()) results = [{ 'id': p['project_id'], 'display_name': p['project_name'] } for p in projects[page_obj.slice_from:page_obj.slice_to]] return ListResult(results=results, count=len(projects))
def fetch_instance_info(self, filter_obj: FancyDict, **options) -> ListResult: query_params = {'project_ids': ','.join(filter_obj.ids)} projects = list_projects(get_system_token(), query_params) results = [{ 'id': p['project_id'], 'display_name': p['project_name'] } for p in projects] return ListResult(results=results, count=len(results))
def list_projects(self, request): """ 提供查询项目列表的功能, 同时能够根据 project_code 或 project_name 过滤项目 """ project_code = request.query_params.get("project_code") project_name = request.query_params.get("project_name") access_token = request.user.token.access_token if project_code: projects = Project.list_projects(access_token, {"english_names": project_code}) elif project_name: projects = Project.list_projects(access_token, {"project_names": project_name}) else: projects = Project.list_projects(access_token) if not projects: return Response(projects) projects.sort(key=operator.itemgetter('created_at'), reverse=True) return PermsResponse(projects, ProjectRequest())
def filter_projects(self, request): project_code = request.query_params.get("project_code") project_name = request.query_params.get("project_name") with_permissions_field = request.query_params.get( "with_permissions_field") access_token = request.user.token.access_token if project_code: projects = Project.list_projects(access_token, {"english_names": project_code}) elif project_name: projects = Project.list_projects(access_token, {"project_names": project_name}) else: projects = Project.list_projects(access_token) if not projects: return Response(projects) if with_permissions_field != "false": # 需要权限字段 self._add_permissions_field(projects, request.user.username) projects.sort(key=lambda p: p.get("created_at", ""), reverse=True) return Response(projects)
def list_projects(self, request): projects = list_projects(request.user.token.access_token) return Response(projects)