Move diagnostics, statistics and maintenance functions from the main app into separate apps

This commit is contained in:
Roberto Rosario
2012-07-27 01:06:56 -04:00
parent f8d94be59d
commit 4fad1c3305
24 changed files with 170 additions and 87 deletions

View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from project_tools.api import register_tool
from .links import diagnostics
register_tool(diagnostics)

11
apps/diagnostics/api.py Normal file
View File

@@ -0,0 +1,11 @@
from common.utils import reverse_lazy
diagnostics = {}
def register_diagnostic(namespace, title, link):
namespace_dict = diagnostics.get(namespace, {'title': None, 'links': []})
namespace_dict['title'] = title
link.url = getattr(link, 'url', reverse_lazy(link.view))
namespace_dict['links'].append(link)
diagnostics[namespace] = namespace_dict

View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import Link
diagnostics = Link(text=_(u'diagnostics'), view='diagnostics', sprite='pill', icon='pill.png')

View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

5
apps/diagnostics/urls.py Normal file
View File

@@ -0,0 +1,5 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('diagnostics.views',
url(r'^$', 'diagnostics_view', (), 'diagnostics'),
)

17
apps/diagnostics/views.py Normal file
View File

@@ -0,0 +1,17 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from permissions.models import Permission
from .api import diagnostics
def diagnostics_view(request):
return render_to_response('diagnostics.html', {
'blocks': diagnostics,
'title': _(u'Diagnostics')
},
context_instance=RequestContext(request))

View File

@@ -3,11 +3,9 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import Link, register_top_menu
from project_tools.api import register_tool
from .conf.settings import SIDE_BAR_SEARCH, DISABLE_HOME_VIEW
from .utils import register_multi_items_links
from .links import maintenance_menu, statistics, diagnostics
__author__ = 'Roberto Rosario'
__copyright__ = 'Copyright 2011 Roberto Rosario'
@@ -46,8 +44,4 @@ def get_version():
__version__ = get_version()
register_tool(maintenance_menu)
register_tool(statistics)
register_tool(diagnostics)
register_multi_items_links()

View File

@@ -1,21 +1 @@
from common.utils import reverse_lazy
diagnostics = {}
tools = {}
def register_diagnostic(namespace, title, link):
namespace_dict = diagnostics.get(namespace, {'title': None, 'links': []})
namespace_dict['title'] = title
link.url = getattr(link, 'url', reverse_lazy(link.view))
namespace_dict['links'].append(link)
diagnostics[namespace] = namespace_dict
def register_maintenance_links(links, title=None, namespace=None):
namespace_dict = tools.get(namespace, {'title': None, 'links': []})
namespace_dict['title'] = title
for link in links:
link.url = getattr(link, 'url', reverse_lazy(link.view))
namespace_dict['links'].append(link)
tools[namespace] = namespace_dict

View File

@@ -3,11 +3,3 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import Link
def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
maintenance_menu = Link(text=_(u'maintenance'), view='maintenance_menu', sprite='wrench', icon='wrench.png')
statistics = Link(text=_(u'statistics'), view='statistics', sprite='table', icon='blackboard_sum.png', condition=is_superuser, children_view_regex=[r'statistics'])
diagnostics = Link(text=_(u'diagnostics'), view='diagnostics', sprite='pill', icon='pill.png')

View File

@@ -2,7 +2,4 @@ from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('main.views',
url(r'^$', 'home', (), 'home'),
url(r'^maintenance_menu/$', 'maintenance_menu', (), 'maintenance_menu'),
url(r'^statistics/$', 'statistics', (), 'statistics'),
url(r'^diagnostics/$', 'diagnostics_view', (), 'diagnostics'),
)

View File

@@ -2,16 +2,11 @@ from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from documents.statistics import get_statistics as documents_statistics
from ocr.statistics import get_statistics as ocr_statistics
from permissions.models import Permission
from .api import diagnostics, tools
from .conf.settings import DISABLE_HOME_VIEW
@@ -21,48 +16,3 @@ def home(request):
else:
return render_to_response('home.html', {},
context_instance=RequestContext(request))
def maintenance_menu(request):
user_tools = {}
for namespace, values in tools.items():
user_tools[namespace] = {
'title': values['title']
}
user_tools[namespace].setdefault('links', [])
for link in values['links']:
try:
permissions = link.permissions
Permission.objects.check_permissions(request.user, permissions)
user_tools[namespace]['links'].append(link)
except PermissionDenied:
pass
return render_to_response('tools.html', {
'blocks': user_tools,
'title': _(u'maintenance menu')
},
context_instance=RequestContext(request))
def statistics(request):
if request.user.is_superuser or request.user.is_staff:
blocks = []
blocks.append(documents_statistics())
blocks.append(ocr_statistics())
return render_to_response('statistics.html', {
'blocks': blocks,
'title': _(u'Statistics')
},
context_instance=RequestContext(request))
else:
raise PermissionDenied
def diagnostics_view(request):
return render_to_response('diagnostics.html', {
'blocks': diagnostics,
'title': _(u'Diagnostics')
},
context_instance=RequestContext(request))

View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from project_tools.api import register_tool
from .links import maintenance_menu, statistics
register_tool(maintenance_menu)

12
apps/maintenance/api.py Normal file
View File

@@ -0,0 +1,12 @@
from common.utils import reverse_lazy
tools = {}
def register_maintenance_links(links, title=None, namespace=None):
namespace_dict = tools.get(namespace, {'title': None, 'links': []})
namespace_dict['title'] = title
for link in links:
link.url = getattr(link, 'url', reverse_lazy(link.view))
namespace_dict['links'].append(link)
tools[namespace] = namespace_dict

View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import Link
maintenance_menu = Link(text=_(u'maintenance'), view='maintenance_menu', sprite='wrench', icon='wrench.png')

View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

5
apps/maintenance/urls.py Normal file
View File

@@ -0,0 +1,5 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('maintenance.views',
url(r'^$', 'maintenance_menu', (), 'maintenance_menu'),
)

29
apps/maintenance/views.py Normal file
View File

@@ -0,0 +1,29 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from .api import tools
def maintenance_menu(request):
user_tools = {}
for namespace, values in tools.items():
user_tools[namespace] = {
'title': values['title']
}
user_tools[namespace].setdefault('links', [])
for link in values['links']:
try:
permissions = link.permissions
Permission.objects.check_permissions(request.user, permissions)
user_tools[namespace]['links'].append(link)
except PermissionDenied:
pass
return render_to_response('tools.html', {
'blocks': user_tools,
'title': _(u'maintenance menu')
},
context_instance=RequestContext(request))

View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from project_tools.api import register_tool
from .links import statistics
register_tool(statistics)

11
apps/statistics/links.py Normal file
View File

@@ -0,0 +1,11 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import Link
def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
statistics = Link(text=_(u'statistics'), view='statistics', sprite='table', icon='blackboard_sum.png', condition=is_superuser, children_view_regex=[r'statistics'])

View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

5
apps/statistics/urls.py Normal file
View File

@@ -0,0 +1,5 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('statistics.views',
url(r'^$', 'statistics', (), 'statistics'),
)

25
apps/statistics/views.py Normal file
View File

@@ -0,0 +1,25 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from documents.statistics import get_statistics as documents_statistics
from ocr.statistics import get_statistics as ocr_statistics
from .api import diagnostics, tools
def statistics(request):
if request.user.is_superuser or request.user.is_staff:
blocks = []
blocks.append(documents_statistics())
blocks.append(ocr_statistics())
return render_to_response('statistics.html', {
'blocks': blocks,
'title': _(u'Statistics')
},
context_instance=RequestContext(request))
else:
raise PermissionDenied

View File

@@ -168,6 +168,8 @@ INSTALLED_APPS = (
# Mayan EDMS
'main',
'installation',
'diagnostics',
'maintenance',
'storage',
'folders',
'tags',
@@ -186,6 +188,7 @@ INSTALLED_APPS = (
'checkouts',
'rest_api',
'bootstrap',
'statistics',
# Has to be last so the other apps can register it's signals
'signaler',

View File

@@ -37,6 +37,9 @@ urlpatterns = patterns('',
(r'^installation/', include('installation.urls')),
(r'^scheduler/', include('scheduler.urls')),
(r'^bootstrap/', include('bootstrap.urls')),
(r'^diagnostics/', include('diagnostics.urls')),
(r'^maintenance/', include('maintenance.urls')),
(r'^statistics/', include('statistics.urls')),
)