47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
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)
|