----------------
Big refactoring around middleware configuration, API readability and
documentation.
- Bugfix 57 - ``PathDownloadView`` opens files in binary mode (was text mode).
- Bugfix 48 - Fixed ``basename`` assertion in ``assert_download_response``:
checks ``Content-Disposition`` header.
- Bugfix 49 - Fixed ``content`` assertion in ``assert_download_response``:
checks only response's ``streaming_content`` attribute.
- Bugfix 60 - ``VirtualFile.__iter__`` uses ``force_bytes()`` to support both
"text-mode" and "binary-mode" content.
See https://code.djangoproject.com/ticket/21321
- Feature 50 - Introduced ``django_downloadview.DownloadDispatcherMiddleware``
that iterates over a list of configurable download middlewares. Allows to
plug several download middlewares with different configurations.
This middleware is mostly dedicated to internal usage. It is used by
``SmartDownloadMiddleware`` described below.
- Feature 42 - Documentation shows how to stream generated content (yield).
Introduced ``django_downloadview.StringIteratorIO``.
- Refactoring 51 - Dropped support of Python 2.6
- Refactoring 25 - Introduced ``django_downloadview.SmartDownloadMiddleware``
which allows to setup multiple optimization rules for one backend.
Deprecates the following settings related to previous single-and-global
middleware:
* ``NGINX_DOWNLOAD_MIDDLEWARE_MEDIA_ROOT``
* ``NGINX_DOWNLOAD_MIDDLEWARE_MEDIA_URL``
* ``NGINX_DOWNLOAD_MIDDLEWARE_EXPIRES``
* ``NGINX_DOWNLOAD_MIDDLEWARE_WITH_BUFFERING``
* ``NGINX_DOWNLOAD_MIDDLEWARE_LIMIT_RATE``
- Refactoring 52 - ObjectDownloadView now inherits from SingleObjectMixin and
BaseDownloadView (was DownloadMixin and BaseDetailView).
Simplified DownloadMixin.render_to_response() signature.
- Refactoring 40 - Documentation includes examples from demo project.
- Refactoring 39 - Documentation focuses on usage, rather than API. Improved
narrative documentation.
- Refactoring 53 - Added base classes in ``django_downloadview.middlewares``,
such as ``ProxiedDownloadMiddleware``.
- Refactoring 54 - Expose most Python API directly in `django_downloadview`
package. Simplifies ``import`` statements in client applications.
Splitted nginx module in a package.
- Added unit tests, improved code coverage.