Compare commits
1 Commits
features/d
...
feature/mu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82099c2f1b |
@@ -57,8 +57,8 @@ from .links import (
|
||||
link_document_edit, link_document_list, link_document_list_deleted,
|
||||
link_document_list_recent, link_document_multiple_delete,
|
||||
link_document_multiple_trash, link_document_multiple_clear_transformations,
|
||||
link_document_multiple_download, link_document_multiple_restore,
|
||||
link_document_multiple_update_page_count,
|
||||
link_document_multiple_download, link_document_multiple_print,
|
||||
link_document_multiple_restore, link_document_multiple_update_page_count,
|
||||
link_document_page_navigation_first, link_document_page_navigation_last,
|
||||
link_document_page_navigation_next, link_document_page_navigation_previous,
|
||||
link_document_page_return, link_document_page_rotate_left,
|
||||
@@ -481,10 +481,11 @@ class DocumentsApp(MayanAppConfig):
|
||||
)
|
||||
menu_multi_item.bind_links(
|
||||
links=(
|
||||
link_document_multiple_print,
|
||||
link_document_multiple_clear_transformations,
|
||||
link_document_multiple_trash, link_document_multiple_download,
|
||||
link_document_multiple_update_page_count,
|
||||
link_document_multiple_document_type_edit
|
||||
link_document_multiple_document_type_edit,
|
||||
), sources=(Document,)
|
||||
)
|
||||
menu_multi_item.bind_links(
|
||||
|
||||
@@ -110,6 +110,10 @@ link_document_print = Link(
|
||||
permissions=(permission_document_print,), text=_('Print'),
|
||||
view='documents:document_print', args='resolved_object.id'
|
||||
)
|
||||
link_document_multiple_print = Link(
|
||||
tags='new_window', text=_('Print'),
|
||||
view='documents:document_multiple_print',
|
||||
)
|
||||
link_document_quick_download = Link(
|
||||
permissions=(permission_document_download,), text=_('Quick download'),
|
||||
view='documents:document_download', args='resolved_object.id'
|
||||
|
||||
@@ -3,9 +3,19 @@
|
||||
{% block title %}{{ title }}{% endblock title %}
|
||||
|
||||
{% block content_plain %}
|
||||
{% for page in pages %}
|
||||
<img
|
||||
src="{{ page.get_api_image_url }}?width={{ width }}&height={{ height }}" style="width: 100%;"
|
||||
/>
|
||||
{% endfor %}
|
||||
{% if pages %}
|
||||
{% for page in pages %}
|
||||
<img
|
||||
src="{{ page.get_api_image_url }}?width={{ width }}&height={{ height }}" style="width: 100%;"
|
||||
/>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for document in documents %}
|
||||
{% for page in document.pages.all %}
|
||||
<img
|
||||
src="{{ page.get_api_image_url }}?width={{ width }}&height={{ height }}" style="width: 100%;"
|
||||
/>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -99,6 +99,10 @@ urlpatterns = [
|
||||
r'^(?P<pk>\d+)/edit/$', DocumentEditView.as_view(),
|
||||
name='document_edit'
|
||||
),
|
||||
url(
|
||||
r'^multiple/print/$', DocumentPrint.as_view(),
|
||||
name='document_multiple_print'
|
||||
),
|
||||
url(
|
||||
r'^(?P<pk>\d+)/print/$', DocumentPrint.as_view(),
|
||||
name='document_print'
|
||||
|
||||
@@ -713,28 +713,40 @@ class DocumentTransformationsCloneView(FormView):
|
||||
|
||||
return instance
|
||||
|
||||
from common.mixins import MultipleObjectMixin
|
||||
|
||||
class DocumentPrint(FormView):
|
||||
class DocumentPrint(MultipleObjectMixin, FormView):
|
||||
form_class = DocumentPrintForm
|
||||
model = Document
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_document_print, user=self.request.user,
|
||||
obj=instance
|
||||
self.queryset = AccessControlList.objects.filter_by_access(
|
||||
permission=permission_document_print, user=self.request.user,
|
||||
queryset=self.get_queryset()
|
||||
)
|
||||
|
||||
instance.add_as_recent_document_for_user(self.request.user)
|
||||
for document in self.queryset.all():
|
||||
document.add_as_recent_document_for_user(self.request.user)
|
||||
|
||||
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)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if self.queryset.count() > 1:
|
||||
context = {
|
||||
'appearance_type': 'plain',
|
||||
'documents': self.queryset.all(),
|
||||
'width': setting_print_width.value,
|
||||
'height': setting_print_height.value,
|
||||
}
|
||||
|
||||
return self.render_to_response(context=context)
|
||||
|
||||
if not self.page_group and not self.page_range:
|
||||
return super(DocumentPrint, self).get(request, *args, **kwargs)
|
||||
else:
|
||||
instance = self.get_object()
|
||||
instance = self.queryset.first()
|
||||
|
||||
if self.page_group == PAGE_RANGE_RANGE:
|
||||
if self.page_range:
|
||||
@@ -759,7 +771,7 @@ class DocumentPrint(FormView):
|
||||
return self.render_to_response(context=context)
|
||||
|
||||
def get_extra_context(self):
|
||||
instance = self.get_object()
|
||||
instance = self.queryset.first()
|
||||
|
||||
context = {
|
||||
'form_action': reverse(
|
||||
@@ -774,11 +786,8 @@ class DocumentPrint(FormView):
|
||||
|
||||
return context
|
||||
|
||||
def get_object(self):
|
||||
return get_object_or_404(Document, pk=self.kwargs['pk'])
|
||||
|
||||
def get_template_names(self):
|
||||
if self.page_group or self.page_range:
|
||||
if self.page_group or self.page_range or self.queryset.count() > 1:
|
||||
return ('documents/document_print.html',)
|
||||
else:
|
||||
return (self.template_name,)
|
||||
|
||||
Reference in New Issue
Block a user