• BaiJiangJie's avatar
    [Update] 添加用户授权资产列表页的分页,搜索,排序 (#1963) · 82d866db
    BaiJiangJie authored
    * [Update] 分页获取用户授权资产
    
    * [Update] 修改前端-用户授权资产分页
    
    * [Update] 用户授权资产支持搜索
    
    * [Update] 用户授权资产支持排序
    
    * [Update] 用户授权的节点with资产Api,对资产进行排序
    
    * [Update] 获取用户授权的节点下的资产的api,进行分页、排序、查询
    
    * [Update] 抽象用户授权资产列表的查询,排序
    
    * [Update] 优化小细节
    
    * [Update] 删除无用导入
    
    * [Update] 修改AssetFilterMixins目录从common到perms
    
    * [Update] 资产授权规则列表: 添加分页、搜索
    
    * [Update] 添加管理用户,系统用户列表分页、搜索
    
    * [Update] 用户组列表添加分页,搜索
    
    * [Update] 资产标签列表添加分页、搜索
    
    * [Update] 网域网关列表添加分页、搜索
    
    * [Update] 命令过滤列表添加分页、搜索,修改翻译小细节
    
    * [Update] 删除前端注释initDataTable
    
    * [Update] 修改文案,资产组-节点
    
    * [Update] 普通用户资产列表添加分页、搜索
    82d866db
mixins.py 1.01 KB
# ~*~ coding: utf-8 ~*~
#


class AssetsFilterMixin(object):
    """
    对资产进行过滤(查询,排序)
    """

    def filter_queryset(self, queryset):
        queryset = self.search_assets(queryset)
        queryset = self.sort_assets(queryset)
        return queryset

    def search_assets(self, queryset):
        from perms.utils import is_obj_attr_has
        value = self.request.query_params.get('search')
        if not value:
            return queryset
        queryset = [asset for asset in queryset if is_obj_attr_has(asset, value)]
        return queryset

    def sort_assets(self, queryset):
        from perms.utils import sort_assets
        order_by = self.request.query_params.get('order')
        if not order_by:
            order_by = 'hostname'

        if order_by.startswith('-'):
            order_by = order_by.lstrip('-')
            reverse = True
        else:
            reverse = False

        queryset = sort_assets(queryset, order_by=order_by, reverse=reverse)
        return queryset