diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index 427e2675a5..2f6771de11 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -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}]) diff --git a/apps/documents/forms.py b/apps/documents/forms.py index c962e4c9da..5d2835e362 100644 --- a/apps/documents/forms.py +++ b/apps/documents/forms.py @@ -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))) diff --git a/apps/documents/urls.py b/apps/documents/urls.py index 76764d23ab..edb34e1c30 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -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\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\d+)/upload/single/$', 'upload_document_with_type', {'multiple':False}, 'upload_document_with_type'), + url(r'^document/type/(?P\d+)/upload/multiple/$', 'upload_document_with_type', {'multiple':True}, 'upload_multiple_documents_with_type'), url(r'^document/(?P\d+)/$', 'document_view', (), 'document_view'), + ) diff --git a/apps/documents/views.py b/apps/documents/views.py index b448ea87f8..c823648d43 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -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): +