From 25da46d13f3e759f5497baf6bb7fd94d1f672f1a Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 14 May 2025 11:21:00 +0800 Subject: [PATCH] fix: make desc field optional in KnowledgeFolder and ToolFolder models --- apps/application/serializers/__init__.py | 0 apps/folders/models/folder.py | 19 +++++++--- apps/folders/serializers/folder.py | 2 ++ .../0006_knowledgefolder_desc_and_more.py | 35 +++++++++++++++++++ apps/knowledge/models/knowledge.py | 1 + .../knowledge/serializers/knowledge_folder.py | 4 +-- apps/tools/migrations/0002_toolfolder_desc.py | 18 ++++++++++ apps/tools/models/tool.py | 1 + apps/tools/serializers/tool_folder.py | 4 +-- 9 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 apps/application/serializers/__init__.py create mode 100644 apps/knowledge/migrations/0006_knowledgefolder_desc_and_more.py create mode 100644 apps/tools/migrations/0002_toolfolder_desc.py diff --git a/apps/application/serializers/__init__.py b/apps/application/serializers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/apps/folders/models/folder.py b/apps/folders/models/folder.py index 319b1e092..6b89eefcd 100644 --- a/apps/folders/models/folder.py +++ b/apps/folders/models/folder.py @@ -3,13 +3,22 @@ from rest_framework import serializers class FolderCreateRequest(serializers.Serializer): - name = serializers.CharField(required=True, label=_('folder name')) + name = serializers.CharField(required=True, max_length=64, label=_('folder name')) + desc = serializers.CharField( + required=False, max_length=200, allow_null=True, allow_blank=True, label=_('folder description') + ) - parent_id = serializers.CharField(required=False, allow_null=True, allow_blank=True, default='root', - label=_('parent id')) + parent_id = serializers.CharField( + required=False, allow_null=True, allow_blank=True, default='root', label=_('parent id') + ) class FolderEditRequest(serializers.Serializer): name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('folder name')) - parent_id = serializers.CharField(required=False, allow_null=True, allow_blank=True, default='root', - label=_('parent id')) + desc = serializers.CharField( + required=False, max_length=200, allow_null=True, allow_blank=True, label=_('folder description') + ) + + parent_id = serializers.CharField( + required=False, allow_null=True, allow_blank=True, default='root', label=_('parent id') + ) diff --git a/apps/folders/serializers/folder.py b/apps/folders/serializers/folder.py index f77b8da1c..01f5b4d67 100644 --- a/apps/folders/serializers/folder.py +++ b/apps/folders/serializers/folder.py @@ -32,6 +32,7 @@ def get_folder_type(source): elif source == Group.APPLICATION.name: # todo app folder return None + # return ApplicationFolder elif source == Group.KNOWLEDGE.name: return KnowledgeFolder else: @@ -44,6 +45,7 @@ def get_folder_tree_serializer(source): elif source == Group.APPLICATION.name: # todo app folder return None + # return ApplicationFolderTreeSerializer elif source == Group.KNOWLEDGE.name: return KnowledgeFolderTreeSerializer else: diff --git a/apps/knowledge/migrations/0006_knowledgefolder_desc_and_more.py b/apps/knowledge/migrations/0006_knowledgefolder_desc_and_more.py new file mode 100644 index 000000000..8263556b8 --- /dev/null +++ b/apps/knowledge/migrations/0006_knowledgefolder_desc_and_more.py @@ -0,0 +1,35 @@ +# Generated by Django 5.2.1 on 2025-05-14 03:27 + +import django.db.models.deletion +import knowledge.models.knowledge +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('knowledge', '0005_remove_file_workspace_id_file_file_size_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='knowledgefolder', + name='desc', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='描述'), + ), + migrations.AlterField( + model_name='applicationknowledgemapping', + name='knowledge', + field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.knowledge'), + ), + migrations.AlterField( + model_name='document', + name='status', + field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'), + ), + migrations.AlterField( + model_name='paragraph', + name='status', + field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'), + ), + ] diff --git a/apps/knowledge/models/knowledge.py b/apps/knowledge/models/knowledge.py index 8d0ec9add..2a374c214 100644 --- a/apps/knowledge/models/knowledge.py +++ b/apps/knowledge/models/knowledge.py @@ -103,6 +103,7 @@ def default_model(): class KnowledgeFolder(MPTTModel, AppModelMixin): id = models.CharField(primary_key=True, max_length=64, editable=False, verbose_name="主键id") name = models.CharField(max_length=64, verbose_name="文件夹名称") + desc = models.CharField(max_length=200, null=True, blank=True, verbose_name="描述") user = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="用户id") workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True) parent = TreeForeignKey('self', on_delete=models.DO_NOTHING, null=True, blank=True, related_name='children') diff --git a/apps/knowledge/serializers/knowledge_folder.py b/apps/knowledge/serializers/knowledge_folder.py index 3ef61d0d4..cd91710da 100644 --- a/apps/knowledge/serializers/knowledge_folder.py +++ b/apps/knowledge/serializers/knowledge_folder.py @@ -8,7 +8,7 @@ class KnowledgeFolderTreeSerializer(serializers.ModelSerializer): class Meta: model = KnowledgeFolder - fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id', 'children'] + fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id', 'children'] def get_children(self, obj): return KnowledgeFolderTreeSerializer(obj.get_children(), many=True).data @@ -19,4 +19,4 @@ class KnowledgeFolderFlatSerializer(serializers.ModelSerializer): class Meta: model = KnowledgeFolder - fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id'] + fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id'] diff --git a/apps/tools/migrations/0002_toolfolder_desc.py b/apps/tools/migrations/0002_toolfolder_desc.py new file mode 100644 index 000000000..a4a2e1fb7 --- /dev/null +++ b/apps/tools/migrations/0002_toolfolder_desc.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.1 on 2025-05-14 03:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tools', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='toolfolder', + name='desc', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='描述'), + ), + ] diff --git a/apps/tools/models/tool.py b/apps/tools/models/tool.py index 8ae633c19..4927502f1 100644 --- a/apps/tools/models/tool.py +++ b/apps/tools/models/tool.py @@ -10,6 +10,7 @@ from users.models import User class ToolFolder(MPTTModel, AppModelMixin): id = models.CharField(primary_key=True, max_length=64, editable=False, verbose_name="主键id") name = models.CharField(max_length=64, verbose_name="文件夹名称") + desc = models.CharField(max_length=200, null=True, blank=True, verbose_name="描述") user = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="用户id") workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True) parent = TreeForeignKey('self', on_delete=models.DO_NOTHING, null=True, blank=True, related_name='children') diff --git a/apps/tools/serializers/tool_folder.py b/apps/tools/serializers/tool_folder.py index 28a938f17..f725b4c31 100644 --- a/apps/tools/serializers/tool_folder.py +++ b/apps/tools/serializers/tool_folder.py @@ -10,7 +10,7 @@ class ToolFolderTreeSerializer(serializers.ModelSerializer): class Meta: model = ToolFolder - fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id', 'children'] + fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id', 'children'] def get_children(self, obj): return ToolFolderTreeSerializer(obj.get_children(), many=True).data @@ -21,4 +21,4 @@ class ToolFolderFlatSerializer(serializers.ModelSerializer): class Meta: model = ToolFolder - fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id'] + fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id']