summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-01-08 11:24:29 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-01-08 11:24:29 -0300
commit6a60ef133bec17d184fe7f1a678511a67ddfee99 (patch)
tree88588ad6a520d9582b4babbf9523a2208dd3eb99
parent1acf3a7b2e02cb414aad5ba7940e9132ccfded78 (diff)
downloadaskbot-6a60ef133bec17d184fe7f1a678511a67ddfee99.tar.gz
askbot-6a60ef133bec17d184fe7f1a678511a67ddfee99.tar.bz2
askbot-6a60ef133bec17d184fe7f1a678511a67ddfee99.zip
allowed changing of file storage backend from settings.py file
-rw-r--r--askbot/deps/livesettings/values.py17
-rw-r--r--askbot/doc/source/changelog.rst1
-rw-r--r--askbot/views/writers.py4
3 files changed, 15 insertions, 7 deletions
diff --git a/askbot/deps/livesettings/values.py b/askbot/deps/livesettings/values.py
index c6708bdb..e5516d8b 100644
--- a/askbot/deps/livesettings/values.py
+++ b/askbot/deps/livesettings/values.py
@@ -639,13 +639,20 @@ class ImageValue(StringValue):
"""uploaded_file is an instance of
django UploadedFile object
"""
- #1) come up with a file name
+ #0) initialize file storage
+ file_storage_class = storage.get_storage_class()
- file_storage = storage.FileSystemStorage(
- location = self.upload_directory,
- base_url = self.upload_url
- )
+ storage_settings = {}
+ if django_settings.DEFAULT_FILE_STORAGE == \
+ 'django.core.files.storage.FileSystemStorage':
+ storage_settings = {
+ 'location': self.upload_directory,
+ 'base_url': self.upload_url
+ }
+ file_storage = file_storage_class(**storage_settings)
+
+ #1) come up with a file name
#todo: need better function here to calc name
file_name = file_storage.get_available_name(uploaded_file.name)
file_storage.save(file_name, uploaded_file)
diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst
index edffc0e5..45a6f49b 100644
--- a/askbot/doc/source/changelog.rst
+++ b/askbot/doc/source/changelog.rst
@@ -17,6 +17,7 @@ Development version (not released yet)
* when internal login app is disabled - links to login/logout/add-remove-login-methods are gone (Evgeny)
* replaced setting `ASKBOT_FILE_UPLOAD_DIR` with django's `MEDIA_ROOT` (Evgeny)
* replaced setting `ASKBOT_UPLOADED_FILES_URL` with django's `MEDIA_URL` (Evgeny)
+* allowed changing file storage backend for file uploads by configuration (Evgeny)
0.7.36 (Dec 20, 2011)
---------------------
diff --git a/askbot/views/writers.py b/askbot/views/writers.py
index d76929f7..c4d60de9 100644
--- a/askbot/views/writers.py
+++ b/askbot/views/writers.py
@@ -12,7 +12,7 @@ import random
import sys
import tempfile
import time
-from django.core.files.storage import FileSystemStorage
+from django.core.files.storage import get_storage_class
from django.shortcuts import get_object_or_404
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404
@@ -78,7 +78,7 @@ def upload(request):#ajax upload file to a question or answer
str(random.randint(0,100000))
) + file_extension
- file_storage = FileSystemStorage()
+ file_storage = get_storage_class()()
# use default storage to store file
file_storage.save(new_file_name, f)
# check file size