Skip to content

Commit 0df7c72

Browse files
committed
feat: implement web knowledge synchronization with ForkManage and related handlers
1 parent ee37d7c commit 0df7c72

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

apps/folders/serializers/folder.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
from rest_framework import serializers
88

99
from common.constants.permission_constants import Group
10-
from knowledge.models import KnowledgeFolder
1110
from folders.api.folder import FolderCreateRequest
11+
from knowledge.models import KnowledgeFolder
12+
from knowledge.serializers.knowledge_folder import KnowledgeFolderTreeSerializer
1213
from tools.models import ToolFolder
1314
from tools.serializers.tool_folder import ToolFolderTreeSerializer
1415

@@ -25,6 +26,18 @@ def get_folder_type(source):
2526
return None
2627

2728

29+
def get_folder_tree_serializer(source):
30+
if source == Group.TOOL.name:
31+
return ToolFolderTreeSerializer
32+
elif source == Group.APPLICATION.name:
33+
# todo app folder
34+
return None
35+
elif source == Group.KNOWLEDGE.name:
36+
return KnowledgeFolderTreeSerializer
37+
else:
38+
return None
39+
40+
2841
FOLDER_DEPTH = 2 # Folder 不能超过3层
2942

3043

@@ -161,5 +174,6 @@ def get_folder_tree(self, name=None):
161174
Q(name__contains=name)).get_cached_trees()
162175
else:
163176
nodes = Folder.objects.filter(Q(workspace_id=self.data.get('workspace_id'))).get_cached_trees()
164-
serializer = ToolFolderTreeSerializer(nodes, many=True)
177+
TreeSerializer = get_folder_tree_serializer(self.data.get('source'))
178+
serializer = TreeSerializer(nodes, many=True)
165179
return serializer.data # 这是可序列化的字典
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from rest_framework import serializers
2+
3+
from knowledge.models import KnowledgeFolder
4+
5+
6+
class KnowledgeFolderTreeSerializer(serializers.ModelSerializer):
7+
children = serializers.SerializerMethodField()
8+
9+
class Meta:
10+
model = KnowledgeFolder
11+
fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id', 'children']
12+
13+
def get_children(self, obj):
14+
return KnowledgeFolderTreeSerializer(obj.get_children(), many=True).data

apps/maxkb/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
1616
PROJECT_DIR = os.path.dirname(BASE_DIR)
17-
logger = logging.getLogger('smartdoc.conf')
17+
logger = logging.getLogger('maxkb.conf')
1818

1919

2020
class Config(dict):

apps/ops/celery/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from .heartbeat import *
1010

1111
# set the default Django settings module for the 'celery' program.
12-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartdoc.settings')
12+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maxkb.settings')
1313

1414
app = Celery('MaxKB')
1515

0 commit comments

Comments
 (0)