Exemple #1
0
def update_labels(request, filename):
    try: file_metadata = get_file_metadata(filename)
    except NotFoundError: return HttpResponseNotFound()

    split = filename.split("/")
    file_username = split[0]
    basepath = "/".join(split[:-1])
    version = split[-1:][0]

    if request.method != 'POST':
        return HttpResponseBadRequest()

    form = UpdateLabels(request.POST)
    if not form.is_valid():
        return HttpResponseBadRequest()
    
    labels = form.cleaned_data['labels'].split(',')
    labels = [label.strip() for label in labels if len(label.strip()) > 0]

    updated_info = {
        'labels': labels,
    }
    add_base_metadata(basepath, version, updated_info)

    json_result = {'state': 'SUCCESS',
                   'updated_labels': ', '.join(labels)}
    return HttpResponse(simplejson.dumps(json_result, default=json_handler), mimetype='application/json')
Exemple #2
0
def edit_file(request, filename):
    try: file_metadata = get_file_metadata("/%s" % filename)
    except NotFoundError: return HttpResponseNotFound()

    split = filename.split("/")
    file_username = split[0]
    basepath = "/" + "/".join(split[:-1])
    version = split[-1:][0]

    if file_username != request.user.get('username') and not request.user.get('is_superuser', False):
        return HttpResponseForbidden()

    if request.method == 'POST':
        form = EditFile(request.POST)
        if form.is_valid():
            title = form.cleaned_data['title']
            description = form.cleaned_data['description']
            labels = form.cleaned_data['labels'].split(',')
            labels = [label.strip() for label in labels if len(label.strip()) > 0]
            
            updated_info = {
                'title': title,
                'description': description,
                'labels': labels,
            }
            add_base_metadata(basepath, version, updated_info)

            return redirect('content.views.view', filename)
    else:
        form = EditFile(initial={
            'title': file_metadata['title'],
            'description' : file_metadata['description'],
            'labels': ', '.join(file_metadata.get('labels', []))
        })

    view_params = {'form': form,
                   'filename': filename}
    return render_to_response('content/edit.html', view_params, context_instance = RequestContext(request))