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))

View File

@@ -11,12 +11,14 @@ from filesystem_serving import filesystem_serving_recreate_all_links
from main.conf.settings import SIDE_BAR_SEARCH
check_settings = {'text':_(u'settings'), 'view':'check_settings', 'famfam':'cog'}
statistics = {'text':_(u'statistics'), 'view':'statistics', 'famfam':'table'}
diagnostics = {'text':_(u'diagnostics'), 'view':'diagnostics', 'famfam':'pill'}
main_menu = [
{'text':_(u'home'), 'view':'home', 'famfam':'house', 'position':0},
{'text':_(u'tools'), 'view':'tools_menu', 'links': [
document_find_all_duplicates, filesystem_serving_recreate_all_links,
{'text':_(u'statistics'), 'view':'statistics', 'famfam':'table'}
statistics, diagnostics,
],'famfam':'wrench', 'name':'tools','position':7},
{'text':_(u'setup'), 'view':'check_settings', 'links': [

7
apps/main/api.py Normal file
View File

@@ -0,0 +1,7 @@
diagnostics = {}
def register_diagnostic(namespace, title, link):
namespace_dict = diagnostics.get(namespace, {'title':None, 'links':[]})
namespace_dict['title'] = title
namespace_dict['links'].append(link)
diagnostics[namespace] = namespace_dict

View File

@@ -0,0 +1,20 @@
{% extends "base.html" %}
{% block title %} :: {{ title|capfirst }}{% endblock %}
{% block content %}
{% for key, value in blocks.items %}
<div class="content">
<h2 class="title">{{ value.title|capfirst }}</h2>
<div class="inner">
<p>
<ul>
{% with value.links as object_navigation_links %}
{% include "generic_navigation.html" %}
{% endwith %}
</ul>
</p>
</div></div>
{% endfor %}
{% endblock %}

View File

@@ -6,4 +6,5 @@ urlpatterns = patterns('main.views',
url(r'^check_settings/$', 'check_settings', (), 'check_settings'),
url(r'^tools_menu/$', 'blank_menu', (), 'tools_menu'),
url(r'^statistics/$', 'statistics', (), 'statistics'),
url(r'^diagnostics/$', 'diagnostics_view', (), 'diagnostics'),
)

View File

@@ -15,6 +15,7 @@ from ocr.statistics import get_statistics as ocr_statistics
from filesystem_serving.conf import settings as filesystem_serving_settings
from dynamic_search.conf import settings as search_settings
from main.api import diagnostics
def home(request):
return render_to_response('home.html', {},
@@ -136,3 +137,8 @@ def statistics(request):
context_instance=RequestContext(request))
def diagnostics_view(request):
return render_to_response('diagnostics.html', {
'blocks':diagnostics,
'title':_(u'Diagnostics') },
context_instance=RequestContext(request))