Add document list item view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-07-13 17:20:02 -04:00
parent c3d4884d34
commit ff59f34b7f
18 changed files with 420 additions and 126 deletions

View File

@@ -50,16 +50,18 @@ logger = logging.getLogger(__name__)
class DocumentListView(SingleObjectListView):
extra_context = {
'hide_links': True,
'title': _('All documents'),
}
object_permission = permission_document_view
def get_document_queryset(self):
return Document.objects.defer('description', 'uuid', 'date_added', 'language', 'in_trash', 'deleted_date_time').all()
def get_extra_context(self):
return {
'hide_links': True,
'list_as_items': True,
'title': _('All documents'),
}
def get_queryset(self):
self.queryset = self.get_document_queryset().filter(is_stub=False)
return super(DocumentListView, self).get_queryset()
@@ -68,17 +70,21 @@ class DocumentListView(SingleObjectListView):
class DeletedDocumentListView(DocumentListView):
object_permission = None
extra_context = {
'hide_link': True,
'title': _('Documents in trash'),
}
def get_document_queryset(self):
return AccessControlList.objects.filter_by_access(
permission_document_view, self.request.user,
queryset=DeletedDocument.trash.all()
)
def get_extra_context(self):
context = super(DeletedDocumentListView, self).get_extra_context()
context.update(
{
'title': _('Documents in trash'),
}
)
return context
class DeletedDocumentDeleteView(ConfirmView):
extra_context = {
@@ -186,6 +192,16 @@ class DocumentDuplicatesListView(DocumentListView):
def get_document(self):
return get_object_or_404(Document, pk=self.kwargs['pk'])
def get_extra_context(self):
context = super(DocumentDuplicatesListView, self).get_extra_context()
context.update(
{
'object': self.get_document(),
'title': _('Duplicates for document: %s') % self.get_document(),
}
)
return context
def get_queryset(self):
try:
return DuplicatedDocument.objects.get(
@@ -194,13 +210,6 @@ class DocumentDuplicatesListView(DocumentListView):
except DuplicatedDocument.DoesNotExist:
return Document.objects.none()
def get_extra_context(self):
return {
'hide_links': True,
'object': self.get_document(),
'title': _('Duplicates for document: %s') % self.get_document(),
}
class DocumentEditView(SingleObjectEditView):
form_class = DocumentForm
@@ -374,14 +383,18 @@ class EmptyTrashCanView(ConfirmView):
class RecentDocumentListView(DocumentListView):
extra_context = {
'hide_links': True,
'title': _('Recent documents'),
}
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
@@ -762,24 +775,28 @@ class DocumentPrint(FormView):
class DuplicatedDocumentListView(DocumentListView):
extra_context = {
'extra_columns': (
{
'name': _('Duplicates'),
'attribute': encapsulate(
lambda document: DuplicatedDocument.objects.get(
document=document
).documents.count()
)
},
),
'hide_links': True,
'title': _('Duplicated documents')
}
def get_document_queryset(self):
return Document.objects.filter(
pk__in=DuplicatedDocument.objects.values_list(
'document_id', flat=True
)
)
def get_extra_context(self):
context = super(DuplicatedDocumentListView, self).get_extra_context()
context.update(
{
'extra_columns': (
{
'name': _('Duplicates'),
'attribute': encapsulate(
lambda document: DuplicatedDocument.objects.get(
document=document
).documents.count()
)
},
),
'title': _('Duplicated documents')
}
)
return context