Use ParentChild CBV to display a list of document pages. This allows fixing a page's transformations in case of error.
This commit is contained in:
@@ -16,6 +16,7 @@ from common import (
|
||||
from common.api import register_maintenance_links
|
||||
from common.classes import ModelAttribute
|
||||
from common.utils import encapsulate, validate_path
|
||||
from converter.links import link_transformation_list
|
||||
from converter.permissions import (
|
||||
PERMISSION_TRANSFORMATION_CREATE,
|
||||
PERMISSION_TRANSFORMATION_DELETE, PERMISSION_TRANSFORMATION_EDIT,
|
||||
@@ -42,9 +43,9 @@ from .links import (
|
||||
link_document_page_navigation_next,
|
||||
link_document_page_navigation_previous, link_document_page_return,
|
||||
link_document_page_rotate_left, link_document_page_rotate_right,
|
||||
link_document_page_transformation_list, link_document_page_view,
|
||||
link_document_page_view_reset, link_document_page_zoom_in,
|
||||
link_document_page_zoom_out, link_document_preview, link_document_print,
|
||||
link_document_page_view, link_document_page_view_reset,
|
||||
link_document_page_zoom_in, link_document_page_zoom_out,
|
||||
link_document_pages, link_document_preview, link_document_print,
|
||||
link_document_properties, link_document_type_create,
|
||||
link_document_type_delete, link_document_type_edit,
|
||||
link_document_type_filename_create, link_document_type_filename_delete,
|
||||
@@ -129,6 +130,7 @@ class DocumentsApp(apps.AppConfig):
|
||||
menu_facet.bind_links(links=[link_document_content], sources=[Document], position=1)
|
||||
menu_facet.bind_links(links=[link_document_properties], sources=[Document], position=2)
|
||||
menu_facet.bind_links(links=[link_document_events_view, link_document_version_list], sources=[Document], position=2)
|
||||
menu_facet.bind_links(links=[link_document_pages], sources=[Document])
|
||||
|
||||
# Document actions
|
||||
menu_object.bind_links(links=[link_document_version_revert, link_document_version_download], sources=[DocumentVersion])
|
||||
@@ -137,7 +139,8 @@ class DocumentsApp(apps.AppConfig):
|
||||
# Document pages
|
||||
menu_facet.bind_links(links=[link_document_page_rotate_left, link_document_page_rotate_right, link_document_page_zoom_in, link_document_page_zoom_out, link_document_page_view_reset], sources=['documents:document_page_view'])
|
||||
menu_facet.bind_links(links=[link_document_page_return, link_document_page_view], sources=[DocumentPage])
|
||||
menu_facet.bind_links(links=[link_document_page_navigation_first, link_document_page_navigation_previous, link_document_page_navigation_next, link_document_page_navigation_last, link_document_page_transformation_list], sources=[DocumentPage])
|
||||
menu_facet.bind_links(links=[link_document_page_navigation_first, link_document_page_navigation_previous, link_document_page_navigation_next, link_document_page_navigation_last, link_transformation_list], sources=[DocumentPage])
|
||||
menu_object.bind_links(links=[link_transformation_list], sources=[DocumentPage])
|
||||
|
||||
namespace = StatisticNamespace(name='documents', label=_('Documents'))
|
||||
namespace.add_statistic(DocumentStatistics(name='document_stats', label=_('Document tendencies')))
|
||||
|
||||
@@ -47,6 +47,7 @@ link_document_events_view = Link(permissions=[PERMISSION_EVENTS_VIEW], text=_('E
|
||||
link_document_preview = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Preview'), view='documents:document_preview', args='object.id')
|
||||
link_document_properties = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Properties'), view='documents:document_properties', args='object.id')
|
||||
link_document_version_list = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Versions'), view='documents:document_version_list', args='object.pk')
|
||||
link_document_pages = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Pages'), view='documents:document_pages', args='resolved_object.pk')
|
||||
|
||||
# Actions
|
||||
link_document_clear_transformations = Link(permissions=[PERMISSION_TRANSFORMATION_DELETE], text=_('Clear transformations'), view='documents:document_clear_transformations', args='object.id')
|
||||
@@ -75,8 +76,6 @@ link_clear_image_cache = Link(
|
||||
)
|
||||
|
||||
# Document pages
|
||||
link_document_page_transformation_list = Link(kwargs={'app_label': '"documents"', 'model': '"documentpage"', 'object_id': 'resolved_object.pk'}, permissions=[PERMISSION_TRANSFORMATION_VIEW], text=_('Transformations'), view='converter:transformation_list')
|
||||
|
||||
link_document_page_navigation_first = Link(conditional_disable=is_first_page, icon='fa fa-step-backward', keep_query=True, permissions=[PERMISSION_DOCUMENT_VIEW], text=_('First page'), view='documents:document_page_navigation_first', args='resolved_object.pk')
|
||||
link_document_page_navigation_last = Link(conditional_disable=is_last_page, icon='fa fa-step-forward', keep_query=True, text=_('Last page'), permissions=[PERMISSION_DOCUMENT_VIEW], view='documents:document_page_navigation_last', args='resolved_object.pk')
|
||||
link_document_page_navigation_previous = Link(conditional_disable=is_first_page, icon='fa fa-arrow-left', keep_query=True, permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Previous page'), view='documents:document_page_navigation_previous', args='resolved_object.pk')
|
||||
|
||||
@@ -10,7 +10,9 @@ from .api_views import (
|
||||
APIRecentDocumentListView
|
||||
)
|
||||
from .settings import PRINT_SIZE, DISPLAY_SIZE
|
||||
from .views import DocumentListView, RecentDocumentListView
|
||||
from .views import (
|
||||
DocumentListView, DocumentPageListView, RecentDocumentListView
|
||||
)
|
||||
|
||||
urlpatterns = patterns(
|
||||
'documents.views',
|
||||
@@ -43,6 +45,7 @@ urlpatterns = patterns(
|
||||
url(r'^document/version/(?P<document_version_pk>\d+)/revert/$', 'document_version_revert', (), 'document_version_revert'),
|
||||
|
||||
url(r'^(?P<document_id>\d+)/acls/$', 'document_acl_list', (), 'document_acl_list'),
|
||||
url(r'^(?P<pk>\d+)/pages/all/$', DocumentPageListView.as_view(), name='document_pages'),
|
||||
|
||||
url(r'^multiple/clear_transformations/$', 'document_multiple_clear_transformations', (), 'document_multiple_clear_transformations'),
|
||||
url(r'^maintenance/clear_image_cache/$', 'document_clear_image_cache', (), 'document_clear_image_cache'),
|
||||
|
||||
@@ -17,7 +17,7 @@ from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from common.compressed_files import CompressedFile
|
||||
from common.utils import encapsulate, pretty_size, urlquote
|
||||
from common.views import SingleObjectListView
|
||||
from common.views import ParentChildListView, SingleObjectListView
|
||||
from common.widgets import two_state_template
|
||||
from converter.literals import (
|
||||
DEFAULT_FILE_FORMAT_MIMETYPE, DEFAULT_PAGE_NUMBER, DEFAULT_ROTATION,
|
||||
@@ -72,6 +72,26 @@ class DocumentListView(SingleObjectListView):
|
||||
queryset = Document.objects.all()
|
||||
|
||||
|
||||
class DocumentPageListView(ParentChildListView):
|
||||
object_permission = PERMISSION_DOCUMENT_VIEW
|
||||
parent_queryset = Document.objects.all()
|
||||
|
||||
def get_queryset(self):
|
||||
return self.get_object().pages.all()
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(DocumentPageListView, self).get_context_data(**kwargs)
|
||||
|
||||
context.update(
|
||||
{
|
||||
#'hide_links': True,
|
||||
'title': _('Pages for document: %s') % self.get_object(),
|
||||
}
|
||||
)
|
||||
|
||||
return context
|
||||
|
||||
|
||||
class RecentDocumentListView(DocumentListView):
|
||||
extra_context = {
|
||||
'hide_links': True,
|
||||
|
||||
Reference in New Issue
Block a user