feat: 应用按类型筛选可以指定多个类型

pull/6494/head^2
xinwen 2021-07-16 17:09:06 +08:00 committed by 老广
parent c21217d50c
commit 3f0a0b33b5
4 changed files with 20 additions and 6 deletions

View File

@ -1,11 +1,11 @@
# coding: utf-8
#
from orgs.mixins.api import OrgBulkModelViewSet
from ..hands import IsOrgAdminOrAppUser
from .. import serializers
from ..models import Application
from applications.filters import ApplicationFilter
__all__ = ['ApplicationViewSet']
@ -13,7 +13,7 @@ __all__ = ['ApplicationViewSet']
class ApplicationViewSet(OrgBulkModelViewSet):
model = Application
filterset_fields = ('name', 'type', 'category')
search_fields = filterset_fields
filterset_class = ApplicationFilter
search_fields = ('name', 'type', 'category')
permission_classes = (IsOrgAdminOrAppUser,)
serializer_class = serializers.ApplicationSerializer

View File

@ -0,0 +1,12 @@
from django_filters import rest_framework as filters
from .models import Application
from applications import const
class ApplicationFilter(filters.FilterSet):
type = filters.MultipleChoiceFilter(choices=const.ApplicationTypeChoices.choices)
class Meta:
model = Application
fields = ['id', 'name', 'category', 'type', 'comment']

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
#
from applications.models import Application
from applications.filters import ApplicationFilter
from perms.models import ApplicationPermission
from perms import serializers
from ..base import BasePermissionViewSet
@ -12,8 +13,8 @@ class ApplicationPermissionViewSet(BasePermissionViewSet):
"""
model = ApplicationPermission
serializer_class = serializers.ApplicationPermissionSerializer
filterset_fields = ['name', 'category', 'type']
search_fields = filterset_fields
filterset_class = ApplicationFilter
search_fields = ['name', 'category', 'type']
custom_filter_fields = BasePermissionViewSet.custom_filter_fields + [
'application_id', 'application'
]

View File

@ -3,6 +3,7 @@
from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from applications.filters import ApplicationFilter
from common.mixins.api import CommonApiMixin
from applications.api.mixin import (
SerializeApplicationToTreeNodeMixin
@ -25,7 +26,7 @@ __all__ = [
class AllGrantedApplicationsMixin(CommonApiMixin, ListAPIView):
only_fields = serializers.ApplicationGrantedSerializer.Meta.only_fields
serializer_class = serializers.ApplicationGrantedSerializer
filterset_fields = ['id', 'name', 'category', 'type', 'comment']
filterset_class = ApplicationFilter
search_fields = ['name', 'comment']
user: None