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, \
|
from common.api import register_links, register_menu, \
|
||||||
register_model_list_columns, register_multi_item_links
|
register_model_list_columns, register_multi_item_links
|
||||||
from common.utils import pretty_size
|
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 permissions.api import register_permissions
|
||||||
|
|
||||||
from models import Document, DocumentPage, DocumentPageTransformation
|
from models import Document, DocumentPage, DocumentPageTransformation
|
||||||
from staging import StagingFile
|
from staging import StagingFile
|
||||||
|
|
||||||
from common.conf import settings as common_settings
|
|
||||||
from conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
from conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
||||||
|
|
||||||
PERMISSION_DOCUMENT_CREATE = 'document_create'
|
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_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_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'}
|
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_links(StagingFile, [staging_file_preview, staging_file_delete])
|
||||||
|
|
||||||
|
register_diagnostic('documents', _(u'Documents'), document_missing_list)
|
||||||
|
|
||||||
|
|
||||||
def document_exists(document):
|
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/(?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+)/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/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 AUTOMATIC_OCR
|
||||||
from documents.conf.settings import UNCOMPRESS_COMPRESSED_LOCAL_FILES
|
from documents.conf.settings import UNCOMPRESS_COMPRESSED_LOCAL_FILES
|
||||||
from documents.conf.settings import UNCOMPRESS_COMPRESSED_STAGING_FILES
|
from documents.conf.settings import UNCOMPRESS_COMPRESSED_STAGING_FILES
|
||||||
|
from documents.conf.settings import STORAGE_BACKEND
|
||||||
|
|
||||||
from documents import PERMISSION_DOCUMENT_CREATE, \
|
from documents import PERMISSION_DOCUMENT_CREATE, \
|
||||||
PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
|
PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
|
||||||
@@ -879,3 +880,17 @@ def document_view_simple(request, document_id):
|
|||||||
'subtemplates_dict':subtemplates_dict,
|
'subtemplates_dict':subtemplates_dict,
|
||||||
'sidebar_subtemplates_dict':sidebar_groups,
|
'sidebar_subtemplates_dict':sidebar_groups,
|
||||||
}, context_instance=RequestContext(request))
|
}, 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
|
from main.conf.settings import SIDE_BAR_SEARCH
|
||||||
|
|
||||||
check_settings = {'text':_(u'settings'), 'view':'check_settings', 'famfam':'cog'}
|
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 = [
|
main_menu = [
|
||||||
{'text':_(u'home'), 'view':'home', 'famfam':'house', 'position':0},
|
{'text':_(u'home'), 'view':'home', 'famfam':'house', 'position':0},
|
||||||
{'text':_(u'tools'), 'view':'tools_menu', 'links': [
|
{'text':_(u'tools'), 'view':'tools_menu', 'links': [
|
||||||
document_find_all_duplicates, filesystem_serving_recreate_all_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},
|
],'famfam':'wrench', 'name':'tools','position':7},
|
||||||
|
|
||||||
{'text':_(u'setup'), 'view':'check_settings', 'links': [
|
{'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'^check_settings/$', 'check_settings', (), 'check_settings'),
|
||||||
url(r'^tools_menu/$', 'blank_menu', (), 'tools_menu'),
|
url(r'^tools_menu/$', 'blank_menu', (), 'tools_menu'),
|
||||||
url(r'^statistics/$', 'statistics', (), 'statistics'),
|
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 filesystem_serving.conf import settings as filesystem_serving_settings
|
||||||
from dynamic_search.conf import settings as search_settings
|
from dynamic_search.conf import settings as search_settings
|
||||||
|
|
||||||
|
from main.api import diagnostics
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
return render_to_response('home.html', {},
|
return render_to_response('home.html', {},
|
||||||
@@ -136,3 +137,8 @@ def statistics(request):
|
|||||||
context_instance=RequestContext(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