mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: implement web knowledge synchronization with ForkManage and related handlers
This commit is contained in:
parent
ee37d7c320
commit
0df7c7247d
|
|
@ -7,8 +7,9 @@ from django.utils.translation import gettext_lazy as _
|
|||
from rest_framework import serializers
|
||||
|
||||
from common.constants.permission_constants import Group
|
||||
from knowledge.models import KnowledgeFolder
|
||||
from folders.api.folder import FolderCreateRequest
|
||||
from knowledge.models import KnowledgeFolder
|
||||
from knowledge.serializers.knowledge_folder import KnowledgeFolderTreeSerializer
|
||||
from tools.models import ToolFolder
|
||||
from tools.serializers.tool_folder import ToolFolderTreeSerializer
|
||||
|
||||
|
|
@ -25,6 +26,18 @@ def get_folder_type(source):
|
|||
return None
|
||||
|
||||
|
||||
def get_folder_tree_serializer(source):
|
||||
if source == Group.TOOL.name:
|
||||
return ToolFolderTreeSerializer
|
||||
elif source == Group.APPLICATION.name:
|
||||
# todo app folder
|
||||
return None
|
||||
elif source == Group.KNOWLEDGE.name:
|
||||
return KnowledgeFolderTreeSerializer
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
FOLDER_DEPTH = 2 # Folder 不能超过3层
|
||||
|
||||
|
||||
|
|
@ -161,5 +174,6 @@ class FolderTreeSerializer(serializers.Serializer):
|
|||
Q(name__contains=name)).get_cached_trees()
|
||||
else:
|
||||
nodes = Folder.objects.filter(Q(workspace_id=self.data.get('workspace_id'))).get_cached_trees()
|
||||
serializer = ToolFolderTreeSerializer(nodes, many=True)
|
||||
TreeSerializer = get_folder_tree_serializer(self.data.get('source'))
|
||||
serializer = TreeSerializer(nodes, many=True)
|
||||
return serializer.data # 这是可序列化的字典
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from knowledge.models import KnowledgeFolder
|
||||
|
||||
|
||||
class KnowledgeFolderTreeSerializer(serializers.ModelSerializer):
|
||||
children = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = KnowledgeFolder
|
||||
fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id', 'children']
|
||||
|
||||
def get_children(self, obj):
|
||||
return KnowledgeFolderTreeSerializer(obj.get_children(), many=True).data
|
||||
|
|
@ -14,7 +14,7 @@ import yaml
|
|||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
||||
logger = logging.getLogger('smartdoc.conf')
|
||||
logger = logging.getLogger('maxkb.conf')
|
||||
|
||||
|
||||
class Config(dict):
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from maxkb import settings
|
|||
from .heartbeat import *
|
||||
|
||||
# set the default Django settings module for the 'celery' program.
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartdoc.settings')
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maxkb.settings')
|
||||
|
||||
app = Celery('MaxKB')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue