From 5987a9ed5383eda8cbbc7a25b5287eb18a7c5089 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 19 May 2014 20:18:07 -0400 Subject: [PATCH] Remove 3rd_party_apps folder, don't include filetransfers it is now instalable from PyPI --- 3rd_party_apps/filetransfers/__init__.py | 0 3rd_party_apps/filetransfers/api.py | 43 ------------------- .../filetransfers/backends/__init__.py | 0 .../filetransfers/backends/base_url.py | 7 --- .../filetransfers/backends/default.py | 30 ------------- .../filetransfers/backends/delegate.py | 11 ----- 3rd_party_apps/filetransfers/backends/url.py | 10 ----- .../filetransfers/backends/xsendfile.py | 12 ------ .../filetransfers/templatetags/__init__.py | 0 .../templatetags/filetransfers.py | 17 -------- requirements/production.txt | 1 + settings.py | 1 - 12 files changed, 1 insertion(+), 131 deletions(-) delete mode 100644 3rd_party_apps/filetransfers/__init__.py delete mode 100644 3rd_party_apps/filetransfers/api.py delete mode 100644 3rd_party_apps/filetransfers/backends/__init__.py delete mode 100644 3rd_party_apps/filetransfers/backends/base_url.py delete mode 100644 3rd_party_apps/filetransfers/backends/default.py delete mode 100644 3rd_party_apps/filetransfers/backends/delegate.py delete mode 100644 3rd_party_apps/filetransfers/backends/url.py delete mode 100644 3rd_party_apps/filetransfers/backends/xsendfile.py delete mode 100644 3rd_party_apps/filetransfers/templatetags/__init__.py delete mode 100644 3rd_party_apps/filetransfers/templatetags/filetransfers.py diff --git a/3rd_party_apps/filetransfers/__init__.py b/3rd_party_apps/filetransfers/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/3rd_party_apps/filetransfers/api.py b/3rd_party_apps/filetransfers/api.py deleted file mode 100644 index 87fbe56095..0000000000 --- a/3rd_party_apps/filetransfers/api.py +++ /dev/null @@ -1,43 +0,0 @@ -from django.conf import settings -from django.utils.importlib import import_module -import mimetypes - -PREPARE_UPLOAD_BACKEND = getattr(settings, - 'PREPARE_UPLOAD_BACKEND', - 'filetransfers.backends.default.prepare_upload') -SERVE_FILE_BACKEND = getattr(settings, - 'SERVE_FILE_BACKEND', - 'filetransfers.backends.default.serve_file') -PUBLIC_DOWNLOAD_URL_BACKEND = getattr(settings, - 'PUBLIC_DOWNLOAD_URL_BACKEND', - 'filetransfers.backends.default.public_download_url') - -_backends_cache = {} - -# Public API -def prepare_upload(request, url, private=False, backend=None): - handler = _load_backend(backend, PREPARE_UPLOAD_BACKEND) - return handler(request, url, private=private) - -def serve_file(request, file, backend=None, save_as=False, content_type=None): - # Backends are responsible for handling range requests. - handler = _load_backend(backend, SERVE_FILE_BACKEND) - filename = file.name.rsplit('/')[-1] - if save_as is True: - save_as = filename - if not content_type: - content_type = mimetypes.guess_type(filename)[0] - return handler(request, file, save_as=save_as, content_type=content_type) - -def public_download_url(file, backend=None): - handler = _load_backend(backend, PUBLIC_DOWNLOAD_URL_BACKEND) - return handler(file) - -# Internal utilities -def _load_backend(backend, default_backend): - if backend is None: - backend = default_backend - if backend not in _backends_cache: - module_name, func_name = backend.rsplit('.', 1) - _backends_cache[backend] = getattr(import_module(module_name), func_name) - return _backends_cache[backend] diff --git a/3rd_party_apps/filetransfers/backends/__init__.py b/3rd_party_apps/filetransfers/backends/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/3rd_party_apps/filetransfers/backends/base_url.py b/3rd_party_apps/filetransfers/backends/base_url.py deleted file mode 100644 index ec0a3f2a8c..0000000000 --- a/3rd_party_apps/filetransfers/backends/base_url.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.conf import settings - -def public_download_url(file, **kwargs): - """ - Directs downloads to a handler at settings.PUBLIC_DOWNLOADS_URL_BASE - """ - return settings.PUBLIC_DOWNLOADS_URL_BASE + file.name diff --git a/3rd_party_apps/filetransfers/backends/default.py b/3rd_party_apps/filetransfers/backends/default.py deleted file mode 100644 index 3c360d6120..0000000000 --- a/3rd_party_apps/filetransfers/backends/default.py +++ /dev/null @@ -1,30 +0,0 @@ -from django.http import HttpResponse -from django.utils.encoding import smart_str - -def prepare_upload(request, url, **kwargs): - """Directly uploads to the given URL""" - return url, {} - -def serve_file(request, file, save_as, content_type, **kwargs): - """ - Serves the file in chunks for efficiency reasons, but the transfer still - goes through Django itself, so it's much worse than using the web server, - but at least it works with all configurations. - """ - response = HttpResponse(ChunkedFile(file), content_type=content_type) - if save_as: - response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as) - if file.size is not None: - response['Content-Length'] = file.size - return response - -def public_download_url(file, **kwargs): - """No public download URL""" - return None - -class ChunkedFile(object): - def __init__(self, file): - self.file = file - - def __iter__(self): - return self.file.chunks() diff --git a/3rd_party_apps/filetransfers/backends/delegate.py b/3rd_party_apps/filetransfers/backends/delegate.py deleted file mode 100644 index 6f052d34ce..0000000000 --- a/3rd_party_apps/filetransfers/backends/delegate.py +++ /dev/null @@ -1,11 +0,0 @@ -from django.conf import settings - -from filetransfers.api import prepare_upload as delegate - -def prepare_upload(*args, **kwargs): - """Delegates uploads to other backends based on private=False or True""" - if kwargs['private']: - kwargs['backend'] = settings.PRIVATE_PREPARE_UPLOAD_BACKEND - else: - kwargs['backend'] = settings.PUBLIC_PREPARE_UPLOAD_BACKEND - return delegate(*args, **kwargs) diff --git a/3rd_party_apps/filetransfers/backends/url.py b/3rd_party_apps/filetransfers/backends/url.py deleted file mode 100644 index dce9a04221..0000000000 --- a/3rd_party_apps/filetransfers/backends/url.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.http import HttpResponseRedirect -from django.utils.encoding import smart_str - -def serve_file(request, file, **kwargs): - """Serves files by redirecting to file.url (e.g., useful for Amazon S3)""" - return HttpResponseRedirect(smart_str(file.url)) - -def public_download_url(file, **kwargs): - """Directs downloads to file.url (useful for normal file system storage)""" - return file.url diff --git a/3rd_party_apps/filetransfers/backends/xsendfile.py b/3rd_party_apps/filetransfers/backends/xsendfile.py deleted file mode 100644 index db2f30a334..0000000000 --- a/3rd_party_apps/filetransfers/backends/xsendfile.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.http import HttpResponse -from django.utils.encoding import smart_str - -def serve_file(request, file, save_as, content_type, **kwargs): - """Lets the web server serve the file using the X-Sendfile extension""" - response = HttpResponse(content_type=content_type) - response['X-Sendfile'] = file.path - if save_as: - response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as) - if file.size is not None: - response['Content-Length'] = file.size - return response diff --git a/3rd_party_apps/filetransfers/templatetags/__init__.py b/3rd_party_apps/filetransfers/templatetags/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/3rd_party_apps/filetransfers/templatetags/filetransfers.py b/3rd_party_apps/filetransfers/templatetags/filetransfers.py deleted file mode 100644 index 545a2936c8..0000000000 --- a/3rd_party_apps/filetransfers/templatetags/filetransfers.py +++ /dev/null @@ -1,17 +0,0 @@ -from django.template import Library -from django.utils.safestring import mark_safe - -from ..api import public_download_url - -register = Library() - -_hidden_data_field = '' - -@register.simple_tag -def render_upload_data(data): - inputs = ''.join(_hidden_data_field % item for item in data.items()) - if inputs: - return mark_safe('
%s
' % inputs) - return '' - -register.filter(public_download_url) diff --git a/requirements/production.txt b/requirements/production.txt index e336c85c86..2e359b8b4c 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -3,6 +3,7 @@ APScheduler==2.0.3 cssmin==0.1.4 Django==1.4.13 +django-filetransfers==0.1.0 django-pagination==1.0.7 django-compressor==1.1.1 django-taggit==0.9.3 diff --git a/settings.py b/settings.py index c1ee5dba73..6ea6bf41f1 100644 --- a/settings.py +++ b/settings.py @@ -15,7 +15,6 @@ sys.path.append(os.path.join(PROJECT_ROOT, 'modules')) sys.path.append(os.path.join(PROJECT_ROOT, 'customization_apps')) sys.path.append(os.path.join(PROJECT_ROOT, 'apps')) sys.path.append(os.path.join(PROJECT_ROOT, 'shared_apps')) -sys.path.append(os.path.join(PROJECT_ROOT, '3rd_party_apps')) PROJECT_TITLE = 'Mayan EDMS' PROJECT_NAME = 'mayan'