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"))
|
file = UploadedFileField(required=True, label=_("file"))
|
||||||
user_id = serializers.UUIDField(required=True, label=_("User ID"))
|
user_id = serializers.UUIDField(required=True, label=_("User ID"))
|
||||||
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
|
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
|
||||||
|
folder_id = serializers.CharField(required=False, allow_null=True, label=_("folder id"))
|
||||||
|
|
||||||
#
|
#
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
@ -413,6 +414,10 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
tool_instance = RestrictedUnpickler(io.BytesIO(tool_instance_bytes)).load()
|
tool_instance = RestrictedUnpickler(io.BytesIO(tool_instance_bytes)).load()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise AppApiException(1001, _("Unsupported file format"))
|
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 = tool_instance.tool
|
||||||
tool_id = uuid.uuid7()
|
tool_id = uuid.uuid7()
|
||||||
tool_model = Tool(
|
tool_model = Tool(
|
||||||
@ -424,7 +429,7 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
workspace_id=self.data.get('workspace_id'),
|
workspace_id=self.data.get('workspace_id'),
|
||||||
input_field_list=tool.get('input_field_list'),
|
input_field_list=tool.get('input_field_list'),
|
||||||
init_field_list=tool.get('init_field_list', []),
|
init_field_list=tool.get('init_field_list', []),
|
||||||
folder_id=self.data.get('workspace_id'),
|
folder_id=folder_id,
|
||||||
scope=scope,
|
scope=scope,
|
||||||
is_active=False
|
is_active=False
|
||||||
)
|
)
|
||||||
|
|||||||
@ -236,7 +236,12 @@ class ToolView(APIView):
|
|||||||
@log(menu='Tool', operate='Import tool', )
|
@log(menu='Tool', operate='Import tool', )
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Import(
|
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))
|
).import_(ToolScope.WORKSPACE))
|
||||||
|
|
||||||
class Export(APIView):
|
class Export(APIView):
|
||||||
|
|||||||
@ -554,6 +554,7 @@ const elUploadRef = ref()
|
|||||||
function importTool(file: any) {
|
function importTool(file: any) {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('file', file.raw, file.name)
|
formData.append('file', file.raw, file.name)
|
||||||
|
formData.append('folder_id', folder.currentFolder.id || user.getWorkspaceId())
|
||||||
elUploadRef.value.clearFiles()
|
elUploadRef.value.clearFiles()
|
||||||
loadSharedApi({ type: 'tool', systemType: apiType.value })
|
loadSharedApi({ type: 'tool', systemType: apiType.value })
|
||||||
.postImportTool(formData, loading)
|
.postImportTool(formData, loading)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user