mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: add optional folder_id to tool import functionality
This commit is contained in:
parent
117f882521
commit
48959a1e77
|
|
@ -401,6 +401,7 @@ class ToolSerializer(serializers.Serializer):
|
|||
file = UploadedFileField(required=True, label=_("file"))
|
||||
user_id = serializers.UUIDField(required=True, label=_("User ID"))
|
||||
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
|
||||
folder_id = serializers.CharField(required=False, allow_null=True, label=_("folder id"))
|
||||
|
||||
#
|
||||
@transaction.atomic
|
||||
|
|
@ -413,6 +414,10 @@ class ToolSerializer(serializers.Serializer):
|
|||
tool_instance = RestrictedUnpickler(io.BytesIO(tool_instance_bytes)).load()
|
||||
except Exception as e:
|
||||
raise AppApiException(1001, _("Unsupported file format"))
|
||||
if self.data.get('folder_id') is None:
|
||||
folder_id = self.data.get('workspace_id')
|
||||
else:
|
||||
folder_id = self.data.get('folder_id')
|
||||
tool = tool_instance.tool
|
||||
tool_id = uuid.uuid7()
|
||||
tool_model = Tool(
|
||||
|
|
@ -424,7 +429,7 @@ class ToolSerializer(serializers.Serializer):
|
|||
workspace_id=self.data.get('workspace_id'),
|
||||
input_field_list=tool.get('input_field_list'),
|
||||
init_field_list=tool.get('init_field_list', []),
|
||||
folder_id=self.data.get('workspace_id'),
|
||||
folder_id=folder_id,
|
||||
scope=scope,
|
||||
is_active=False
|
||||
)
|
||||
|
|
|
|||
|
|
@ -236,7 +236,12 @@ class ToolView(APIView):
|
|||
@log(menu='Tool', operate='Import tool', )
|
||||
def post(self, request: Request, workspace_id: str):
|
||||
return result.success(ToolSerializer.Import(
|
||||
data={'workspace_id': workspace_id, 'file': request.FILES.get('file'), 'user_id': request.user.id}
|
||||
data={
|
||||
'workspace_id': workspace_id,
|
||||
'file': request.FILES.get('file'),
|
||||
'user_id': request.user.id,
|
||||
'folder_id': request.data.get('folder_id')
|
||||
}
|
||||
).import_(ToolScope.WORKSPACE))
|
||||
|
||||
class Export(APIView):
|
||||
|
|
|
|||
|
|
@ -554,6 +554,7 @@ const elUploadRef = ref()
|
|||
function importTool(file: any) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file.raw, file.name)
|
||||
formData.append('folder_id', folder.currentFolder.id || user.getWorkspaceId())
|
||||
elUploadRef.value.clearFiles()
|
||||
loadSharedApi({ type: 'tool', systemType: apiType.value })
|
||||
.postImportTool(formData, loading)
|
||||
|
|
|
|||
Loading…
Reference in New Issue