diff --git a/mayan/apps/documents/__init__.py b/mayan/apps/documents/__init__.py index 1d587aedff..6f2485d686 100644 --- a/mayan/apps/documents/__init__.py +++ b/mayan/apps/documents/__init__.py @@ -22,7 +22,6 @@ from .events import (HISTORY_DOCUMENT_CREATED, from .links import (document_clear_image_cache, document_clear_transformations, document_delete, document_download, document_edit, - document_find_all_duplicates, document_find_duplicates, document_history_view, document_list, document_list_recent, document_missing_list, document_multiple_delete, @@ -75,8 +74,8 @@ register_links(['documents:setup_document_type_metadata', 'documents:document_ty register_links([DocumentTypeFilename, 'documents:document_type_filename_list', 'documents:document_type_filename_create'], [document_type_filename_create], menu_name='sidebar') # Register document links -register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations]) -register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'index_instance_node_view', 'search', 'results', 'document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download]) +register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_clear_transformations]) +register_multi_item_links(['folders:folder_view', 'index_instance_node_view', 'search', 'results', 'document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download]) # Document Version links register_links(DocumentVersion, [document_version_revert, document_version_download]) @@ -103,7 +102,7 @@ register_links('documents:document_page_transformation_create', [document_page_t register_links(['documents:document_page_transformation_edit', 'documents:document_page_transformation_delete'], [document_page_transformation_create], menu_name='sidebar') register_diagnostic('documents', _(u'Documents'), document_missing_list) -register_maintenance_links([document_find_all_duplicates, document_update_page_count, document_clear_image_cache], namespace='documents', title=_(u'Documents')) +register_maintenance_links([document_update_page_count, document_clear_image_cache], namespace='documents', title=_(u'Documents')) register_model_list_columns(Document, [ { 'name': _(u'Thumbnail'), 'attribute': diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 9d3b1b5d98..fbc9e85beb 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -46,8 +46,6 @@ document_edit = {'text': _(u'Edit'), 'view': 'documents:document_edit', 'args': document_download = {'text': _(u'Download'), 'view': 'documents:document_download', 'args': 'object.id', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} document_multiple_download = {'text': _(u'Download'), 'view': 'documents:document_multiple_download', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} document_version_download = {'text': _(u'Download'), 'view': 'documents:document_version_download', 'args': 'object.pk', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} -document_find_duplicates = {'text': _(u'Find duplicates'), 'view': 'documents:document_find_duplicates', 'args': 'object.id', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW]} -document_find_all_duplicates = {'text': _(u'Find all duplicates'), 'view': 'documents:document_find_all_duplicates', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'description': _(u'Search all the documents\' checksums and return a list of the exact matches.')} document_update_page_count = {'text': _(u'Update office documents\' page count'), 'view': 'documents:document_update_page_count', 'famfam': 'page_white_csharp', 'permissions': [PERMISSION_DOCUMENT_TOOLS], 'description': _(u'Update the page count of the office type documents. This is useful when enabling office document support after there were already office type documents in the database.')} document_clear_transformations = {'text': _(u'Clear transformations'), 'view': 'documents:document_clear_transformations', 'args': 'object.id', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_multiple_clear_transformations = {'text': _(u'Clear transformations'), 'view': 'documents:document_multiple_clear_transformations', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index dbd98d5b75..916371c5ad 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -26,7 +26,6 @@ urlpatterns = patterns('documents.views', url(r'^(?P\d+)/download/$', 'document_download', (), 'document_download'), url(r'^multiple/download/$', 'document_multiple_download', (), 'document_multiple_download'), - url(r'^(?P\d+)/find_duplicates/$', 'document_find_duplicates', (), 'document_find_duplicates'), url(r'^(?P\d+)/clear_transformations/$', 'document_clear_transformations', (), 'document_clear_transformations'), url(r'^(?P\d+)/version/all/$', 'document_version_list', (), 'document_version_list'), @@ -34,7 +33,6 @@ urlpatterns = patterns('documents.views', url(r'^document/version/(?P\d+)/revert/$', 'document_version_revert', (), 'document_version_revert'), url(r'^multiple/clear_transformations/$', 'document_multiple_clear_transformations', (), 'document_multiple_clear_transformations'), - url(r'^duplicates/list/$', 'document_find_all_duplicates', (), 'document_find_all_duplicates'), url(r'^maintenance/update_page_count/$', 'document_update_page_count', (), 'document_update_page_count'), url(r'^maintenance/clear_image_cache/$', 'document_clear_image_cache', (), 'document_clear_image_cache'), diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index c6a544cd0d..f95308247f 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -398,60 +398,6 @@ def document_multiple_download(request): ) -def document_find_duplicates(request, document_id): - document = get_object_or_404(Document, pk=document_id) - - try: - Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW]) - except PermissionDenied: - AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document) - - extra_context = { - 'title': _(u'Duplicates of: %s') % document, - 'object': document, - } - return _find_duplicate_list(request, [document], include_source=True, confirmation=False, extra_context=extra_context) - - -def _find_duplicate_list(request, source_document_list=Document.objects.all(), include_source=False, confirmation=True, extra_context=None): - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', None))) - - if confirmation and request.method != 'POST': - return render_to_response('main/generic_confirm.html', { - 'previous': previous, - 'title': _(u'Are you sure you wish to find all duplicates?'), - 'message': _(u'On large databases this operation may take some time to execute.'), - 'form_icon': u'page_refresh.png', - }, context_instance=RequestContext(request)) - else: - duplicated = [] - for document in source_document_list: - if document.pk not in duplicated: - results = DocumentVersion.objects.filter(checksum=document.latest_version.checksum).exclude(id__in=duplicated).exclude(pk=document.pk).values_list('document__pk', flat=True) - duplicated.extend(results) - - if include_source and results: - duplicated.append(document.pk) - context = { - 'hide_links': True, - 'multi_select_as_buttons': True, - } - - if extra_context: - context.update(extra_context) - - return document_list( - request, - object_list=Document.objects.filter(pk__in=duplicated), - title=_(u'Duplicated documents'), - extra_context=context - ) - - -def document_find_all_duplicates(request): - return _find_duplicate_list(request, include_source=True) - - def document_update_page_count(request): Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TOOLS]) diff --git a/mayan/apps/folders/__init__.py b/mayan/apps/folders/__init__.py index ff821775d2..d8865fc5ab 100644 --- a/mayan/apps/folders/__init__.py +++ b/mayan/apps/folders/__init__.py @@ -27,7 +27,7 @@ register_links(Folder, [folder_view, folder_edit, folder_delete, folder_acl_list register_links([Folder, 'folders:folder_list', 'folders:folder_create'], [folder_list, folder_create], menu_name='secondary_menu') register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar") -register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'indexing:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [folder_add_multiple_documents]) +register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'indexing:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [folder_add_multiple_documents]) register_multi_item_links(['folders:folder_view'], [folder_document_multiple_remove]) register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folders:folder_list', 'folders:folder_create', 'folders:folder_edit', 'folders:folder_delete', 'folders:folder_view', 'folders:folder_document_multiple_remove']) diff --git a/mayan/apps/metadata/__init__.py b/mayan/apps/metadata/__init__.py index 83c45f90eb..a18223e346 100644 --- a/mayan/apps/metadata/__init__.py +++ b/mayan/apps/metadata/__init__.py @@ -33,7 +33,7 @@ register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_dele register_links([MetadataType, 'metadata:setup_metadata_type_list', 'metadata:setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu') register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_members, setup_metadata_set_delete]) register_links([MetadataSet, 'metadata:setup_metadata_set_list', 'metadata:setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='secondary_menu') -register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove]) +register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove]) register_setup(setup_metadata_set_list) register_setup(setup_metadata_type_list) diff --git a/mayan/apps/ocr/__init__.py b/mayan/apps/ocr/__init__.py index 216cd2545d..a8406673ec 100644 --- a/mayan/apps/ocr/__init__.py +++ b/mayan/apps/ocr/__init__.py @@ -26,7 +26,7 @@ from .tasks import task_do_ocr logger = logging.getLogger(__name__) register_links(Document, [submit_document]) -register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexing:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'document:document_list_recent', 'tags:tag_tagged_item_list'], [submit_document_multiple]) +register_multi_item_links(['folders:folder_view', 'indexing:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'document:document_list_recent', 'tags:tag_tagged_item_list'], [submit_document_multiple]) register_multi_item_links(['ocr:queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete]) register_links(['ocr:queue_document_list'], [queue_document_list], menu_name='secondary_menu') diff --git a/mayan/apps/tags/__init__.py b/mayan/apps/tags/__init__.py index 5d52cb2c24..e1f39ea4e0 100644 --- a/mayan/apps/tags/__init__.py +++ b/mayan/apps/tags/__init__.py @@ -60,6 +60,6 @@ register_links(Document, [tag_document_list], menu_name='form_header') register_links(['tags:document_tags', 'tags:tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar') register_multi_item_links(['document_tags'], [single_document_multiple_tag_remove]) -register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove]) +register_multi_item_links(['folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove]) document_search.add_model_field('tags__label', label=_(u'Tags'))