41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from django.shortcuts import redirect
|
|
from django.contrib.formtools.wizard.views import NamedUrlSessionWizardView
|
|
from django.core.files.storage import FileSystemStorage
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from forms import DocumentUploadForm, DocumentDetailsForm
|
|
|
|
|
|
named_new_request_forms = (
|
|
('document_upload', DocumentUploadForm),
|
|
('document_details', DocumentDetailsForm),
|
|
# FIXME to be continued...
|
|
)
|
|
|
|
|
|
class RequestWizardView(NamedUrlSessionWizardView):
|
|
|
|
template_name = 'new_request.html'
|
|
file_storage = FileSystemStorage(location = '/tmp/pdf/')
|
|
|
|
def done(self, form_list, **kwargs):
|
|
pass # do_something_with_the_form_data(form_list)
|
|
return redirect('/request/done-thanks/')
|
|
|
|
def get_form_initial(self, step):
|
|
initial = super(RequestWizardView, self).get_form_initial(step=step) or {}
|
|
if step == 'document_details':
|
|
upload_step = self.get_cleaned_data_for_step('document_upload') or {}
|
|
docfile = upload_step.get('document_file', '')
|
|
if docfile is None:
|
|
initial['document_pages'] = 'Oooops... document_file is None ?!'
|
|
else:
|
|
initial['document_pages'] = '%d' % len(docfile)
|
|
return initial
|
|
|
|
|
|
new_request_wizard = login_required(RequestWizardView.as_view(named_new_request_forms,
|
|
url_name='new_request_step',
|
|
done_step_name='new_request_finished'))
|
|
|