Update documents app

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>
This commit is contained in:
Roberto Rosario
2019-01-28 05:25:48 -04:00
parent 7532429b0b
commit 74dfa53787
40 changed files with 1914 additions and 1615 deletions

View File

@@ -7,7 +7,7 @@ from mayan.apps.common.tests import BaseTestCase
from ..literals import STUB_EXPIRATION_INTERVAL
from ..models import (
DeletedDocument, Document, DocumentType, DuplicatedDocument
Document, DocumentType, DuplicatedDocument, TrashedDocument
)
from .base import GenericDocumentTestCase
@@ -58,12 +58,12 @@ class DocumentTestCase(DocumentTestMixin, BaseTestCase):
# Trash the document
self.document.delete()
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(TrashedDocument.objects.count(), 1)
self.assertEqual(Document.objects.count(), 0)
# Restore the document
self.document.restore()
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(TrashedDocument.objects.count(), 0)
self.assertEqual(Document.objects.count(), 1)
def test_trashing_documents(self):
@@ -71,12 +71,12 @@ class DocumentTestCase(DocumentTestMixin, BaseTestCase):
# Trash the document
self.document.delete()
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(TrashedDocument.objects.count(), 1)
self.assertEqual(Document.objects.count(), 0)
# Delete the document
self.document.delete()
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(TrashedDocument.objects.count(), 0)
self.assertEqual(Document.objects.count(), 0)
def test_auto_trashing(self):
@@ -94,12 +94,12 @@ class DocumentTestCase(DocumentTestMixin, BaseTestCase):
time.sleep(1.01)
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(TrashedDocument.objects.count(), 0)
DocumentType.objects.check_trash_periods()
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(TrashedDocument.objects.count(), 1)
def test_auto_delete(self):
"""
@@ -112,12 +112,12 @@ class DocumentTestCase(DocumentTestMixin, BaseTestCase):
self.document_type.save()
self.assertEqual(Document.objects.count(), 1)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(TrashedDocument.objects.count(), 0)
self.document.delete()
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 1)
self.assertEqual(TrashedDocument.objects.count(), 1)
# Needed by MySQL as milliseconds value is not stored in timestamp
# field
@@ -126,7 +126,7 @@ class DocumentTestCase(DocumentTestMixin, BaseTestCase):
DocumentType.objects.check_delete_periods()
self.assertEqual(Document.objects.count(), 0)
self.assertEqual(DeletedDocument.objects.count(), 0)
self.assertEqual(TrashedDocument.objects.count(), 0)
class PDFCompatibilityTestCase(BaseTestCase):