Rename the DeletedDocument proxy model to a TrashedDocument. Rename the deleted_document views to trashed_document. Rename the document and deleted_document URL parameters to trashed_document. Update URL parameters to the '_id' form. Add keyword arguments. Update use of .filter_by_access(). Enclose trashed document restore method in a transaction. Sort arguments. Update app for compliance with MERCs 5 and 6. Add document page view tests. Add favorite document view tests. Movernize tests. Replace use of urlencode with furl. Update views to use ExternalObjectMixin. Refactor the document and version download views. Rename the DocumentDocumentTypeEditView to DocumentChangeTypeView. Move the trashed document views to their own module. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
135 lines
4.7 KiB
Python
135 lines
4.7 KiB
Python
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_dashboard_document_types, icon_dashboard_documents_in_trash,
|
|
icon_dashboard_new_documents_this_month, icon_dashboard_pages_per_month,
|
|
icon_dashboard_total_document
|
|
)
|
|
from .permissions import (
|
|
permission_document_type_view, permission_document_view
|
|
)
|
|
from .statistics import new_document_pages_this_month, new_documents_this_month
|
|
|
|
|
|
class DashboardWidgetDocumentPagesTotal(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_pages_per_month
|
|
label = _('Total pages')
|
|
link = reverse_lazy(
|
|
viewname='statistics:statistic_detail',
|
|
kwargs={'slug': 'total-document-pages-at-each-month'}
|
|
)
|
|
|
|
def render(self, request):
|
|
AccessControlList = apps.get_model(
|
|
app_label='acls', model_name='AccessControlList'
|
|
)
|
|
DocumentPage = apps.get_model(
|
|
app_label='documents', model_name='DocumentPage'
|
|
)
|
|
self.count = AccessControlList.objects.restrict_queryset(
|
|
permission=permission_document_view,
|
|
queryset=DocumentPage.objects.all(), user=request.user
|
|
).count()
|
|
return super(DashboardWidgetDocumentPagesTotal, self).render(
|
|
request=request
|
|
)
|
|
|
|
|
|
class DashboardWidgetDocumentsTotal(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_total_document
|
|
label = _('Total documents')
|
|
link = reverse_lazy(viewname='documents:document_list')
|
|
|
|
def render(self, request):
|
|
AccessControlList = apps.get_model(
|
|
app_label='acls', model_name='AccessControlList'
|
|
)
|
|
Document = apps.get_model(
|
|
app_label='documents', model_name='Document'
|
|
)
|
|
self.count = AccessControlList.objects.restrict_queryset(
|
|
permission=permission_document_view,
|
|
queryset=Document.objects.all(), user=request.user
|
|
).count()
|
|
return super(DashboardWidgetDocumentsTotal, self).render(
|
|
request=request
|
|
)
|
|
|
|
|
|
class DashboardWidgetDocumentsInTrash(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_documents_in_trash
|
|
label = _('Documents in trash')
|
|
link = reverse_lazy(viewname='documents:trashed_document_list')
|
|
|
|
def render(self, request):
|
|
AccessControlList = apps.get_model(
|
|
app_label='acls', model_name='AccessControlList'
|
|
)
|
|
TrashedDocument = apps.get_model(
|
|
app_label='documents', model_name='TrashedDocument'
|
|
)
|
|
self.count = AccessControlList.objects.restrict_queryset(
|
|
permission=permission_document_view,
|
|
queryset=TrashedDocument.objects.all(), user=request.user
|
|
).count()
|
|
return super(DashboardWidgetDocumentsInTrash, self).render(
|
|
request=request
|
|
)
|
|
|
|
|
|
class DashboardWidgetDocumentsTypesTotal(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_document_types
|
|
label = _('Document types')
|
|
link = reverse_lazy(viewname='documents:document_type_list')
|
|
|
|
def render(self, request):
|
|
AccessControlList = apps.get_model(
|
|
app_label='acls', model_name='AccessControlList'
|
|
)
|
|
DocumentType = apps.get_model(
|
|
app_label='documents', model_name='DocumentType'
|
|
)
|
|
self.count = AccessControlList.objects.restrict_queryset(
|
|
permission=permission_document_type_view,
|
|
queryset=DocumentType.objects.all(), user=request.user
|
|
).count()
|
|
return super(DashboardWidgetDocumentsTypesTotal, self).render(
|
|
request=request
|
|
)
|
|
|
|
|
|
class DashboardWidgetDocumentsNewThisMonth(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_new_documents_this_month
|
|
label = _('New documents this month')
|
|
link = reverse_lazy(
|
|
viewname='statistics:statistic_detail',
|
|
kwargs={'slug': 'new-documents-per-month'}
|
|
)
|
|
|
|
def render(self, request):
|
|
self.count = new_documents_this_month(user=request.user)
|
|
return super(DashboardWidgetDocumentsNewThisMonth, self).render(
|
|
request=request
|
|
)
|
|
|
|
|
|
class DashboardWidgetDocumentsPagesNewThisMonth(DashboardWidgetNumeric):
|
|
icon_class = icon_dashboard_pages_per_month
|
|
label = _('New pages this month')
|
|
link = reverse_lazy(
|
|
viewname='statistics:statistic_detail',
|
|
kwargs={'slug': 'new-document-pages-per-month'}
|
|
)
|
|
|
|
def render(self, request):
|
|
self.count = new_document_pages_this_month(user=request.user)
|
|
return super(DashboardWidgetDocumentsPagesNewThisMonth, self).render(
|
|
request=request
|
|
)
|