Add recently added document list view. The setting DOCUMENTS_RECENT_COUNT has been renamed to DOCUMENTS_RECENT_ACCESS_COUNT. New setting DOCUMENTS_RECENT_ADDED_COUNT added.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -87,6 +87,10 @@
|
||||
- Add support for the fillcolor argument to the rotate
|
||||
transformation.
|
||||
- Sort documents by label.
|
||||
- Add recently added document list view. The setting
|
||||
DOCUMENTS_RECENT_COUNT has been renamed to
|
||||
DOCUMENTS_RECENT_ACCESS_COUNT. New setting
|
||||
DOCUMENTS_RECENT_ADDED_COUNT added.
|
||||
|
||||
3.0.3 (2018-08-17)
|
||||
==================
|
||||
|
||||
@@ -56,8 +56,9 @@ from .links import (
|
||||
link_document_document_type_edit, link_document_duplicates_list,
|
||||
link_document_multiple_document_type_edit, link_document_download,
|
||||
link_document_edit, link_document_list, link_document_list_deleted,
|
||||
link_document_list_recent, link_document_multiple_delete,
|
||||
link_document_multiple_trash, link_document_multiple_clear_transformations,
|
||||
link_document_list_recent_access, link_document_list_recent_added,
|
||||
link_document_multiple_delete, link_document_multiple_trash,
|
||||
link_document_multiple_clear_transformations,
|
||||
link_document_multiple_download, link_document_multiple_restore,
|
||||
link_document_multiple_update_page_count,
|
||||
link_document_page_navigation_first, link_document_page_navigation_last,
|
||||
@@ -393,7 +394,8 @@ class DocumentsApp(MayanAppConfig):
|
||||
|
||||
menu_documents.bind_links(
|
||||
links=(
|
||||
link_document_list_recent, link_document_list,
|
||||
link_document_list_recent_access,
|
||||
link_document_list_recent_added, link_document_list,
|
||||
link_document_list_deleted, link_duplicated_document_list
|
||||
)
|
||||
)
|
||||
|
||||
@@ -23,7 +23,12 @@ icon_document_duplicates_list = Icon(
|
||||
)
|
||||
icon_document_list = Icon(driver_name='fontawesome', symbol='file')
|
||||
icon_document_list_deleted = Icon(driver_name='fontawesome', symbol='trash')
|
||||
icon_document_list_recent = Icon(driver_name='fontawesome', symbol='clock')
|
||||
icon_document_list_recent_access = Icon(
|
||||
driver_name='fontawesome', symbol='clock'
|
||||
)
|
||||
icon_document_list_recent_added = Icon(
|
||||
driver_name='fontawesome', symbol='asterisk'
|
||||
)
|
||||
icon_document_page_navigation_first = Icon(
|
||||
driver_name='fontawesome', symbol='step-backward'
|
||||
)
|
||||
|
||||
@@ -9,16 +9,16 @@ from navigation import Link
|
||||
|
||||
from .icons import (
|
||||
icon_clear_image_cache, icon_document_duplicates_list, icon_document_list,
|
||||
icon_document_list_deleted, icon_document_list_recent,
|
||||
icon_document_page_navigation_first, icon_document_page_navigation_last,
|
||||
icon_document_page_navigation_next, icon_document_page_navigation_previous,
|
||||
icon_document_page_return, icon_document_page_rotate_left,
|
||||
icon_document_page_rotate_right, icon_document_page_zoom_in,
|
||||
icon_document_page_zoom_out, icon_document_pages, icon_document_preview,
|
||||
icon_document_properties, icon_document_type_setup,
|
||||
icon_document_version_list, icon_document_version_return_document,
|
||||
icon_document_version_return_list, icon_duplicated_document_list,
|
||||
icon_duplicated_document_scan
|
||||
icon_document_list_deleted, icon_document_list_recent_access,
|
||||
icon_document_list_recent_added, icon_document_page_navigation_first,
|
||||
icon_document_page_navigation_last, icon_document_page_navigation_next,
|
||||
icon_document_page_navigation_previous, icon_document_page_return,
|
||||
icon_document_page_rotate_left, icon_document_page_rotate_right,
|
||||
icon_document_page_zoom_in, icon_document_page_zoom_out,
|
||||
icon_document_pages, icon_document_preview, icon_document_properties,
|
||||
icon_document_type_setup, icon_document_version_list,
|
||||
icon_document_version_return_document, icon_document_version_return_list,
|
||||
icon_duplicated_document_list, icon_duplicated_document_scan
|
||||
)
|
||||
from .permissions import (
|
||||
permission_document_delete, permission_document_download,
|
||||
@@ -189,9 +189,13 @@ link_document_list = Link(
|
||||
icon_class=icon_document_list, text=_('All documents'),
|
||||
view='documents:document_list'
|
||||
)
|
||||
link_document_list_recent = Link(
|
||||
icon_class=icon_document_list_recent, text=_('Recent documents'),
|
||||
view='documents:document_list_recent'
|
||||
link_document_list_recent_access = Link(
|
||||
icon_class=icon_document_list_recent_access, text=_('Recently accessed'),
|
||||
view='documents:document_list_recent_access'
|
||||
)
|
||||
link_document_list_recent_added = Link(
|
||||
icon_class=icon_document_list_recent_added, text=_('Recently added'),
|
||||
view='documents:document_list_recent_added'
|
||||
)
|
||||
link_document_list_deleted = Link(
|
||||
icon_class=icon_document_list_deleted, text=_('Trash can'),
|
||||
|
||||
@@ -11,7 +11,7 @@ from django.utils.encoding import force_text
|
||||
from django.utils.timezone import now
|
||||
|
||||
from .literals import STUB_EXPIRATION_INTERVAL
|
||||
from .settings import setting_recent_count
|
||||
from .settings import setting_recent_access_count
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -199,7 +199,7 @@ class RecentDocumentManager(models.Manager):
|
||||
# accessed date and time update
|
||||
new_recent.save()
|
||||
|
||||
recent_to_delete = self.filter(user=user).values_list('pk', flat=True)[setting_recent_count.value:]
|
||||
recent_to_delete = self.filter(user=user).values_list('pk', flat=True)[setting_recent_access_count.value:]
|
||||
self.filter(pk__in=list(recent_to_delete)).delete()
|
||||
return new_recent
|
||||
|
||||
|
||||
@@ -83,11 +83,17 @@ setting_print_height = namespace.add_setting(
|
||||
setting_print_width = namespace.add_setting(
|
||||
global_name='DOCUMENTS_PRINT_WIDTH', default='3600'
|
||||
)
|
||||
setting_recent_count = namespace.add_setting(
|
||||
global_name='DOCUMENTS_RECENT_COUNT', default=40,
|
||||
setting_recent_access_count = namespace.add_setting(
|
||||
global_name='DOCUMENTS_RECENT_ACCESS_COUNT', default=40,
|
||||
help_text=_(
|
||||
'Maximum number of recent (created, edited, viewed) documents to '
|
||||
'remember per user.'
|
||||
'Maximum number of recently accessed (created, edited, viewed) '
|
||||
'documents to remember per user.'
|
||||
)
|
||||
)
|
||||
setting_recent_added_count = namespace.add_setting(
|
||||
global_name='DOCUMENTS_RECENT_ADDED_COUNT', default=40,
|
||||
help_text=_(
|
||||
'Maximum number of recently created documents to show.'
|
||||
)
|
||||
)
|
||||
setting_rotation_step = namespace.add_setting(
|
||||
|
||||
@@ -32,15 +32,20 @@ from .views import (
|
||||
DocumentVersionDownloadFormView, DocumentVersionDownloadView,
|
||||
DocumentVersionListView, DocumentVersionRevertView, DocumentVersionView,
|
||||
DocumentView, DuplicatedDocumentListView, EmptyTrashCanView,
|
||||
RecentDocumentListView, ScanDuplicatedDocuments
|
||||
RecentAccessDocumentListView, RecentAddedDocumentListView,
|
||||
ScanDuplicatedDocuments
|
||||
)
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^list/$', DocumentListView.as_view(), name='document_list'),
|
||||
url(
|
||||
r'^list/recent/$', RecentDocumentListView.as_view(),
|
||||
name='document_list_recent'
|
||||
r'^list/recent_access/$', RecentAccessDocumentListView.as_view(),
|
||||
name='document_list_recent_access'
|
||||
),
|
||||
url(
|
||||
r'^list/recent_added/$', RecentAddedDocumentListView.as_view(),
|
||||
name='document_list_recent_added'
|
||||
),
|
||||
url(
|
||||
r'^list/deleted/$', DeletedDocumentListView.as_view(),
|
||||
|
||||
@@ -41,7 +41,9 @@ from ..permissions import (
|
||||
permission_document_trash, permission_document_view,
|
||||
permission_empty_trash
|
||||
)
|
||||
from ..settings import setting_print_width, setting_print_height
|
||||
from ..settings import (
|
||||
setting_print_width, setting_print_height, setting_recent_added_count
|
||||
)
|
||||
from ..tasks import task_delete_document, task_update_page_count
|
||||
from ..utils import parse_range
|
||||
|
||||
@@ -50,6 +52,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class DocumentListView(SingleObjectListView):
|
||||
object_permission = permission_document_view
|
||||
queryset_slice = None
|
||||
|
||||
def get_document_queryset(self):
|
||||
return Document.objects.defer(
|
||||
@@ -65,8 +68,11 @@ class DocumentListView(SingleObjectListView):
|
||||
}
|
||||
|
||||
def get_object_list(self):
|
||||
return self.get_document_queryset().filter(is_stub=False)
|
||||
|
||||
queryset = self.get_document_queryset().filter(is_stub=False)
|
||||
if self.queryset_slice:
|
||||
return queryset.__getitem__(slice(*self.queryset_slice))
|
||||
else:
|
||||
return queryset
|
||||
|
||||
class DeletedDocumentDeleteView(ConfirmView):
|
||||
extra_context = {
|
||||
@@ -384,20 +390,6 @@ class EmptyTrashCanView(ConfirmView):
|
||||
messages.success(self.request, _('Trash emptied successfully'))
|
||||
|
||||
|
||||
class RecentDocumentListView(DocumentListView):
|
||||
def get_document_queryset(self):
|
||||
return RecentDocument.objects.get_for_user(self.request.user)
|
||||
|
||||
def get_extra_context(self):
|
||||
context = super(RecentDocumentListView, self).get_extra_context()
|
||||
context.update(
|
||||
{
|
||||
'title': _('Recent documents'),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
class DocumentDownloadFormView(FormView):
|
||||
form_class = DocumentDownloadForm
|
||||
model = Document
|
||||
@@ -819,3 +811,33 @@ class DuplicatedDocumentListView(DocumentListView):
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
class RecentAccessDocumentListView(DocumentListView):
|
||||
def get_document_queryset(self):
|
||||
return RecentDocument.objects.get_for_user(self.request.user)
|
||||
|
||||
def get_extra_context(self):
|
||||
context = super(RecentAccessDocumentListView, self).get_extra_context()
|
||||
context.update(
|
||||
{
|
||||
'title': _('Recently accessed'),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
class RecentAddedDocumentListView(DocumentListView):
|
||||
queryset_slice = (0, setting_recent_added_count.value)
|
||||
|
||||
def get_document_queryset(self):
|
||||
return Document.objects.order_by('-date_added')
|
||||
|
||||
def get_extra_context(self):
|
||||
context = super(RecentAddedDocumentListView, self).get_extra_context()
|
||||
context.update(
|
||||
{
|
||||
'title': _('Recently added'),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
Reference in New Issue
Block a user