diff --git a/apps/document_indexing/__init__.py b/apps/document_indexing/__init__.py index 1201fc329b..3a39c38451 100644 --- a/apps/document_indexing/__init__.py +++ b/apps/document_indexing/__init__.py @@ -4,6 +4,8 @@ from navigation.api import register_top_menu, register_sidebar_template, \ register_links from permissions.api import register_permission, set_namespace_title from main.api import register_tool +from documents.literals import PERMISSION_DOCUMENT_VIEW +from documents.models import Document from document_indexing.models import IndexInstance @@ -16,6 +18,7 @@ register_permission(PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES) index_list = {'text': _(u'index list'), 'view': 'index_instance_list', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW]} index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_list', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True} +document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list'}, children_path_regex=[r'^document_indexing'], position=10) @@ -26,3 +29,5 @@ register_tool(rebuild_index_instances, namespace='document_indexing', title=_(u' register_sidebar_template(['index_instance_list'], 'indexing_help.html') register_links(IndexInstance, [index_parent]) + +register_links(Document, [document_index_list], menu_name='form_header') diff --git a/apps/document_indexing/urls.py b/apps/document_indexing/urls.py index 5aa4fcf3a5..9bebdf8af2 100644 --- a/apps/document_indexing/urls.py +++ b/apps/document_indexing/urls.py @@ -4,4 +4,6 @@ urlpatterns = patterns('document_indexing.views', url(r'^(?P\d+)/list/$', 'index_instance_list', (), 'index_instance_list'), url(r'^list/$', 'index_instance_list', (), 'index_instance_list'), url(r'^rebuild/all/$', 'rebuild_index_instances', (), 'rebuild_index_instances'), + + url(r'^list/for/document/(?P\d+)/$', 'document_index_list', (), 'document_index_list'), ) diff --git a/apps/document_indexing/views.py b/apps/document_indexing/views.py index fc37307dc9..ee461eced2 100644 --- a/apps/document_indexing/views.py +++ b/apps/document_indexing/views.py @@ -6,6 +6,8 @@ from django.contrib import messages from django.utils.safestring import mark_safe from permissions.api import check_permissions +from documents.literals import PERMISSION_DOCUMENT_VIEW +from documents.models import Document from document_indexing import PERMISSION_DOCUMENT_INDEXING_VIEW, \ PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES @@ -80,3 +82,21 @@ def rebuild_index_instances(request): messages.error(request, _(u'Index rebuild error: %s') % e) return HttpResponseRedirect(next) + + +def document_index_list(request, document_id): + check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_INDEXING_VIEW]) + document = get_object_or_404(Document, pk=document_id) + + object_list = [] + + for index_instance in document.indexinstance_set.all(): + object_list.append(get_breadcrumbs(index_instance, single_link=True, include_count=True)) + + + return render_to_response('generic_list.html', { + 'title': _(u'indexes containing: %s') % document, + 'object_list': object_list, + 'hide_link': True, + 'object': document + }, context_instance=RequestContext(request)) diff --git a/apps/documents/views.py b/apps/documents/views.py index ee317312e5..d29e9eda18 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -33,7 +33,6 @@ from metadata.api import save_metadata_list, \ from metadata.forms import MetadataFormSet, MetadataSelectionForm from navigation.utils import resolve_to_name from permissions.api import check_permissions -from document_indexing.utils import get_document_indexing_subtemplate from document_indexing.api import update_indexes, delete_indexes from history.api import create_history @@ -349,9 +348,6 @@ def document_view(request, document_id, advanced=False): if document_group_subtemplate: subtemplates_list.append(document_group_subtemplate) - if document.indexinstance_set.count(): - subtemplates_list.append(get_document_indexing_subtemplate(document)) - return render_to_response('generic_detail.html', { 'object': document, 'document': document,