diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index 789aaf305d..9a7addd40f 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -68,6 +68,8 @@ document_page_text = {'text': _('page text'), 'view': 'document_page_text', 'arg 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_page_navigation_first = {'text': _('first page'), 'view': 'document_page_navigation_first', 'args': 'object.id', 'famfam': 'resultset_first', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}} +document_page_navigation_last = {'text': _('last page'), 'view': 'document_page_navigation_last', 'args': 'object.id', 'famfam': 'resultset_last', '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]}} @@ -83,7 +85,7 @@ if ENABLE_SINGLE_DOCUMENT_UPLOAD: else: register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_document_with_type', 'upload_multiple_documents_with_type'], [document_list_recent, document_list, document_create_multiple], menu_name='sidebar') -register_links(DocumentPage, [document_page_transformation_list, document_page_view, document_page_text, document_page_edit, document_page_navigation_previous, document_page_navigation_next]) +register_links(DocumentPage, [document_page_transformation_list, document_page_view, document_page_text, document_page_edit, document_page_navigation_first, document_page_navigation_previous, document_page_navigation_next, document_page_navigation_last]) 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/urls.py b/apps/documents/urls.py index 454811f4dc..e4c564d34d 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -46,6 +46,8 @@ urlpatterns = patterns('documents.views', 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+)/navigation/first/$', 'document_page_navigation_first', (), 'document_page_navigation_first'), + url(r'^document/page/(?P\d+)/navigation/last/$', 'document_page_navigation_last', (), 'document_page_navigation_last'), 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 0a8c4a31e5..a5050157b0 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -975,11 +975,28 @@ def document_page_navigation_previous(request, document_page_id): 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_first(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) + document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=1) + return HttpResponseRedirect(reverse(view, args=[document_page.pk])) + + +def document_page_navigation_last(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) + document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=document_page.document.documentpage_set.count()) + return HttpResponseRedirect(reverse(view, args=[document_page.pk])) + def document_list_recent(request): check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW]) - return render_to_response('generic_list.html', { 'object_list': [recent_document.document for recent_document in RecentDocument.objects.all()], 'title': _(u'recent documents'),