Added a new diagnostics tab under the tools menu

This commit is contained in:
Roberto Rosario
2011-03-21 01:00:56 -04:00
parent 1271037974
commit 447b2f2817
8 changed files with 59 additions and 4 deletions

View File

@@ -6,13 +6,12 @@ from django.core.urlresolvers import reverse
from common.api import register_links, register_menu, \
register_model_list_columns, register_multi_item_links
from common.utils import pretty_size
from common.conf import settings as common_settings
from main.api import register_diagnostic
from permissions.api import register_permissions
from models import Document, DocumentPage, DocumentPageTransformation
from staging import StagingFile
from common.conf import settings as common_settings
from conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
PERMISSION_DOCUMENT_CREATE = 'document_create'
@@ -59,6 +58,8 @@ document_page_transformation_go_back = {'text':_('return to document'), 'view':'
document_page_go_back = {'text':_('return to document'), 'view':'document_view', 'args':'object.document.id', 'famfam':'page_go', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_VIEW]}}
document_missing_list = {'text':_('Find missing document files'), 'url':reverse('document_missing_list'), 'famfam':'folder_page', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_VIEW]}}
staging_file_preview = {'text':_('preview'), 'class':'fancybox-noscaling', 'view':'staging_file_preview', 'args':'object.id', 'famfam':'drive_magnify'}
staging_file_delete = {'text':_('delete'), 'view':'staging_file_delete', 'args':'object.id', 'famfam':'drive_delete'}
@@ -79,6 +80,7 @@ register_links(['document_page_view', 'document_page_transformation_edit', 'docu
register_links(StagingFile, [staging_file_preview, staging_file_delete])
register_diagnostic('documents', _(u'Documents'), document_missing_list)
def document_exists(document):

View File

@@ -45,4 +45,6 @@ urlpatterns = patterns('documents.views',
url(r'^document/page/(?P<document_page_id>\d+)/transformation/create/$', 'document_page_transformation_create', (), 'document_page_transformation_create'),
url(r'^document/page/transformation/(?P<document_page_transformation_id>\d+)/edit/$', 'document_page_transformation_edit', (), 'document_page_transformation_edit'),
url(r'^document/page/transformation/(?P<document_page_transformation_id>\d+)/delete/$', 'document_page_transformation_delete', (), 'document_page_transformation_delete'),
url(r'^document/missing/list/$', 'document_missing_list', (), 'document_missing_list'),
)

View File

@@ -38,6 +38,7 @@ from documents.conf.settings import DEFAULT_TRANSFORMATIONS
from documents.conf.settings import AUTOMATIC_OCR
from documents.conf.settings import UNCOMPRESS_COMPRESSED_LOCAL_FILES
from documents.conf.settings import UNCOMPRESS_COMPRESSED_STAGING_FILES
from documents.conf.settings import STORAGE_BACKEND
from documents import PERMISSION_DOCUMENT_CREATE, \
PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
@@ -879,3 +880,17 @@ def document_view_simple(request, document_id):
'subtemplates_dict':subtemplates_dict,
'sidebar_subtemplates_dict':sidebar_groups,
}, context_instance=RequestContext(request))
def document_missing_list(request):
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
missing_id_list = []
for document in Document.objects.only('id',):
if not STORAGE_BACKEND().exists(document.file):
missing_id_list.append(document.pk)
return render_to_response('generic_list.html', {
'object_list':Document.objects.in_bulk(missing_id_list).values(),
'title':_(u'missing documents'),
}, context_instance=RequestContext(request))