Exemple #1
0
def new_audio(request):
    if request.method == 'POST':
        form = AudioImportForm(request.POST, request.FILES)
        if form.is_valid():
            save_context = BlueprintSaveContext.from_request(request)
            urn = form.save(save_context)
            return SuccessfulEditRedirect(urn)
        else:
            if request.is_ajax():
                return render_json_response({'errors': form.errors})
    else:
        form = AudioImportForm()

    return render_to_response('audio/audio_import_form.html', {
        'form': form,
    }, RequestContext(request))
Exemple #2
0
def new_audio(request):
    if request.method == 'POST':
        form = AudioImportForm(request.POST, request.FILES)
        if form.is_valid():
            save_context = BlueprintSaveContext.from_request(request)
            urn = form.save(save_context)
            return SuccessfulEditRedirect(urn)
        else:
            if request.is_ajax():
                return render_json_response({'errors': form.errors})
    else:
        form = AudioImportForm()

    return render_to_response('audio/audio_import_form.html', {
        'form': form,
    }, RequestContext(request))
Exemple #3
0
def handle_blueprint_post(request, expected_model=DuctModel):
    # this is not a view, but rather a function that is meant to be called by
    # views.  should be put such functions somewhere else?
    from functools import partial
    from django.http import HttpResponseBadRequest
    HttpTextResponseBadRequest = partial(HttpResponseBadRequest,
                                         content_type="text/plain; charset=utf-8")

    from ductus.resource.ductmodels import BlueprintSaveContext, BlueprintError, ValidationError

    try:
        blueprint = json.loads(request.POST['blueprint'])
    except KeyError:
        return HttpTextResponseBadRequest(u"no blueprint given")
    except ValueError:
        return HttpTextResponseBadRequest(u"json fails to parse")
    save_context = BlueprintSaveContext.from_request(request)
    try:
        urn = expected_model.save_blueprint(blueprint, save_context)
    except BlueprintError as e:
        return HttpTextResponseBadRequest(str(e))
    except ValidationError as e:
        logger.debug("validation failed: %s", e)
        if settings.DEBUG:
            import sys
            import traceback
            exc_type, exc_info, tb = sys.exc_info()
            msg = list(traceback.format_tb(tb))
            msg.append(exc_type.__name__)
            msg.append(repr(exc_info))
            logger.error("\n".join(msg))
        return HttpTextResponseBadRequest(u"validation failed")

    # edit successful: update the index
    try:
        # try to get the parent urn from the blueprint, as it is already in memory
        parent_urn = blueprint['resource']['@patch']
    except KeyError:
        parent_urn = None
    url = request.path
    url = ':'.join(url[1:].split('/', 1))
    update_index_on_save(urn, [url], parent_urn)

    return SuccessfulEditRedirect(urn)
Exemple #4
0
def edit_picture(request):
    if request.method == 'POST':
        form = PictureRotationForm(request.POST)
        if form.is_valid() and "parent" in request.POST:
            save_context = BlueprintSaveContext.from_request(request)
            blueprint = {
                'resource': {
                    '@patch': request.POST["parent"],
                    'rotation': form.cleaned_data['rotation'],
                }
            }
            urn = Picture.save_blueprint(blueprint, save_context)
            return SuccessfulEditRedirect(urn)
    else:
        form = PictureRotationForm()

    return render_to_response('picture/edit.html', {
        'form': form,
        'parent_urn': request.ductus.resource.urn,
    }, RequestContext(request))
Exemple #5
0
def edit_picture(request):
    if request.method == 'POST':
        form = PictureRotationForm(request.POST)
        if form.is_valid() and "parent" in request.POST:
            save_context = BlueprintSaveContext.from_request(request)
            blueprint = {
                'resource': {
                    '@patch': request.POST["parent"],
                    'rotation': form.cleaned_data['rotation'],
                }
            }
            urn = Picture.save_blueprint(blueprint, save_context)
            return SuccessfulEditRedirect(urn)
    else:
        form = PictureRotationForm()

    return render_to_response('picture/edit.html', {
        'form': form,
        'parent_urn': request.ductus.resource.urn,
    }, RequestContext(request))
Exemple #6
0
def new_picture(request):
    if request.GET.get('view') == 'flickr_search':
        return flickr_search_view(request)

    if request.method == 'POST':
        form = PictureImportForm(request.POST, request.FILES)
        if form.is_valid():
            save_context = BlueprintSaveContext.from_request(request)
            urn = form.save(save_context)
            return SuccessfulEditRedirect(urn)
        else:
            if request.is_ajax():
                return render_json_response({'errors': form.errors})
    else:
        form = PictureImportForm()

    verbose_descriptions = PictureImportForm.get_verbose_input_descriptions()

    return render_to_response('picture/picture_import_form.html', {
        'form': form,
        'verbose_descriptions': verbose_descriptions,
    }, RequestContext(request))
Exemple #7
0
def new_picture(request):
    if request.GET.get('view') == 'flickr_search':
        return flickr_search_view(request)

    if request.method == 'POST':
        form = PictureImportForm(request.POST, request.FILES)
        if form.is_valid():
            save_context = BlueprintSaveContext.from_request(request)
            urn = form.save(save_context)
            return SuccessfulEditRedirect(urn)
        else:
            if request.is_ajax():
                return render_json_response({'errors': form.errors})
    else:
        form = PictureImportForm()

    verbose_descriptions = PictureImportForm.get_verbose_input_descriptions()

    return render_to_response('picture/picture_import_form.html', {
        'form': form,
        'verbose_descriptions': verbose_descriptions,
    }, RequestContext(request))