def add_version(request, document_id): document = get_object_or_404(Document, pk=document_id) if request.method != 'POST': return HttpResponseRedirect(reverse('todo_detail', args=[document_id])) form = PartialVersionForm(request.POST, request.FILES, contentMetaData=model_to_dict(document)) if not form.is_valid(): versionForm = form attachmentForm = PartialAttachmentForm() documentForm = PartialDocumentForm() documentForm.limitChoicesToValidStates(document) return render_to_response('documents/todo_detail.html', locals(), context_instance=RequestContext(request)) # this is a bit of a hack as we need to create (and save) a # version before the id is known. We need to know the id before we # can save the content file under /document_id/versions/version_id version = Version.objects.create( comment=form.cleaned_data['comment'], document=document, created_by=request.user) content_file = request.FILES['content'] version.content.save(content_file.name, content_file) return HttpResponseRedirect(reverse('todo_detail', args=[document_id]))
def add_image(request, document_id): document = get_object_or_404(Document, pk=document_id) if request.method != 'POST': return HttpResponseRedirect(reverse('todo_detail', args=[document_id])) form = PartialImageForm(request.POST, request.FILES) if not form.is_valid(): versionForm = PartialVersionForm() attachmentForm = PartialAttachmentForm() imageForm = form documentForm = PartialDocumentForm() documentForm.limitChoicesToValidStates(document) return render_to_response('documents/todo_detail.html', locals(), context_instance=RequestContext(request)) content_files = request.FILES.getlist('content') files = [] for content in content_files: try: image = Image.objects.get(document=document, content__endswith=content) image.content.save(content.name, content) except Image.DoesNotExist: image = Image(document=document, content=content) image.save() files.append({'name': os.path.basename(image.content.name), 'url': image.content.url}) if 'application/json' in request.META['HTTP_ACCEPT']: from django.http import HttpResponse from django.utils import simplejson response_data = simplejson.dumps({'files': files}) return HttpResponse(response_data, mimetype = 'application/json') return HttpResponseRedirect(reverse('todo_detail', args=[document_id]))
def add_attachment(request, document_id): document = get_object_or_404(Document, pk=document_id) if request.method != 'POST': return HttpResponseRedirect(reverse('todo_detail', args=[document_id])) form = PartialAttachmentForm(request.POST, request.FILES) if not form.is_valid(): versionForm = PartialVersionForm() attachmentForm = form imageForm = PartialImageForm() documentForm = PartialDocumentForm() documentForm.limitChoicesToValidStates(document) return render(request, 'documents/todo_detail.html', locals()) # this is a bit of a hack as we need to create (and save) an # attachment before the id is known. We need to know the id before we # can save the content file under /document_id/attachments/file_name attachment = Attachment.objects.create( comment=form.cleaned_data['comment'], document=document, mime_type=form.content_type, created_by=request.user) content_file = request.FILES['content'] attachment.content.save(content_file.name, content_file) return HttpResponseRedirect(reverse('todo_detail', args=[document_id]))
def detail(request, document_id): try: document = Document.objects.select_related('state').get(pk=document_id) except Document.DoesNotExist: raise Http404 versionForm = PartialVersionForm() attachmentForm = PartialAttachmentForm() documentForm = PartialDocumentForm() documentForm.limitChoicesToValidStates(document) return render_to_response('documents/todo_detail.html', locals(), context_instance=RequestContext(request))
def detail(request, document_id): try: document = Document.objects.select_related('state').get(pk=document_id) except Document.DoesNotExist: raise Http404 versionForm = PartialVersionForm() attachmentForm = PartialAttachmentForm() imageForm = PartialImageForm() documentForm = PartialDocumentForm() documentForm.limitChoicesToValidStates(document) return render(request, 'documents/todo_detail.html', locals())
def transition(request, document_id): document = Document.objects.get(pk=document_id) if request.method != 'POST': return HttpResponseRedirect(reverse('todo_detail', args=[document_id])) form = PartialDocumentForm(request.POST) if not form.is_valid(): versionForm = PartialVersionForm() attachmentForm = PartialAttachmentForm() documentForm = form return render(request, 'documents/todo_detail.html', locals()) document.transitionTo(form.cleaned_data['state']) return HttpResponseRedirect(reverse('todo_index'))