From e5250294b0c171e28db1aa3b4ca6f31f096186a4 Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Fri, 18 Oct 2019 15:12:17 +0800 Subject: [PATCH] Dev export (#3355) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] 修复导出资产csv文件为空的问题 * [Update] 修改获取系统用户 API 只返回节点数量 --- apps/assets/filters.py | 2 +- apps/assets/models/user.py | 4 ++++ apps/assets/serializers/system_user.py | 5 +++-- apps/assets/templates/assets/asset_list.html | 3 ++- apps/common/filters.py | 1 - 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/assets/filters.py b/apps/assets/filters.py index 46df36ee7..b68d9d127 100644 --- a/apps/assets/filters.py +++ b/apps/assets/filters.py @@ -53,7 +53,7 @@ class AssetByNodeFilterBackend(filters.BaseFilterBackend): return queryset if node is None: - return queryset.none() + return queryset query_all = self.is_query_all(request) if query_all: pattern = node.get_all_children_pattern(with_self=True) diff --git a/apps/assets/models/user.py b/apps/assets/models/user.py index d3447b8ba..443c32981 100644 --- a/apps/assets/models/user.py +++ b/apps/assets/models/user.py @@ -120,6 +120,10 @@ class SystemUser(AssetUser): def __str__(self): return '{0.name}({0.username})'.format(self) + @property + def nodes_amount(self): + return self.nodes.all().count() + @property def login_mode_display(self): return self.get_login_mode_display() diff --git a/apps/assets/serializers/system_user.py b/apps/assets/serializers/system_user.py index 3194f2fb6..1340741e6 100644 --- a/apps/assets/serializers/system_user.py +++ b/apps/assets/serializers/system_user.py @@ -26,13 +26,14 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer): fields = [ 'id', 'name', 'username', 'password', 'public_key', 'private_key', 'login_mode', 'login_mode_display', 'priority', 'protocol', - 'auto_push', 'cmd_filters', 'sudo', 'shell', 'comment', 'nodes', - 'assets_amount', 'auto_generate_key' + 'auto_push', 'cmd_filters', 'sudo', 'shell', 'comment', + 'assets_amount', 'nodes_amount', 'auto_generate_key' ] extra_kwargs = { 'password': {"write_only": True}, 'public_key': {"write_only": True}, 'private_key': {"write_only": True}, + 'nodes_amount': {'label': _('Node')}, 'assets_amount': {'label': _('Asset')}, 'login_mode_display': {'label': _('Login mode display')}, 'created_by': {'read_only': True}, diff --git a/apps/assets/templates/assets/asset_list.html b/apps/assets/templates/assets/asset_list.html index b9892790d..da0a6bd5d 100644 --- a/apps/assets/templates/assets/asset_list.html +++ b/apps/assets/templates/assets/asset_list.html @@ -292,7 +292,8 @@ $(document).ready(function(){ format: 'csv', params: { search: search, - node_id: current_node_id || '' + node_id: current_node_id || '', + show_current_asset: getCookie('show_current_asset') } }; APIExportData(props); diff --git a/apps/common/filters.py b/apps/common/filters.py index 7792ff088..81138120b 100644 --- a/apps/common/filters.py +++ b/apps/common/filters.py @@ -63,7 +63,6 @@ class IDSpmFilter(filters.BaseFilterBackend): cache_key = const.KEY_CACHE_RESOURCES_ID.format(spm) resources_id = cache.get(cache_key) if not resources_id or not isinstance(resources_id, list): - queryset = queryset.none() return queryset queryset = queryset.filter(id__in=resources_id) return queryset