Added view to add a document to a folder directly from the document detail view

This commit is contained in:
Roberto Rosario
2011-04-18 04:31:44 -04:00
parent 5084f7c871
commit 2cf8b05bfa
7 changed files with 70 additions and 35 deletions

View File

@@ -12,7 +12,7 @@ from documents.models import Document
from permissions.api import check_permissions
from models import Folder, FolderDocument
from forms import FolderForm
from forms import FolderForm, AddDocumentForm
def folder_list(request):
@@ -116,20 +116,33 @@ def folder_view(request, folder_id):
}, context_instance=RequestContext(request))
def folder_add_document(request, folder_id, document_id):
folder = get_object_or_404(Folder, pk=folder_id)
document = get_object_or_404(Document, pk=document_id)
def folder_add_document(request, document_id):
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
document = get_object_or_404(Document, pk=document_id)
if request.method == 'POST':
previous = request.META.get('HTTP_REFERER', '/')
form = AddDocumentForm(request.POST, user=request.user)
if form.is_valid():
if form.cleaned_data['existing_folder']:
folder = form.cleaned_data['existing_folder']
elif form.cleaned_data['title']:
folder, created = Folder.objects.get_or_create(user=request.user, title=form.cleaned_data['title'])
if created:
messages.success(request, _(u'Folder created successfully'))
else:
messages.error(request, _(u'A folder named: %s, already exists.') % form.cleaned_data['title'])
return HttpResponseRedirect(previous)
else:
messages.error(request, _(u'Must specify a new folder or an existing one.'))
return HttpResponseRedirect(previous)
folder_document, created = FolderDocument.objects.get_or_create(folder=folder, document=document)
if created:
messages.success(request, _(u'Document: %(document)s added to folder: %(folder)s successfully.') % {
'document': document, 'folder': folder})
else:
messages.warning(request, _(u'Document: %(document)s is already in folder: %(folder)s.') % {
'document': document, 'folder': folder})
folder_document, created = FolderDocument.objects.get_or_create(folder=folder, document=document)
if created:
messages.success(request, _(u'Document: %(document)s added to folder: %(folder)s successfully.') % {
'document': document, 'folder': folder})
else:
messages.warning(request, _(u'Document: %(document)s is already in folder: %(folder)s.') % {
'document': document, 'folder': folder})
return HttpResponseRedirect(previous)