[Update] 修改节点树排序

pull/2682/head
ibuler 6 years ago
parent 61a37731ec
commit e2849be72c

@ -122,6 +122,7 @@ class NodeChildrenAsTreeApi(generics.ListAPIView):
nodes_invalid = Node.objects.exclude(key__startswith=self.node.key) nodes_invalid = Node.objects.exclude(key__startswith=self.node.key)
queryset.extend(list(nodes_invalid)) queryset.extend(list(nodes_invalid))
queryset = [node.as_tree_node() for node in queryset] queryset = [node.as_tree_node() for node in queryset]
queryset = sorted(queryset)
return queryset return queryset
def filter_assets(self, queryset): def filter_assets(self, queryset):

@ -44,7 +44,15 @@ class Node(OrgModelMixin):
return True return True
self_key = [int(k) for k in self.key.split(':')] self_key = [int(k) for k in self.key.split(':')]
other_key = [int(k) for k in other.key.split(':')] other_key = [int(k) for k in other.key.split(':')]
return self_key.__lt__(other_key) self_parent_key = self_key[:-1]
other_parent_key = other_key[:-1]
if self_parent_key == other_parent_key:
return self.name > other.name
if self_key != other_key:
return self_key > other_key
else:
return self.name > other.name
def __lt__(self, other): def __lt__(self, other):
return not self.__gt__(other) return not self.__gt__(other)
@ -305,5 +313,3 @@ class Node(OrgModelMixin):
for i in range(count): for i in range(count):
node = random.choice(cls.objects.all()) node = random.choice(cls.objects.all())
node.create_child('Node {}'.format(i)) node.create_child('Node {}'.format(i))

Loading…
Cancel
Save