Example #1
0
def edit(request, image_id, callback=None):
    Image = get_image_model()
    ImageForm = get_image_form_for_multi()

    image = get_object_or_404(Image, id=image_id)

    if not request.is_ajax():
        return HttpResponseBadRequest("Cannot POST to this view without AJAX")

    if not image.is_editable_by_user(request.user):
        raise PermissionDenied

    form = ImageForm(request.POST, request.FILES, instance=image, prefix='image-'+image_id)

    if form.is_valid():
        form.save()
        return json_response({
            'success': True,
            'image_id': int(image_id),
        })
    else:
        return json_response({
            'success': False,
            'image_id': int(image_id),
            'form': render_to_string('wagtailimages/multiple/edit_form.html', {
                'image': image,
                'form': form,
            }, context_instance=RequestContext(request)),
        })
Example #2
0
def add(request):
    Image = get_image_model()
    ImageForm = get_image_form_for_multi()

    if request.method == 'POST':
        if not request.is_ajax():
            return HttpResponseBadRequest(
                "Cannot POST to this view without AJAX")

        if not request.FILES:
            return HttpResponseBadRequest("Must upload a file")

        # Check that the uploaded file is valid
        try:
            validate_image_format(request.FILES['files[]'])
        except ValidationError as e:
            return json_response({
                'success': False,
                'error_message': '\n'.join(e.messages),
            })

        # Save it
        image = Image(uploaded_by_user=request.user,
                      title=request.FILES['files[]'].name,
                      file=request.FILES['files[]'])
        image.save()

        # Success! Send back an edit form for this image to the user
        form = ImageForm(instance=image, prefix='image-%d' % image.id)

        return json_response({
            'success':
            True,
            'image_id':
            int(image.id),
            'form':
            render_to_string('wagtailimages/multiple/edit_form.html', {
                'image': image,
                'form': form,
            },
                             context_instance=RequestContext(request)),
        })

    return render(request, 'wagtailimages/multiple/add.html', {})
Example #3
0
def edit(request, image_id, callback=None):
    Image = get_image_model()
    ImageForm = get_image_form_for_multi()

    image = get_object_or_404(Image, id=image_id)

    if not request.is_ajax():
        return HttpResponseBadRequest("Cannot POST to this view without AJAX")

    if not image.is_editable_by_user(request.user):
        raise PermissionDenied

    form = ImageForm(request.POST,
                     request.FILES,
                     instance=image,
                     prefix='image-' + image_id)

    if form.is_valid():
        form.save()

        # Reindex the image to make sure all tags are indexed
        for backend in get_search_backends():
            backend.add(image)

        return json_response({
            'success': True,
            'image_id': int(image_id),
        })
    else:
        return json_response({
            'success':
            False,
            'image_id':
            int(image_id),
            'form':
            render_to_string('wagtailimages/multiple/edit_form.html', {
                'image': image,
                'form': form,
            },
                             context_instance=RequestContext(request)),
        })
Example #4
0
def add(request):
    Image = get_image_model()
    ImageForm = get_image_form_for_multi()

    if request.method == 'POST':
        if not request.is_ajax():
            return HttpResponseBadRequest("Cannot POST to this view without AJAX")

        if not request.FILES:
            return HttpResponseBadRequest("Must upload a file")

        # Check that the uploaded file is valid
        try:
            validate_image_format(request.FILES['files[]'])
        except ValidationError as e:
            return json_response({
                'success': False,
                'error_message': '\n'.join(e.messages),
            })

        # Save it
        image = Image(uploaded_by_user=request.user, title=request.FILES['files[]'].name, file=request.FILES['files[]'])
        image.save()

        # Success! Send back an edit form for this image to the user
        form = ImageForm(instance=image, prefix='image-%d' % image.id)

        return json_response({
            'success': True,
            'image_id': int(image.id),
            'form': render_to_string('wagtailimages/multiple/edit_form.html', {
                'image': image,
                'form': form,
            }, context_instance=RequestContext(request)),
        })


    return render(request, 'wagtailimages/multiple/add.html', {})