|
@ -1,14 +1,13 @@ |
|
|
import os |
|
|
import os |
|
|
|
|
|
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
from django.shortcuts import get_object_or_404 |
|
|
from django_drf_filepond.api import store_upload |
|
|
|
|
|
from django_drf_filepond.models import TemporaryUpload |
|
|
from django_drf_filepond.models import TemporaryUpload |
|
|
from rest_framework import status |
|
|
from rest_framework import status |
|
|
from rest_framework.permissions import IsAuthenticated |
|
|
from rest_framework.permissions import IsAuthenticated |
|
|
from rest_framework.response import Response |
|
|
from rest_framework.response import Response |
|
|
from rest_framework.views import APIView |
|
|
from rest_framework.views import APIView |
|
|
|
|
|
|
|
|
from .celery_tasks import import_dataset |
|
|
|
|
|
|
|
|
from .celery_tasks import import_dataset, upload_to_store |
|
|
from .pipeline.catalog import Options |
|
|
from .pipeline.catalog import Options |
|
|
from projects.models import Project |
|
|
from projects.models import Project |
|
|
from projects.permissions import IsProjectAdmin |
|
|
from projects.permissions import IsProjectAdmin |
|
@ -32,12 +31,16 @@ class DatasetImportAPI(APIView): |
|
|
upload_ids = request.data.pop("uploadIds") |
|
|
upload_ids = request.data.pop("uploadIds") |
|
|
file_format = request.data.pop("format") |
|
|
file_format = request.data.pop("format") |
|
|
|
|
|
|
|
|
tus = [TemporaryUpload.objects.get(upload_id=upload_id) for upload_id in upload_ids] |
|
|
|
|
|
sus = [ |
|
|
|
|
|
store_upload(tu.upload_id, destination_file_path=os.path.join(tu.file.name, tu.upload_name)) for tu in tus |
|
|
|
|
|
] |
|
|
|
|
|
filenames = [su.file.path for su in sus] |
|
|
|
|
|
|
|
|
temporary_uploads = TemporaryUpload.objects.filter(upload_id__in=upload_ids) |
|
|
|
|
|
file_paths = [tu.get_file_path() for tu in temporary_uploads] |
|
|
|
|
|
save_names = {tu.get_file_path(): os.path.join(tu.file.name, tu.upload_name) for tu in temporary_uploads} |
|
|
task = import_dataset.delay( |
|
|
task = import_dataset.delay( |
|
|
user_id=request.user.id, project_id=project_id, filenames=filenames, file_format=file_format, **request.data |
|
|
|
|
|
|
|
|
user_id=request.user.id, |
|
|
|
|
|
project_id=project_id, |
|
|
|
|
|
filenames=file_paths, |
|
|
|
|
|
file_format=file_format, |
|
|
|
|
|
save_names=save_names, |
|
|
|
|
|
**request.data, |
|
|
) |
|
|
) |
|
|
return Response({"task_id": task.task_id}) |
|
|
|
|
|
|
|
|
upload_task = upload_to_store.delay(upload_ids) |
|
|
|
|
|
return Response({"task_id": task.task_id, "uploadTaskId": upload_task.task_id}) |