Created views to upload a single or multiple documents with same metadata

This commit is contained in:
Roberto Rosario
2011-02-05 01:30:32 -04:00
parent b3b704346f
commit 03f7b7c9ab
4 changed files with 31 additions and 7 deletions

View File

@@ -2,11 +2,19 @@ from django.utils.translation import ugettext_lazy as _
from common.api import register_links, register_menu
from models import Document
document_list = {'text':_(u'documents'), 'view':'document_list', 'famfam':'page'}
document_create = {'text':_('create document'), 'view':'document_create', 'famfam':'page_add'}
document_create_multiple = {'text':_('create multiple document'), 'view':'document_create_multiple', 'famfam':'page_add'}
#register_links(Document, [purchase_order_item_update, purchase_order_item_delete, jump_to_template, purchase_order_item_close, purchase_order_item_transfer])
register_links(['document_list', 'document_create', 'upload_document_with_type'], [document_create, document_create_multiple], menu_name='sidebar')
register_menu([
{'text':_('documents'), 'view':'document_list', 'links':[
document_list, document_create
document_list#, document_create
],'famfam':'page','position':4}])

View File

@@ -67,6 +67,11 @@ class MetadataForm(forms.Form):
class DocumentCreateWizard(BoundFormWizard):
def __init__(self, *args, **kwargs):
self.multiple = kwargs.pop('multiple', True)
super(DocumentCreateWizard, self).__init__(*args, **kwargs)
def render_template(self, request, form, previous_fields, step, context=None):
context = {'step_title':self.extra_context['step_titles'][step]}
return super(DocumentCreateWizard, self).render_template(request, form, previous_fields, step, context)
@@ -99,5 +104,10 @@ class DocumentCreateWizard(BoundFormWizard):
return 'generic_wizard.html'
def done(self, request, form_list):
url = reverse('upload_document_with_type', args=[self.document_type.id])
if self.multiple:
view = 'upload_multiple_documents_with_type'
else:
view = 'upload_document_with_type'
url = reverse(view, args=[self.document_type.id])
return HttpResponseRedirect('%s?%s' % (url, urlencode(self.urldata)))

View File

@@ -5,8 +5,10 @@ from django.views.generic.create_update import create_object, update_object
urlpatterns = patterns('documents.views',
url(r'^document/list/$', 'document_list', (), 'document_list'),
url(r'^document/create/$', 'document_create', (), 'document_create'),
#url(r'^document/upload/$', 'upload_document', (), 'upload_document'),
url(r'^document/type/(?P<document_type_id>\d+)/upload/$', 'upload_document_with_type', (), 'upload_document_with_type'),
url(r'^document/create/single/$', 'document_create', {'multiple':False}, 'document_create'),
url(r'^document/create/multiple/$', 'document_create', {'multiple':True}, 'document_create_multiple'),
url(r'^document/type/(?P<document_type_id>\d+)/upload/single/$', 'upload_document_with_type', {'multiple':False}, 'upload_document_with_type'),
url(r'^document/type/(?P<document_type_id>\d+)/upload/multiple/$', 'upload_document_with_type', {'multiple':True}, 'upload_multiple_documents_with_type'),
url(r'^document/(?P<document_id>\d+)/$', 'document_view', (), 'document_view'),
)

View File

@@ -37,9 +37,9 @@ def document_list(request):
)
def document_create(request):
def document_create(request, multiple=True):
MetadataFormSet = formset_factory(MetadataForm, extra=0)
wizard = DocumentCreateWizard(form_list=[DocumentTypeSelectForm, MetadataFormSet])
wizard = DocumentCreateWizard(form_list=[DocumentTypeSelectForm, MetadataFormSet], multiple=multiple)
return wizard(request)
@@ -114,3 +114,7 @@ def document_view(request, document_id):
},
],
}, context_instance=RequestContext(request))
#def document_edit(request, document_id):