- Fix the document print view by switching it to a GET view instead.
- Add support for passing the form target. - Update ajaxForm to emulate '_blank' form targets. Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
This commit is contained in:
committed by
Roberto Rosario
parent
410f8fed76
commit
c8911b901e
@@ -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',
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
<div class="well">
|
||||
{% if form.is_multipart %}
|
||||
<form name="{{ form.prefix }}" enctype="multipart/form-data" method="{{ submit_method|default:'post' }}" action="{{ form_action }}" class="{{ form_class|default:'' }}">
|
||||
<form action="{{ form_action }}" class="{{ form_class|default:'' }}" enctype="multipart/form-data" method="{{ submit_method|default:'post' }}" name="{{ form.prefix }}" target="{{ submit_target|default:'_self' }}">
|
||||
{% else %}
|
||||
<form name="{{ form.prefix }}" method="{{ submit_method|default:'post' }}" action="{{ form_action }}" class="{{ form_class|default:'' }}">
|
||||
<form action="{{ form_action }}" class="{{ form_class|default:'' }}" method="{{ submit_method|default:'post' }}" name="{{ form.prefix }}" target="{{ submit_target|default:'_self' }}">
|
||||
{% endif %}
|
||||
|
||||
{{ wizard.management_form }}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends 'appearance/base.html' %}
|
||||
{% extends 'appearance/base_plain.html' %}
|
||||
|
||||
{% block title %}{{ title }}{% endblock title %}
|
||||
|
||||
|
||||
@@ -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,)
|
||||
|
||||
Reference in New Issue
Block a user