Skip to content

Commit 48959a1

Browse files
committed
feat: add optional folder_id to tool import functionality
1 parent 117f882 commit 48959a1

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

apps/tools/serializers/tool.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ class Import(serializers.Serializer):
401401
file = UploadedFileField(required=True, label=_("file"))
402402
user_id = serializers.UUIDField(required=True, label=_("User ID"))
403403
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
404+
folder_id = serializers.CharField(required=False, allow_null=True, label=_("folder id"))
404405

405406
#
406407
@transaction.atomic
@@ -413,6 +414,10 @@ def import_(self, scope=ToolScope.WORKSPACE):
413414
tool_instance = RestrictedUnpickler(io.BytesIO(tool_instance_bytes)).load()
414415
except Exception as e:
415416
raise AppApiException(1001, _("Unsupported file format"))
417+
if self.data.get('folder_id') is None:
418+
folder_id = self.data.get('workspace_id')
419+
else:
420+
folder_id = self.data.get('folder_id')
416421
tool = tool_instance.tool
417422
tool_id = uuid.uuid7()
418423
tool_model = Tool(
@@ -424,7 +429,7 @@ def import_(self, scope=ToolScope.WORKSPACE):
424429
workspace_id=self.data.get('workspace_id'),
425430
input_field_list=tool.get('input_field_list'),
426431
init_field_list=tool.get('init_field_list', []),
427-
folder_id=self.data.get('workspace_id'),
432+
folder_id=folder_id,
428433
scope=scope,
429434
is_active=False
430435
)

apps/tools/views/tool.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,12 @@ class Import(APIView):
236236
@log(menu='Tool', operate='Import tool', )
237237
def post(self, request: Request, workspace_id: str):
238238
return result.success(ToolSerializer.Import(
239-
data={'workspace_id': workspace_id, 'file': request.FILES.get('file'), 'user_id': request.user.id}
239+
data={
240+
'workspace_id': workspace_id,
241+
'file': request.FILES.get('file'),
242+
'user_id': request.user.id,
243+
'folder_id': request.data.get('folder_id')
244+
}
240245
).import_(ToolScope.WORKSPACE))
241246

242247
class Export(APIView):

ui/src/views/tool/component/ToolListContainer.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,7 @@ const elUploadRef = ref()
554554
function importTool(file: any) {
555555
const formData = new FormData()
556556
formData.append('file', file.raw, file.name)
557+
formData.append('folder_id', folder.currentFolder.id || user.getWorkspaceId())
557558
elUploadRef.value.clearFiles()
558559
loadSharedApi({ type: 'tool', systemType: apiType.value })
559560
.postImportTool(formData, loading)

0 commit comments

Comments
 (0)