perf: 修改 app tree

pull/7866/head
ibuler 3 years ago committed by 老广
parent aedd8ba589
commit 4bfa88f01f

@ -13,13 +13,17 @@ class AppCategory(models.TextChoices):
def get_label(cls, category): def get_label(cls, category):
return dict(cls.choices).get(category, '') return dict(cls.choices).get(category, '')
@classmethod
def is_xpack(cls, category):
return category in ['remote_app']
class AppType(models.TextChoices): class AppType(models.TextChoices):
# db category # db category
mysql = 'mysql', 'MySQL' mysql = 'mysql', 'MySQL'
mariadb = 'mariadb', 'MariaDB'
oracle = 'oracle', 'Oracle' oracle = 'oracle', 'Oracle'
pgsql = 'postgresql', 'PostgreSQL' pgsql = 'postgresql', 'PostgreSQL'
mariadb = 'mariadb', 'MariaDB'
sqlserver = 'sqlserver', 'SQLServer' sqlserver = 'sqlserver', 'SQLServer'
redis = 'redis', 'Redis' redis = 'redis', 'Redis'
mongodb = 'mongodb', 'MongoDB' mongodb = 'mongodb', 'MongoDB'
@ -37,9 +41,13 @@ class AppType(models.TextChoices):
def category_types_mapper(cls): def category_types_mapper(cls):
return { return {
AppCategory.db: [ AppCategory.db: [
cls.mysql, cls.oracle, cls.pgsql, cls.mariadb, cls.sqlserver, cls.redis, cls.mongodb cls.mysql, cls.oracle, cls.pgsql, cls.mariadb,
cls.sqlserver, cls.redis, cls.mongodb
],
AppCategory.remote_app: [
cls.chrome, cls.mysql_workbench,
cls.vmware_client, cls.custom
], ],
AppCategory.remote_app: [cls.chrome, cls.mysql_workbench, cls.vmware_client, cls.custom],
AppCategory.cloud: [cls.k8s] AppCategory.cloud: [cls.k8s]
} }
@ -66,3 +74,12 @@ class AppType(models.TextChoices):
@classmethod @classmethod
def cloud_types(cls): def cloud_types(cls):
return [tp.value for tp in cls.category_types_mapper()[AppCategory.cloud]] return [tp.value for tp in cls.category_types_mapper()[AppCategory.cloud]]
@classmethod
def is_xpack(cls, tp):
tp_category_mapper = cls.type_category_mapper()
category = tp_category_mapper[tp]
if AppCategory.is_xpack(category):
return True
return tp in ['oracle', 'postgresql', 'sqlserver']

@ -3,6 +3,7 @@ from urllib.parse import urlencode, parse_qsl
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.conf import settings
from orgs.mixins.models import OrgModelMixin from orgs.mixins.models import OrgModelMixin
from common.mixins import CommonModelMixin from common.mixins import CommonModelMixin
@ -79,6 +80,8 @@ class ApplicationTreeNodeMixin:
nodes = [] nodes = []
categories = const.AppType.category_types_mapper().keys() categories = const.AppType.category_types_mapper().keys()
for category in categories: for category in categories:
if not settings.XPACK_ENABLED and const.AppCategory.is_xpack(category):
continue
i = cls.create_tree_id(pid, 'category', category.value) i = cls.create_tree_id(pid, 'category', category.value)
node = cls.create_choice_node( node = cls.create_choice_node(
category, i, pid=pid, tp='category', category, i, pid=pid, tp='category',
@ -97,6 +100,8 @@ class ApplicationTreeNodeMixin:
type_category_mapper = const.AppType.type_category_mapper() type_category_mapper = const.AppType.type_category_mapper()
types = const.AppType.type_category_mapper().keys() types = const.AppType.type_category_mapper().keys()
for tp in types: for tp in types:
if not settings.XPACK_ENABLED and const.AppType.is_xpack(tp):
continue
category = type_category_mapper.get(tp) category = type_category_mapper.get(tp)
pid = cls.create_tree_id(pid, 'category', category.value) pid = cls.create_tree_id(pid, 'category', category.value)
i = cls.create_tree_id(pid, 'type', tp.value) i = cls.create_tree_id(pid, 'type', tp.value)
@ -155,6 +160,8 @@ class ApplicationTreeNodeMixin:
# 应用的节点 # 应用的节点
for app in queryset: for app in queryset:
if not settings.XPACK_ENABLED and const.AppType.is_xpack(app.type):
continue
node = app.as_tree_node(root_node.id) node = app.as_tree_node(root_node.id)
tree_nodes.append(node) tree_nodes.append(node)
return tree_nodes return tree_nodes

Loading…
Cancel
Save