Refactor and implement download code natively

- Use modified port of Django 2.2 FileResponse.
- Remove Django DownloadView library.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-12-12 19:39:44 -04:00
parent 826f7fddf2
commit a7b31fc171
24 changed files with 355 additions and 278 deletions
+2 -2
View File
@@ -169,11 +169,11 @@ class OCRViewsTestCase(OCRViewTestMixin, GenericDocumentViewTestCase):
self.test_document.submit_for_ocr()
response = self._request_document_ocr_download_view()
self.assertEqual(response.status_code, 403)
self.assertEqual(response.status_code, 404)
def test_document_ocr_download_view_with_access(self):
self.test_document.submit_for_ocr()
self.expected_content_types = ('application/octet-stream; charset=utf-8',)
self.expected_content_types = ('text/html; charset=utf-8',)
self.grant_access(
obj=self.test_document, permission=permission_ocr_content_view
+5 -7
View File
@@ -211,10 +211,8 @@ class DocumentOCRDownloadView(SingleObjectDownloadView):
model = Document
object_permission = permission_ocr_content_view
def get_file(self):
file_object = DocumentOCRDownloadView.TextIteratorIO(
iterator=get_document_ocr_content(document=self.get_object())
)
return DocumentOCRDownloadView.VirtualFile(
file=file_object, name='{}-OCR'.format(self.get_object())
)
def get_download_file_object(self):
return get_document_ocr_content(document=self.object)
def get_download_filename(self):
return '{}-OCR'.format(self.object)