Add statistics view permission. Convert statistics views to CBV.
This commit is contained in:
@@ -4,12 +4,10 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from navigation import Link
|
||||
|
||||
|
||||
def is_superuser(context):
|
||||
return context['request'].user.is_staff or context['request'].user.is_superuser
|
||||
from .permissions import permission_statistics_view
|
||||
|
||||
|
||||
link_execute = Link(condition=is_superuser, text=_('Execute'), view='statistics:execute', args='object.id')
|
||||
link_namespace_details = Link(text=_('Namespace details'), view='statistics:namespace_details', args='resolved_object.id', condition=is_superuser)
|
||||
link_namespace_list = Link(condition=is_superuser, text=_('Namespace list'), view='statistics:namespace_list')
|
||||
link_statistics = Link(condition=is_superuser, icon='fa fa-sort-numeric-desc', text=_('Statistics'), view='statistics:namespace_list')
|
||||
link_execute = Link(permissions=[permission_statistics_view], text=_('Execute'), view='statistics:statistic_execute', args='resolved_object.id')
|
||||
link_namespace_details = Link(permissions=[permission_statistics_view], text=_('Namespace details'), view='statistics:namespace_details', args='resolved_object.id')
|
||||
link_namespace_list = Link(permissions=[permission_statistics_view], text=_('Namespace list'), view='statistics:namespace_list')
|
||||
link_statistics = Link(icon='fa fa-sort-numeric-desc', permissions=[permission_statistics_view], text=_('Statistics'), view='statistics:namespace_list')
|
||||
|
||||
9
mayan/apps/statistics/permissions.py
Normal file
9
mayan/apps/statistics/permissions.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from permissions import PermissionNamespace
|
||||
|
||||
namespace = PermissionNamespace('statistics', _('Statistics'))
|
||||
|
||||
permission_statistics_view = namespace.add_permission(name='statistics_view', label=_('View statistics'))
|
||||
@@ -2,9 +2,11 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
from .views import NamespaceDetailView, NamespaceListView, StatisticExecute
|
||||
|
||||
urlpatterns = patterns(
|
||||
'statistics.views',
|
||||
url(r'^$', 'namespace_list', name='namespace_list'),
|
||||
url(r'^namespace/(?P<namespace_id>\w+)/details/$', 'namespace_details', name='namespace_details'),
|
||||
url(r'^(?P<statistic_id>\w+)/execute/$', 'execute', name='execute'),
|
||||
url(r'^$', NamespaceListView.as_view(), name='namespace_list'),
|
||||
url(r'^namespace/(?P<namespace_id>\w+)/details/$', NamespaceDetailView.as_view(), name='namespace_details'),
|
||||
url(r'^(?P<statistic_id>\w+)/execute/$', StatisticExecute.as_view(), name='statistic_execute'),
|
||||
)
|
||||
|
||||
@@ -5,46 +5,51 @@ from django.shortcuts import render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common.views import SimpleView
|
||||
|
||||
from .classes import Statistic, StatisticNamespace
|
||||
from .permissions import permission_statistics_view
|
||||
|
||||
|
||||
def namespace_list(request):
|
||||
if not request.user.is_superuser or not request.user.is_staff:
|
||||
raise PermissionDenied
|
||||
class NamespaceListView(SimpleView):
|
||||
template_name = 'appearance/generic_list.html'
|
||||
view_permission = permission_statistics_view
|
||||
|
||||
return render_to_response('appearance/generic_list.html', {
|
||||
'object_list': StatisticNamespace.get_all(),
|
||||
'hide_link': True,
|
||||
'title': _('Statistics namespaces'),
|
||||
}, context_instance=RequestContext(request))
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
'hide_link': True,
|
||||
'object_list': StatisticNamespace.get_all(),
|
||||
'title': _('Statistics namespaces'),
|
||||
}
|
||||
|
||||
|
||||
def namespace_details(request, namespace_id):
|
||||
if not request.user.is_superuser or not request.user.is_staff:
|
||||
raise PermissionDenied
|
||||
class NamespaceDetailView(SimpleView):
|
||||
template_name = 'appearance/generic_list.html'
|
||||
view_permission = permission_statistics_view
|
||||
|
||||
namespace = StatisticNamespace.get(namespace_id)
|
||||
def get_extra_context(self):
|
||||
namespace = StatisticNamespace.get(self.kwargs['namespace_id'])
|
||||
|
||||
return render_to_response('appearance/generic_list.html', {
|
||||
'object': namespace,
|
||||
'namespace': namespace,
|
||||
'object_list': namespace.statistics,
|
||||
'hide_link': True,
|
||||
'title': _('Namespace details for: %s') % namespace,
|
||||
}, context_instance=RequestContext(request))
|
||||
return {
|
||||
'hide_link': True,
|
||||
'object': namespace,
|
||||
'object_list': namespace.statistics,
|
||||
'title': _('Namespace details for: %s') % namespace,
|
||||
}
|
||||
|
||||
|
||||
def execute(request, statistic_id):
|
||||
if not request.user.is_superuser or not request.user.is_staff:
|
||||
raise PermissionDenied
|
||||
class StatisticExecute(SimpleView):
|
||||
template_name = 'appearance/generic_list.html'
|
||||
view_permission = permission_statistics_view
|
||||
|
||||
statictic = Statistic.get(statistic_id)
|
||||
def get_extra_context(self):
|
||||
statictic = Statistic.get(self.kwargs['statistic_id'])
|
||||
|
||||
return render_to_response('appearance/generic_list.html', {
|
||||
'object': statictic,
|
||||
'namespace': statictic.namespace,
|
||||
'navigation_object_list': ['namespace', 'object'],
|
||||
'object_list': statictic.get_results(),
|
||||
'hide_link': True,
|
||||
'title': _('Results for: %s') % statictic,
|
||||
}, context_instance=RequestContext(request))
|
||||
return {
|
||||
'hide_link': True,
|
||||
'namespace': statictic.namespace,
|
||||
'navigation_object_list': ['namespace', 'object'],
|
||||
'object': statictic,
|
||||
'object_list': statictic.get_results(),
|
||||
'title': _('Results for: %s') % statictic,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user