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')
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))