diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index aa35ab8679..8ddfd297d4 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -64,6 +64,8 @@ document_page_transformation_page_transformation_list = {'text': _('page transfo document_page_view = {'text': _('page details'), 'view': 'document_page_view', 'args': 'object.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}} document_page_edit = {'text': _('edit page'), 'view': 'document_page_edit', 'args': 'object.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_EDIT]}} +document_page_navigation_next = {'text': _('next page'), 'view': 'document_page_navigation_next', 'args': 'object.id', 'famfam': 'resultset_next', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}} +document_page_navigation_previous = {'text': _('previous page'), 'view': 'document_page_navigation_previous', 'args': 'object.id', 'famfam': 'resultset_previous', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}} document_missing_list = {'text': _('Find missing document files'), 'view': 'document_missing_list', 'famfam': 'folder_page', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}} @@ -79,7 +81,7 @@ if ENABLE_SINGLE_DOCUMENT_UPLOAD: else: register_links(['document_list', 'document_create', 'document_create_multiple', 'upload_document_with_type', 'upload_multiple_documents_with_type'], [document_list, document_create_multiple], menu_name='sidebar') -register_links(DocumentPage, [document_page_transformation_list, document_page_edit, document_page_view]) +register_links(DocumentPage, [document_page_transformation_list, document_page_edit, document_page_view, document_page_navigation_previous, document_page_navigation_next]) register_links(DocumentPageTransformation, [document_page_transformation_edit, document_page_transformation_delete]) register_links(DocumentPageTransformation, [document_page_transformation_page_edit, document_page_transformation_page_view], menu_name='sidebar') diff --git a/apps/documents/models.py b/apps/documents/models.py index d9c8fbbd82..3b3923c06d 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -375,7 +375,7 @@ class DocumentPageTransformation(models.Model): arguments = models.TextField(blank=True, null=True, verbose_name=_(u'arguments'), help_text=_(u'Use dictionaries to indentify arguments, example: {\'degrees\':90}')) def __unicode__(self): - return u'%s - %s' % (unicode(self.document_page), self.get_transformation_display()) + return u'"%s" for %s' % (self.get_transformation_display(), unicode(self.document_page)) class Meta: ordering = ('order',) diff --git a/apps/documents/urls.py b/apps/documents/urls.py index c80137a43d..86f08b5328 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -44,6 +44,8 @@ urlpatterns = patterns('documents.views', url(r'^document/page/(?P\d+)/$', 'document_page_view', (), 'document_page_view'), url(r'^document/page/(?P\d+)/edit/$', 'document_page_edit', (), 'document_page_edit'), + url(r'^document/page/(?P\d+)/navigation/next/$', 'document_page_navigation_next', (), 'document_page_navigation_next'), + url(r'^document/page/(?P\d+)/navigation/previous/$', 'document_page_navigation_previous', (), 'document_page_navigation_previous'), url(r'^document/page/(?P\d+)/transformation/list/$', 'document_page_transformation_list', (), 'document_page_transformation_list'), url(r'^document/page/(?P\d+)/transformation/create/$', 'document_page_transformation_create', (), 'document_page_transformation_create'), diff --git a/apps/documents/views.py b/apps/documents/views.py index e1a23a5bbd..2d7cd673fd 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -1,4 +1,5 @@ import zipfile +import urlparse from django.utils.translation import ugettext as _ from django.http import HttpResponse, HttpResponseRedirect @@ -23,6 +24,7 @@ from filetransfers.api import serve_file from filesystem_serving.api import document_create_fs_links, document_delete_fs_links from filesystem_serving.conf.settings import FILESERVING_ENABLE from permissions.api import check_permissions +from navigation.utils import resolve_to_name from documents.conf.settings import DELETE_STAGING_FILE_AFTER_UPLOAD from documents.conf.settings import USE_STAGING_DIRECTORY @@ -936,3 +938,29 @@ def document_page_edit(request, document_page_id): 'title': _(u'edit: %s') % document_page, 'web_theme_hide_menus': True, }, context_instance=RequestContext(request)) + + +def document_page_navigation_next(request, document_page_id): + check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW]) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', '/')).path) + + document_page = get_object_or_404(DocumentPage, pk=document_page_id) + if document_page.page_number >= document_page.document.documentpage_set.count(): + messages.warning(request, _(u'There are no more pages in this document')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + else: + document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=document_page.page_number + 1) + return HttpResponseRedirect(reverse(view, args=[document_page.pk])) + + +def document_page_navigation_previous(request, document_page_id): + check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW]) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', '/')).path) + + document_page = get_object_or_404(DocumentPage, pk=document_page_id) + if document_page.page_number <= 1: + messages.warning(request, _(u'You are already at the first page of this document')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + else: + document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=document_page.page_number - 1) + return HttpResponseRedirect(reverse(view, args=[document_page.pk]))