Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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))
Exemplo n.º 3
0
    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())
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 def list_projects(self, request):
     projects = list_projects(request.user.token.access_token)
     return Response(projects)