Merge branch features/user_management_dashboard_widgets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -12,6 +12,7 @@ from mayan.apps.common.menus import (
|
||||
menu_list_facet, menu_object, menu_secondary, menu_setup
|
||||
)
|
||||
from mayan.apps.common.signals import perform_upgrade
|
||||
from mayan.apps.dashboards.dashboards import dashboard_main
|
||||
from mayan.apps.events.classes import ModelEventType
|
||||
from mayan.apps.events.links import (
|
||||
link_events_for_object, link_object_event_types_user_subcriptions_list
|
||||
@@ -19,6 +20,7 @@ from mayan.apps.events.links import (
|
||||
from mayan.apps.events.permissions import permission_events_view
|
||||
from mayan.apps.navigation.classes import SourceColumn
|
||||
|
||||
from .dashboard_widgets import DashboardWidgetRoleTotal
|
||||
from .events import event_role_created, event_role_edited
|
||||
from .handlers import handler_purge_permissions
|
||||
from .links import (
|
||||
@@ -66,6 +68,10 @@ class PermissionsApp(MayanAppConfig):
|
||||
attribute='label', is_identifier=True, is_sortable=True, source=Role
|
||||
)
|
||||
|
||||
dashboard_main.add_widget(
|
||||
widget=DashboardWidgetRoleTotal, order=99
|
||||
)
|
||||
|
||||
menu_list_facet.bind_links(
|
||||
links=(
|
||||
link_acl_list, link_events_for_object,
|
||||
|
||||
30
mayan/apps/permissions/dashboard_widgets.py
Normal file
30
mayan/apps/permissions/dashboard_widgets.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.apps import apps
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from mayan.apps.dashboards.classes import DashboardWidgetNumeric
|
||||
|
||||
from .icons import icon_role_list
|
||||
from .permissions import permission_role_view
|
||||
|
||||
|
||||
class DashboardWidgetRoleTotal(DashboardWidgetNumeric):
|
||||
icon_class = icon_role_list
|
||||
label = _('Total roles')
|
||||
link = reverse_lazy(viewname='permissions:role_list')
|
||||
|
||||
def render(self, request):
|
||||
AccessControlList = apps.get_model(
|
||||
app_label='acls', model_name='AccessControlList'
|
||||
)
|
||||
Role = apps.get_model(
|
||||
app_label='permissions', model_name='Role'
|
||||
)
|
||||
|
||||
self.count = AccessControlList.objects.restrict_queryset(
|
||||
permission=permission_role_view, user=request.user,
|
||||
queryset=Role.objects.all()
|
||||
).count()
|
||||
return super(DashboardWidgetRoleTotal, self).render(request)
|
||||
@@ -16,6 +16,7 @@ from mayan.apps.common.menus import (
|
||||
menu_list_facet, menu_multi_item, menu_object, menu_secondary, menu_setup,
|
||||
menu_user
|
||||
)
|
||||
from mayan.apps.dashboards.dashboards import dashboard_main
|
||||
from mayan.apps.events.classes import ModelEventType
|
||||
from mayan.apps.events.links import (
|
||||
link_events_for_object, link_object_event_types_user_subcriptions_list
|
||||
@@ -25,6 +26,9 @@ from mayan.apps.metadata.classes import MetadataLookup
|
||||
from mayan.apps.navigation.classes import SourceColumn
|
||||
from mayan.apps.rest_api.fields import DynamicSerializerField
|
||||
|
||||
from .dashboard_widgets import (
|
||||
DashboardWidgetGroupTotal, DashboardWidgetUserTotal
|
||||
)
|
||||
from .events import (
|
||||
event_group_created, event_group_edited, event_user_created,
|
||||
event_user_edited
|
||||
@@ -206,6 +210,13 @@ class UserManagementApp(MayanAppConfig):
|
||||
)
|
||||
User.add_to_class(name='save', value=get_method_user_save())
|
||||
|
||||
dashboard_main.add_widget(
|
||||
widget=DashboardWidgetUserTotal, order=99
|
||||
)
|
||||
dashboard_main.add_widget(
|
||||
widget=DashboardWidgetGroupTotal, order=99
|
||||
)
|
||||
|
||||
menu_list_facet.bind_links(
|
||||
links=(
|
||||
link_acl_list, link_events_for_object,
|
||||
|
||||
46
mayan/apps/user_management/dashboard_widgets.py
Normal file
46
mayan/apps/user_management/dashboard_widgets.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.apps import apps
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from mayan.apps.dashboards.classes import DashboardWidgetNumeric
|
||||
|
||||
from .icons import icon_group_list, icon_user_list
|
||||
from .permissions import permission_group_view, permission_user_view
|
||||
|
||||
|
||||
class DashboardWidgetUserTotal(DashboardWidgetNumeric):
|
||||
icon_class = icon_user_list
|
||||
label = _('Total users')
|
||||
link = reverse_lazy(viewname='user_management:user_list')
|
||||
|
||||
def render(self, request):
|
||||
AccessControlList = apps.get_model(
|
||||
app_label='acls', model_name='AccessControlList'
|
||||
)
|
||||
self.count = AccessControlList.objects.restrict_queryset(
|
||||
permission=permission_user_view, user=request.user,
|
||||
queryset=get_user_model().objects.all()
|
||||
).count()
|
||||
return super(DashboardWidgetUserTotal, self).render(request)
|
||||
|
||||
|
||||
class DashboardWidgetGroupTotal(DashboardWidgetNumeric):
|
||||
icon_class = icon_group_list
|
||||
label = _('Total groups')
|
||||
link = reverse_lazy(viewname='user_management:group_list')
|
||||
|
||||
def render(self, request):
|
||||
AccessControlList = apps.get_model(
|
||||
app_label='acls', model_name='AccessControlList'
|
||||
)
|
||||
Group = apps.get_model(
|
||||
app_label='auth', model_name='Group'
|
||||
)
|
||||
self.count = AccessControlList.objects.restrict_queryset(
|
||||
permission=permission_group_view, user=request.user,
|
||||
queryset=Group.objects.all()
|
||||
).count()
|
||||
return super(DashboardWidgetGroupTotal, self).render(request)
|
||||
Reference in New Issue
Block a user