Added new view to quickly upload a new document using another document's metadata
This commit is contained in:
@@ -13,6 +13,7 @@ from documents.conf import settings as documents_settings
|
||||
document_list = {'text':_(u'documents list'), 'view':'document_list', 'famfam':'page'}
|
||||
document_create = {'text':_('upload a document'), 'view':'document_create', 'famfam':'page_add'}
|
||||
document_create_multiple = {'text':_('upload multiple documents'), 'view':'document_create_multiple', 'famfam':'page_add'}
|
||||
document_create_sibling = {'text':_('upload using same metadata'), 'view':'document_create_sibling', 'args':'object.id', 'famfam':'page_copy'}
|
||||
document_view = {'text':_('details'), 'view':'document_view', 'args':'object.id', 'famfam':'page'}
|
||||
document_delete = {'text':_('delete'), 'view':'document_delete', 'args':'object.id', 'famfam':'page_delete'}
|
||||
document_edit = {'text':_('edit'), 'view':'document_edit', 'args':'object.id', 'famfam':'page_edit'}
|
||||
@@ -22,7 +23,7 @@ document_download = {'text':_('download'), 'view':'document_download', 'args':'o
|
||||
staging_file_preview = {'text':_('preview'), 'class':'fancybox', 'view':'staging_file_preview', 'args':'object.id', 'famfam':'drive_magnify'}
|
||||
|
||||
register_links(Document, [document_edit, document_delete, document_preview, document_download])
|
||||
register_links(Document, [document_list, document_create, document_create_multiple, document_view], menu_name='sidebar')
|
||||
register_links(Document, [document_list, document_create, document_create_multiple, document_create_sibling, document_view], menu_name='sidebar')
|
||||
register_links(['document_list', 'document_create', 'document_create_multiple', 'upload_document_with_type', 'upload_multiple_documents_with_type'], [document_list, document_create, document_create_multiple], menu_name='sidebar')
|
||||
|
||||
register_links(StagingFile, [staging_file_preview])
|
||||
|
||||
@@ -15,6 +15,7 @@ urlpatterns = patterns('documents.views',
|
||||
url(r'^document/(?P<document_id>\d+)/preview/$', 'document_preview', (), 'document_preview'),
|
||||
url(r'^document/(?P<document_id>\d+)/thumbnail/$', 'document_thumbnail', (), 'document_thumbnail'),
|
||||
url(r'^document/(?P<document_id>\d+)/download/$', 'document_download', (), 'document_download'),
|
||||
url(r'^document/(?P<document_id>\d+)/create/siblings/$', 'document_create_sibling', {'multiple':True}, 'document_create_sibling'),
|
||||
|
||||
url(r'^staging_file/(?P<staging_file_id>\w+)/preview/$', 'staging_file_preview', (), 'staging_file_preview'),
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ from django.views.generic.create_update import create_object, delete_object, upd
|
||||
from django.forms.formsets import formset_factory
|
||||
from django.core.files.base import File
|
||||
from django.conf import settings
|
||||
from django.utils.http import urlencode
|
||||
|
||||
|
||||
from filetransfers.api import serve_file
|
||||
@@ -55,7 +56,23 @@ def document_create(request, multiple=True):
|
||||
wizard = DocumentCreateWizard(form_list=[DocumentTypeSelectForm, MetadataFormSet], multiple=multiple)
|
||||
return wizard(request)
|
||||
|
||||
|
||||
def document_create_sibling(request, document_id, multiple=True):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
urldata = []
|
||||
for id, metadata in enumerate(document.documentmetadata_set.all()):
|
||||
if hasattr(metadata, 'value'):
|
||||
urldata.append(('metadata%s_id' % id,metadata.id))
|
||||
urldata.append(('metadata%s_value' % id,metadata.value))
|
||||
|
||||
if multiple:
|
||||
view = 'upload_multiple_documents_with_type'
|
||||
else:
|
||||
view = 'upload_document_with_type'
|
||||
|
||||
url = reverse(view, args=[document.document_type.id])
|
||||
return HttpResponseRedirect('%s?%s' % (url, urlencode(urldata)))
|
||||
|
||||
|
||||
def _save_metadata(url_dict, document):
|
||||
metadata_dict = {
|
||||
'id':{},
|
||||
|
||||
Reference in New Issue
Block a user