Added a new diagnostics tab under the tools menu
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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'),
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
7
apps/main/api.py
Normal 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
|
||||
20
apps/main/templates/diagnostics.html
Normal file
20
apps/main/templates/diagnostics.html
Normal 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 %}
|
||||
@@ -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'),
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user