Exemple #1
0
    def clean_file(self):

        uploaded_file = self.cleaned_data['file']
        error = clean_file(uploaded_file, image=True)
        if error:
            raise forms.ValidationError(error)
        return uploaded_file
Exemple #2
0
def add_gallery(request):
    if request.method == "POST":
        json_dict = {}
        if request.POST["name"] == "":
            json_dict["name"] = "This field is required."
        file = None
        if request.FILES.get("file"):
            file = request.FILES["file"]

        if request.POST["change"] == "0" and not file:
            json_dict["file"] = "This field is required. Please select a file."

        elif request.POST["change"] == "0" and clean_file(file,
                                                          image=True) != "":
            json_dict["file"] = clean_file(file, image=True)

        for i in range(0, int(request.POST["nr"])):
            file = None
            if request.FILES.get("form-" + str(i) + "-file"):
                file = request.FILES["form-" + str(i) + "-file"]

            if file:
                error = clean_file(file, image=True)
                if error != "":
                    json_dict[i] = error

        if json_dict != {}:
            response = HttpResponse(json.dumps(json_dict),
                                    content_type='application/json')
            response.status_code = 400
            return response

        if request.POST["change"] == "1":
            obj = get_object_or_404(Gallery, id=request.POST["id"])
            obj.name = escape(request.POST["name"])
            if request.FILES.get("file"):
                obj.file = request.FILES["file"]
            obj.save()

            for i in range(0, int(request.POST["delete_nr"])):
                id = int(request.POST["delete-" + str(i) + "-id"])
                photo = GalleryPhoto.objects.get(pk=id)
                photo.delete()
        else:
            obj = Gallery(name=escape(request.POST["name"]),
                          file=request.FILES["file"],
                          author=request.user)
            obj.save()

        for i in range(0, int(request.POST["nr"])):
            id = None
            if request.POST.get("form-" + str(i) + "-id"):
                id = request.POST["form-" + str(i) + "-id"]

            file = None
            if request.FILES.get("form-" + str(i) + "-file"):
                file = request.FILES["form-" + str(i) + "-file"]

            name = request.POST["form-" + str(i) + "-name"]
            if not id:
                photo = GalleryPhoto(gallery=obj,
                                     name=name,
                                     file=file,
                                     author=request.user,
                                     location="gallery/" + str(obj.slug))
                photo.save()
            else:
                photo = GalleryPhoto.objects.get(pk=id)
                photo.name = name
                photo.save()
        return redirect("/admin/gallery/gallery/")

    else:
        return HttpResponseForbidden()