Discussion:
[Mayan EDMS: 2249] Pagination patch for Cabinets Details
LeVon Smoker
2018-01-24 13:31:45 UTC
Permalink
Has anyone developed a patch to add pagination for the documents view when
going in through the Cabinets menu / All / Details? We have a cabinet with
over 1000 documents in it, and the page takes minutes (or the browser locks
up) to render all of them documents/thumbnails.
--
---
You received this message because you are subscribed to the Google Groups "Mayan EDMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mayan-edms+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
LeVon Smoker
2018-01-30 18:44:28 UTC
Permalink
Answering my own question...

Patch mayan/apps/cabinets/views.py b/mayan/apps/cabinets/views.py:

Add at/near the top:

from django.views.generic.list import MultipleObjectMixin
from django.conf import settings

from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
from pure_pagination.mixins import PaginationMixin

Modify the CabinetDetailView class adding PaginationMixin,
MultipleObjectMixin and paginate_by:
class CabinetDetailView(PaginationMixin, MultipleObjectMixin, TemplateView):
template_name = 'cabinets/cabinet_details.html'
+ paginate_by = settings.COMMON_PAGINATE_BY

Replace the get_context_data function:
def get_context_data(self, **kwargs):
self.object_list = self.get_document_queryset()

try:
page = self.request.GET.get('page', 1)
except PageNotAnInteger:
page = 1

p = Paginator(self.object_list, self.paginate_by, request=self.
request)

document_list = p.page(page).object_list

data = super(CabinetDetailView, self).get_context_data(**kwargs)

cabinet = self.get_object()

data.update(
{
'jstree_data': '\n'.join(
jstree_data(node=cabinet.get_root(), selected_node=
cabinet)
),
'document_list': document_list,
'hide_links': True,
'list_as_items': True,
'object': cabinet,
'title': _('Details of cabinet: %s') % cabinet.get_full_path
(),
}
)

return data


Standard disclaimers: not rigorously tested, it works for me, your mileage
may vary
Post by LeVon Smoker
Has anyone developed a patch to add pagination for the documents view when
going in through the Cabinets menu / All / Details? We have a cabinet with
over 1000 documents in it, and the page takes minutes (or the browser locks
up) to render all of them documents/thumbnails.
--
---
You received this message because you are subscribed to the Google Groups "Mayan EDMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mayan-edms+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...