From eca245fdd5b956306df454dc0d59aa2e07c11085 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 27 Jul 2018 11:59:39 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=89=8D=E9=9D=A2=E6=9C=89=E4=B8=AA=E7=A9=BA=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/node.py | 7 ------- apps/assets/models/node.py | 15 +++++++++------ apps/assets/serializers/node.py | 7 +++++-- apps/assets/templates/assets/asset_list.html | 9 +++++---- .../templates/perms/asset_permission_list.html | 7 +++++-- apps/templates/_user_profile.html | 2 +- 6 files changed, 25 insertions(+), 22 deletions(-) diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index ff04ee492..471a096b6 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -42,13 +42,6 @@ class NodeViewSet(viewsets.ModelViewSet): permission_classes = (IsOrgAdmin,) serializer_class = serializers.NodeSerializer - def get_queryset(self): - # queryset = super(NodeViewSet, self).get_queryset() - print("API GET QUWRYSET") - # print(get_current_org()) - # print(queryset) - return Node.objects.all() - def perform_create(self, serializer): child_key = Node.root().get_next_child_key() serializer.validated_data["key"] = child_key diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py index 34becbdb6..e04b9a401 100644 --- a/apps/assets/models/node.py +++ b/apps/assets/models/node.py @@ -178,12 +178,15 @@ class Node(OrgModelMixin): # 如果使用current_org 在set_current_org时会死循环 _current_org = get_current_org() with transaction.atomic(): - set_current_org(Organization.root()) - org_nodes_roots = cls.objects.filter(key__regex=r'^[0-9]+$') - org_nodes_roots_keys = org_nodes_roots.values_list('key', flat=True) - max_value = max([int(k) for k in org_nodes_roots_keys]) if org_nodes_roots_keys else -1 - set_current_org(_current_org) - root = cls.objects.create(key=str(max_value+1), value=_current_org.name) + if _current_org.is_default(): + key = '0' + else: + set_current_org(Organization.root()) + org_nodes_roots = cls.objects.filter(key__regex=r'^[0-9]+$') + org_nodes_roots_keys = org_nodes_roots.values_list('key', flat=True) + key = max([int(k) for k in org_nodes_roots_keys]) + 1 + set_current_org(_current_org) + root = cls.objects.create(key=key, value=_current_org.name) return root @classmethod diff --git a/apps/assets/serializers/node.py b/apps/assets/serializers/node.py index 0352dfecc..3eca3276f 100644 --- a/apps/assets/serializers/node.py +++ b/apps/assets/serializers/node.py @@ -26,7 +26,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer): model = Node fields = [ 'id', 'key', 'name', 'value', 'parent', - 'assets_granted', 'assets_amount', + 'assets_granted', 'assets_amount', 'org_id', ] @staticmethod @@ -48,7 +48,10 @@ class NodeSerializer(serializers.ModelSerializer): class Meta: model = Node - fields = ['id', 'key', 'value', 'parent', 'assets_amount', 'is_node'] + fields = [ + 'id', 'key', 'value', 'parent', 'assets_amount', + 'is_node', 'org_id', + ] list_serializer_class = BulkListSerializer def validate(self, data): diff --git a/apps/assets/templates/assets/asset_list.html b/apps/assets/templates/assets/asset_list.html index 23d7fe001..270cc4c4f 100644 --- a/apps/assets/templates/assets/asset_list.html +++ b/apps/assets/templates/assets/asset_list.html @@ -406,10 +406,11 @@ function initTree() { var zNodes = []; $.get("{% url 'api-assets:node-list' %}", function(data, status){ $.each(data, function (index, value) { - value["pId"] = value["parent"]; - if (value["key"] === "0") { - value["open"] = true; - } + if (value["parent"] !== value["id"]){ + value["pId"] = value["parent"]; + } else { + value["isParent"] = true; + } value["name"] = value["value"] + ' (' + value['assets_amount'] + ')'; value['value'] = value['value']; }); diff --git a/apps/perms/templates/perms/asset_permission_list.html b/apps/perms/templates/perms/asset_permission_list.html index e9edd7637..013447901 100644 --- a/apps/perms/templates/perms/asset_permission_list.html +++ b/apps/perms/templates/perms/asset_permission_list.html @@ -240,9 +240,12 @@ function initTree() { var zNodes = []; $.get("{% url 'api-assets:node-children-2' %}?assets=1&all=", function(data, status){ $.each(data, function (index, value) { - value["pId"] = value["parent"]; + if (value["parent"] !== value["id"]){ + value["pId"] = value["parent"]; + } else { + value["isParent"] = true; + } value["name"] = value["value"]; - value["open"] = value["key"] === "0"; value["isParent"] = value["is_node"]; value["iconSkin"] = value["is_node"] ? null : 'file'; }); diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 6717fa771..f4129be9b 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -15,7 +15,7 @@