From 9a3d0732bcaae78e26374dbe24b856af97464541 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 24 Apr 2018 11:07:09 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9B=B4=E6=96=B0=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/serializers/asset.py | 34 ++++++++++++++++++++++++++++++-- apps/assets/serializers/node.py | 6 ++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/apps/assets/serializers/asset.py b/apps/assets/serializers/asset.py index bcb3b81b1..8556be3bf 100644 --- a/apps/assets/serializers/asset.py +++ b/apps/assets/serializers/asset.py @@ -4,9 +4,38 @@ from rest_framework import serializers from rest_framework_bulk.serializers import BulkListSerializer from common.mixins import BulkSerializerMixin -from ..models import Asset +from ..models import Asset, Node from .system_user import AssetSystemUserSerializer +__all__ = [ + 'AssetSerializer', 'AssetGrantedSerializer', 'MyAssetGrantedSerializer', +] + + +class NodeTMPSerializer(serializers.ModelSerializer): + parent = serializers.SerializerMethodField() + assets_amount = serializers.SerializerMethodField() + + class Meta: + model = Node + fields = ['id', 'key', 'value', 'parent', 'assets_amount', + 'is_asset'] + list_serializer_class = BulkListSerializer + + @staticmethod + def get_parent(obj): + return obj.parent.id + + @staticmethod + def get_assets_amount(obj): + return obj.get_all_assets().count() + + def get_fields(self): + fields = super().get_fields() + field = fields["key"] + field.required = False + return fields + class AssetSerializer(BulkSerializerMixin, serializers.ModelSerializer): """ @@ -33,12 +62,13 @@ class AssetGrantedSerializer(serializers.ModelSerializer): """ system_users_granted = AssetSystemUserSerializer(many=True, read_only=True) system_users_join = serializers.SerializerMethodField() + nodes = NodeTMPSerializer(many=True, read_only=True) class Meta: model = Asset fields = ( "id", "hostname", "ip", "port", "system_users_granted", - "is_active", "system_users_join", "os", 'domain', + "is_active", "system_users_join", "os", 'domain', "nodes", "platform", "comment" ) diff --git a/apps/assets/serializers/node.py b/apps/assets/serializers/node.py index 736b06c7e..1c9c385e9 100644 --- a/apps/assets/serializers/node.py +++ b/apps/assets/serializers/node.py @@ -7,6 +7,12 @@ from ..models import Asset, Node from .asset import AssetGrantedSerializer +__all__ = [ + 'NodeSerializer', "NodeGrantedSerializer", "NodeAddChildrenSerializer", + "NodeAssetsSerializer", +] + + class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer): """ 授权资产组