Commit graph

116 commits

Author SHA1 Message Date
Benoît Bryon
7875999fe2 Refs #80 - Improved documentation about 'DownnloadMixin.attachment' attribute. 2014-03-03 07:49:30 +01:00
Benoît Bryon
70c6b00442 Refs #46 - Fixed Python 2 and Python 3 compatibility in doctests related to string/unicode. 2014-02-25 00:47:20 +01:00
Rémy HUBSCHER
1ea2790ba9 Refs #46 -- Add Py3 support. 2014-02-16 19:13:44 +01:00
Benoît Bryon
d587c515f0 Refs #74 - Switched to tox as test-environment manager. Added flake8 to the test suite. Dropped python 2.6 tests. Makefile no longer creates a virtualenv. 2014-02-10 01:27:14 +01:00
Benoît Bryon
6dd090757a Refs #41 - Added 'mimetype' and 'encoding' arguments to 'DownloadMixin' => supported all arguments of original sendfile() function. Added documentation about migrating from django-sendfile to django-downloadview. 2013-11-29 00:55:46 +01:00
Benoît Bryon
59d9b4966e Refs #41 - django_downloadview.sendfile is a PathDownloadView (was StorageDownloadView). PathDownloadView.get_file() raises FileNotFound if file does not exists. 2013-11-28 23:29:50 +01:00
Benoît Bryon
e33a8165ef Refs #2 - Introduced support of Lighttpd's X-Sendfile (mostly copied from django_downloadview.apache). 2013-11-28 23:02:40 +01:00
Benoît Bryon
8b44724c90 Refs #36 - Introduced support of Apache X-Sendfile. 2013-11-26 09:30:19 +01:00
Benoît Bryon
567cf591b9 Refs #43 - ObjectDownloadView.get_file() raises FileNotFound if field is empty. Raises AttributeError if field does not exist (view or model is misconfigured). 2013-11-24 10:09:46 +01:00
Benoît Bryon
0b2a26e180 Refs #43 - ObjectDownloadView.get_file() raises FileNotFound if file field does not exists or is empty. Introduced DownloadMixin.file_not_found_response(). 2013-11-24 10:03:11 +01:00
Benoît Bryon
f2d5a92b99 Refs #7 - Urlencoded non US-ASCII characters in Content-Disposition header (file name). 2013-11-18 12:12:02 +01:00
Benoît Bryon
f170c8904b Psycho-rebased branch 60-virtualfile-force-bytes on top of master 2013-11-08 09:59:51 +01:00
Benoît Bryon
c141f027de Refs #60 - VirtualFile uses force_bytes(). Removed (wrong) patch of File.__iter__(). 2013-11-08 09:56:26 +01:00
Benoît Bryon
c372cac003 Refs #57 - PathDownloadView opens files in binary mode by default. 2013-11-08 09:38:57 +01:00
Benoît Bryon
e9d9b3dfaa Refs #25 - Introduced SmartDownloadMiddleware: makes it possible to setup several rules given a single optimization backend. 2013-11-07 00:09:30 +01:00
Benoît Bryon
2c1ad3c730 ObjectDownloadView now inherits from SingleObjectMixin and BaseDownloadView. Added example for setup_view() in documentation. 2013-11-05 11:44:48 +01:00
Benoît Bryon
0371f84f26 Added unit tests around BaseDownloadView. Introduced setup_view() test utility. 2013-11-05 07:29:58 +01:00
Benoît Bryon
def3e97a39 Added unit tests for DownloadMixin. 2013-11-04 23:20:13 +01:00
Benoît Bryon
4c3787b2a0 Refs #25 - Added unit tests about API and deprecated settings. 2013-10-29 09:25:48 +01:00
Benoît Bryon
874f3b9b54 Refs #25, refs #39, refs #40, refs #42 - Big refactoring in documentation and demo: narrative documentation uses examples from demo project. 2013-10-28 16:58:18 +01:00
Benoît Bryon
47cc4ce04d Refs #41 - Introduced experimental port of django-sendfile's sendfile() function. 2013-10-21 15:04:30 +02:00
Benoît Bryon
4547cc2f90 Refs #42 - Ignored Content-Length header for generated files. 2013-10-21 15:02:37 +02:00
Benoît Bryon
a38876d15c Refs #42 - Introduced StringIteratorIO, for use in VirtualDownloadView when you need to stream generated content (yield). 2013-10-21 14:59:25 +02:00
Benoît Bryon
7c3b3a8de2 Splitted django_downloadview.views in several smaller modules. 2013-10-21 14:57:54 +02:00
Benoît Bryon
f34deba503 Moved API imports from django_downloadview's __init__.py to api.py. 2013-10-21 14:54:57 +02:00
Benoît Bryon
588b1b0a6e Introduced DownloadDispatcherMiddleware and settings.DOWNLOADVIEW_MIDDLEWARES. Deprecated most options for former global XAccelRedirectMiddleware. Splitted nginx module into a package. Introduced BaseDownloadMiddleware. 2013-10-04 18:11:16 +02:00
Benoît Bryon
121fb4d391 Refs #26 - Do not compute size of virtual files, unless file wrapper implements was_modified_since(). 2013-05-28 15:17:01 +02:00
Benoît Bryon
6c40354f4a Refs #34, refs #35 - Added documentation about DownloadMixin and BaseDownloadView. 2013-05-28 08:34:33 +02:00
Benoît Bryon
31c0a0f4b9 Refs #34 - Introduced unit tests for DownloadMixin.was_modified_since(). Refactored DownloadMixin: easier to test, better docstrings. 2013-05-14 00:25:30 +02:00
Rémy HUBSCHER
af2133909e Fix AttributeError: 'File' object has no attribute 'modified_time' 2013-05-07 18:50:51 +02:00
Benoît Bryon
e8266615ed Refs #32 - Respect 'attachment' argument in X-Accel optimization. 2013-05-06 16:50:47 +02:00
Benoît Bryon
58a5131a39 Refs #29 - Improved HTTPDownloadView. 2013-04-09 16:50:24 +02:00
Benoît Bryon
a770727b5e Encoded data written to StringIO. 2013-04-08 16:36:53 +02:00
Benoît Bryon
3b65324a06 Refs #29 - Introduced HTTPFile and HTTPDownloadView to create proxy to arbitrary HTTP URL. 2013-04-08 15:39:06 +02:00
Benoît Bryon
5a3ff57e23 Refs #13 - Using Django's StreamingHttpResponse. Requires Django>=1.5. Introduced django_downloadview.test.assert_download_response(). 2013-03-20 16:00:20 +01:00
Benoît Bryon
060233abc5 Refs #23 - Implemented VirtualDownloadView and VirtualFile for basic support of in-memory (StringIO) or other generated files. 2013-02-06 20:11:42 +01:00
Benoît Bryon
58cf4bac7d Removed deprecated DownloadView. Replaced by PathDownloadView and StorageDownloadView. 2013-02-06 19:15:00 +01:00
Benoît Bryon
02f0b7aa0d Using doc comments instead of docstrings for attributes. 2013-02-06 19:07:23 +01:00
Benoît Bryon
e94054bcba Refs #23 - Implemented and tested StorageDownloadView. This StorageDownloadView is to replace an use case of former DownloadView. 2013-02-06 19:02:43 +01:00
Benoît Bryon
cc3df73905 Refs #23 - Implemented and tested PathDownloadView. This PathDownloadView is to replace an use case of former DownloadView. 2013-02-06 11:02:55 +01:00
Rémy HUBSCHER
d4dfbcffbe Come back baby come back 2013-02-05 16:49:43 +01:00
Rémy HUBSCHER
f7dd4114d7 Fix error on content-type 2013-02-05 16:21:58 +01:00
Rémy HUBSCHER
f9fe4f3a2f Improve DownloadView for cStringIO file download response 2013-02-05 10:51:11 +01:00
Benoît Bryon
a012b11e97 Refs #21 and refs #23 - Download view passes a file wrapper to download response. The file wrapper encapsulates file attributes such as name, size or URL (introduced URL). 2012-12-13 19:01:50 +01:00
Benoît Bryon
4dd718fba3 Refs #16 - Improved documentation for Nginx optimizations (references to demo project). Refs #18 - Moved temporary_media_root utility from demoproject.download.tests to django_downloadview.test. 2012-12-10 11:05:28 +01:00
Benoît Bryon
78c1941b50 Refs #16 - Introduced nginx.assert_x_accel_redirect() utility function, for use in tests. 2012-12-07 17:05:28 +01:00
Benoît Bryon
4f29852ddb Reviewed documentation. Preparing first public release. 2012-12-04 11:47:37 +01:00
Benoit Bryon
9762025d1a Refs #1 - Fixed nginx middleware. Populated documentation (examples should be moved to demo project). 2012-11-28 19:04:13 +01:00
Benoit Bryon
1f8876ba4f Refs #1 - Experimental support for Nginx X-Accel. Work in progress 2012-11-28 16:53:56 +01:00
Benoit Bryon
66c83a8914 Introduced DownloadResponse.url. Not used yet. 2012-11-28 16:53:56 +01:00
Benoit Bryon
450d2f42bb Minor precision about deserialization in views. 2012-11-28 16:53:56 +01:00
Benoit Bryon
5a031a2011 Use **kwargs in DownloadMixin.render_to_response() 2012-11-28 16:53:56 +01:00
Benoit Bryon
41e00d312d Refs #1 - Introduced experimental support for Nginx X-Accel. WORK IN PROGRESS. 2012-11-19 14:43:42 +01:00
Benoit Bryon
46542cdc3c Refs #3 - Introduced base decorators and middlewares. 2012-11-19 14:41:52 +01:00
Benoit Bryon
5a432dc700 Refs #3 - Introduced DownloadResponse. 2012-11-19 14:41:52 +01:00
Benoit Bryon
0ae3653d1e Clarified charset and encoding. 2012-11-19 14:41:52 +01:00
Benoit Bryon
faaa12fcb8 PEP8 on views.py 2012-11-19 14:41:52 +01:00
Benoit Bryon
434db01168 Fixed ObjectDownloadView.object access with a cache. Using client-side basename instead of server-side filename to guess the mimetype. 2012-08-30 23:12:27 +02:00
Benoit Bryon
9e4e7bfc0a Added attributes to ObjectDownloadView, so that it is possible to use a model as a cache for file metadata (size, mime-type, basename...). Added docstrings. 2012-08-29 18:06:29 +02:00
Benoit Bryon
33ad5d492e Refactored generic download views. Added storage argument to DownloadView. Renamed DownloadView's 'file' argument to 'filename'. 2012-08-28 15:47:26 +02:00
Benoit Bryon
5a2a174b3e Reduced memory usage when serving files: return an iterator of chunks, don't load the whole file into memory. 2012-08-28 10:46:02 +02:00
Benoit Bryon
ab75aa6e08 Fixed tests: tests use a temporary settings.MEDIA_ROOT, so files are isolated for tests. 2012-08-28 10:13:41 +02:00
Benoit Bryon
7f1801c684 Fixed example in README. ObjectDownloadView now use 'file_field' argument instead of 'file_attribute', in order to mimic 'slug_field'. 2012-08-27 17:33:33 +02:00
Benoit Bryon
a45c79552e Introduced ObjectDownloadView. UNSTABLE. Work in progress. 2012-08-27 17:05:24 +02:00
Benoit Bryon
536728bc0a Introduced DownloadView. Introduced demo project, used to develop and test the library. Work in progress. 2012-08-27 15:57:47 +02:00
Benoit Bryon
f9bdd8fca7 Introduced project's placeholders. Work in progress. 2012-08-27 12:00:17 +02:00