Example #1
0
 def validate(self, data):
     if data.get("logo") and data.get("logo_path"):
         data["logo"] = filer_image_from_upload(
             self.context["request"], path=data["logo_path"], upload_data=data["logo"])
     elif data.get("logo"):
         raise serializers.ValidationError("Path is required when sending a manufacturer logo.")
     return data
Example #2
0
def media_upload(request, *args, **kwargs):
    shop = get_shop(request)
    try:
        folder_id = int(request.POST.get("folder_id") or request.GET.get("folder_id") or 0)
        path = request.POST.get("path") or request.GET.get("path") or None
        if folder_id != 0:
            folder = _get_folder_query(shop).get(pk=folder_id)
        elif path:
            folder = get_or_create_folder(shop, path)
        else:
            folder = None  # Root folder upload. How bold!
    except Exception as exc:
        return JsonResponse({"error": "Invalid folder: %s" % force_text(exc)})

    try:
        upload_file = request.FILES["file"]

        if upload_file.content_type.startswith("image/"):
            filer_file = filer_image_from_upload(request, path=folder, upload_data=upload_file)
        else:
            filer_file = filer_file_from_upload(request, path=folder, upload_data=upload_file)

        _ensure_media_file(shop, filer_file)
    except Exception as exc:
        return JsonResponse({"error": force_text(exc)})

    return JsonResponse({
        "file": _filer_file_to_json_dict(filer_file),
        "message": _("%(file)s uploaded to %(folder)s") % {
            "file": filer_file.label,
            "folder": get_folder_name(folder)
        }
    })
Example #3
0
    def handle_upload(self):
        request = self.request
        try:
            folder_id = int(request.POST.get("folder_id") or request.GET.get("folder_id") or 0)
            if folder_id != 0:
                folder = Folder.objects.get(pk=folder_id)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse({"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request, path=folder, upload_data=upload_file)
            else:
                filer_file = filer_file_from_upload(request, path=folder, upload_data=upload_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })
Example #4
0
def _process_form(request, folder):
    try:
        form = UploadImageForm(request.POST, request.FILES)
        if form.is_valid():
            filer_file = filer_image_from_upload(
                request, path=folder, upload_data=request.FILES['file'])
        elif not request.FILES["file"].content_type.startswith("image/"):
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                filer_file = filer_file_from_upload(
                    request, path=folder, upload_data=request.FILES['file'])

        if not form.is_valid():
            return JsonResponse({"error": form.errors}, status=400)

        ensure_media_file(get_shop(request), filer_file)
    except Exception as exc:
        return JsonResponse({"error": force_text(exc)}, status=500)

    return JsonResponse({
        "file": filer_file_to_json_dict(filer_file),
        "message": _("%(file)s uploaded to %(folder)s") % {
            "file": filer_file.label,
            "folder": get_folder_name(folder)
        }
    })
Example #5
0
 def validate(self, data):
     if data.get("image") and data.get("image_path"):
         data["image"] = filer_image_from_upload(
             self.context["request"], path=data["image_path"], upload_data=data["image"])
     elif data.get("image"):
         raise serializers.ValidationError("Path is required when sending a Category image.")
     return data
Example #6
0
    def handle_upload(self):
        request = self.request
        try:
            folder_id = int(
                request.POST.get("folder_id") or request.GET.get("folder_id")
                or 0)
            if folder_id != 0:
                folder = Folder.objects.get(pk=folder_id)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse(
                {"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request,
                                                     path=folder,
                                                     upload_data=upload_file)
            else:
                filer_file = filer_file_from_upload(request,
                                                    path=folder,
                                                    upload_data=upload_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })
Example #7
0
 def validate(self, data):
     if data.get("logo") and data.get("logo_path"):
         data["logo"] = filer_image_from_upload(
             self.context["request"], path=data["logo_path"], upload_data=data["logo"])
     elif data.get("logo"):
         raise serializers.ValidationError("Path is required when sending a manufacturer logo.")
     return data
Example #8
0
def media_upload(request, *args, **kwargs):
    if not settings.SHUUP_CUSTOMER_INFORMATION_ALLOW_PICTURE_UPLOAD:
        return HttpResponseForbidden()

    shop = get_shop(request)
    folder = get_or_create_folder(shop, "/contacts")
    form = UploadImageForm(request.POST, request.FILES)
    if form.is_valid():
        filer_file = filer_image_from_upload(request, path=folder, upload_data=request.FILES['file'])
    else:
        error_messages = []
        for validation_error in form.errors.as_data().get("file", []):
            error_messages += validation_error.messages

        return JsonResponse({"error": ", ".join([msg for msg in error_messages])}, status=400)

    ensure_media_file(shop, filer_file)
    return JsonResponse({"file": filer_file_to_json_dict(filer_file)})
Example #9
0
    def handle_upload(self):
        request = self.request
        shop = get_shop(request)
        try:
            folder_id = int(
                request.POST.get("folder_id") or request.GET.get("folder_id")
                or 0)
            path = request.POST.get("path") or request.GET.get("path") or None
            if folder_id != 0:
                folder = _get_folder_query(shop).get(pk=folder_id)
            elif path:
                folder = get_or_create_folder(shop, path)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse(
                {"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request,
                                                     path=folder,
                                                     upload_data=upload_file)
                _ensure_media_file(shop, filer_file)
            else:
                filer_file = filer_file_from_upload(request,
                                                    path=folder,
                                                    upload_data=upload_file)
                _ensure_media_file(shop, filer_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })