Merge branch features/user_management_dashboard_widgets

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-06-28 13:45:10 -04:00
parent 80065279cb
commit b03ea61fdb
4 changed files with 93 additions and 0 deletions

View File

@@ -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,

View 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)

View File

@@ -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,

View 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)