diff --git a/mayan/apps/appearance/static/appearance/js/partial_navigation.js b/mayan/apps/appearance/static/appearance/js/partial_navigation.js index bc06fe9ea5..628770d93d 100644 --- a/mayan/apps/appearance/static/appearance/js/partial_navigation.js +++ b/mayan/apps/appearance/static/appearance/js/partial_navigation.js @@ -168,11 +168,19 @@ PartialNavigation.prototype.setupAjaxForm = function () { console.log('>> ajaxForm.beforeSubmit.$form.target: ' + $form.attr('action')); var uri = new URI(location); var uriFragment = uri.fragment(); - console.log('>>ajaxForm.$form.target.uriFragment:' + uriFragment); - var url = $form.attr('action') || uriFragment; + console.log('>>ajaxForm.$form.target.uriFragment:' + uriFragment); options.url = url; + + if ($form.attr('target') == '_blank') { + window.open( + $form.attr('action') + '?' + decodeURIComponent($form.serialize()) + ); + + return false; + } + console.log('>>ajaxForm.url:' + url); }, dataType: 'html', diff --git a/mayan/apps/appearance/templates/appearance/generic_form_subtemplate.html b/mayan/apps/appearance/templates/appearance/generic_form_subtemplate.html index 9b20b75226..76128d5584 100644 --- a/mayan/apps/appearance/templates/appearance/generic_form_subtemplate.html +++ b/mayan/apps/appearance/templates/appearance/generic_form_subtemplate.html @@ -10,9 +10,9 @@
{% if form.is_multipart %} -
+ {% else %} - + {% endif %} {{ wizard.management_form }} diff --git a/mayan/apps/documents/templates/documents/document_print.html b/mayan/apps/documents/templates/documents/document_print.html index 53ebb7facf..755ee03372 100644 --- a/mayan/apps/documents/templates/documents/document_print.html +++ b/mayan/apps/documents/templates/documents/document_print.html @@ -1,4 +1,4 @@ -{% extends 'appearance/base.html' %} +{% extends 'appearance/base_plain.html' %} {% block title %}{{ title }}{% endblock title %} diff --git a/mayan/apps/documents/views/document_views.py b/mayan/apps/documents/views/document_views.py index dac07b094e..3db59d8fed 100644 --- a/mayan/apps/documents/views/document_views.py +++ b/mayan/apps/documents/views/document_views.py @@ -717,38 +717,50 @@ class DocumentTransformationsCloneView(FormView): class DocumentPrint(FormView): form_class = DocumentPrintForm - def form_valid(self, form): - instance = self.get_object() + def dispatch(self, request, *args, **kwargs): + self.page_group = self.request.GET.get('page_group') + self.page_range = self.request.GET.get('page_range') + return super(DocumentPrint, self).dispatch(request, *args, **kwargs) - if form.cleaned_data['page_group'] == PAGE_RANGE_RANGE: - page_range = form.cleaned_data['page_range'] + def get(self, request, *args, **kwargs): - if page_range: - page_range = parse_range(page_range) - pages = instance.pages.filter(page_number__in=page_range) + if not self.page_group and not self.page_range: + return super(DocumentPrint, self).get(request, *args, **kwargs) + else: + instance = self.get_object() + + if self.page_group == PAGE_RANGE_RANGE: + if self.page_range: + page_range = parse_range(self.page_range) + pages = instance.pages.filter(page_number__in=page_range) + else: + pages = instance.pages.all() else: pages = instance.pages.all() - else: - pages = instance.pages.all() - context = self.get_context_data() + context = self.get_context_data() - context.update( - { - 'appearance_type': 'plain', - 'pages': pages, - 'size': setting_print_size.value, - } - ) + context.update( + { + 'appearance_type': 'plain', + 'pages': pages, + 'size': setting_print_size.value, + } + ) - return self.render_to_response(context=context) + return self.render_to_response(context=context) def get_extra_context(self): instance = self.get_object() context = { + 'form_action': reverse( + 'documents:document_print', args=(instance.pk,) + ), 'object': instance, 'submit_label': _('Submit'), + 'submit_method': 'GET', + 'submit_target': '_blank', 'title': _('Print: %s') % instance, } @@ -767,7 +779,7 @@ class DocumentPrint(FormView): return instance def get_template_names(self): - if self.request.method == 'POST': + if self.page_group or self.page_range: return ('documents/document_print.html',) else: return (self.template_name,)