diff --git a/apps/storage/backends/gridfsstorage.py b/apps/storage/backends/gridfsstorage.py index 2981b170b6..02e44fb873 100644 --- a/apps/storage/backends/gridfsstorage.py +++ b/apps/storage/backends/gridfsstorage.py @@ -6,22 +6,19 @@ from django.utils.encoding import force_unicode from pymongo import Connection from gridfs import GridFS -HOST = u'localhost' -PORT = 27017 -DATABASE_NAME = u'document_storage' -#TODO: Implement user settings -#TODO: Implement delete-open soft locking -#TODO :master_slave_connection +from storage.conf import settings + class GridFSStorage(Storage): def __init__(self, *args, **kwargs): - self.db = Connection(host=HOST, port=PORT)[DATABASE_NAME] + self.db = Connection(host=settings.GRIDFS_HOST, + port=settings.GRIDFS_PORT)[settings.DATABASE_NAME] self.fs = GridFS(self.db) def save(self, name, content): - #TODO: if exists adding _ plus a counter + #TODO: if exists add _ plus a counter while True: try: # This file has a file path that we can move. diff --git a/apps/storage/conf/__init__.py b/apps/storage/conf/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/storage/conf/settings.py b/apps/storage/conf/settings.py new file mode 100644 index 0000000000..fe22d85d03 --- /dev/null +++ b/apps/storage/conf/settings.py @@ -0,0 +1,6 @@ +from django.conf import settings + + +GRIDFS_HOST = getattr(settings, 'STORAGE_GRIDFS_HOST', 'localhost') +GRIDFS_PORT = getattr(settings, 'STORAGE_GRIDFS_PORT', 27017) +DATABASE_NAME = getattr(settings, 'STORAGE_GRIDFS_DATABASE_NAME', u'document_storage') diff --git a/docs/Changelog.txt b/docs/Changelog.txt index 000b3cac6e..86a5b6db73 100644 --- a/docs/Changelog.txt +++ b/docs/Changelog.txt @@ -52,3 +52,4 @@ 2011-Mar 04 * Initial GridFS storage support * Implemented size and delete methods for GridFS +* Implement GridFS storage user settings diff --git a/docs/TODO b/docs/TODO index e3c5197649..d2d309024f 100755 --- a/docs/TODO +++ b/docs/TODO @@ -90,12 +90,13 @@ TODO, WISHLIST * Show current page in generic list template * Advanced search by metadata fields * Save advanced search by metadata setup as a virtual folder +* Avoid metadata indexing folders name clash GridFSStorage ============ -* Implement user settings -* Implement delete-open soft locking +* Implement user settings - DONE +* Implement delete-open soft locking - DEFERRED * Implement master_slave_connection * if exists adding _ plus a counter - avoid file versioning diff --git a/settings.py b/settings.py index fac4adf3b5..edb16b688b 100755 --- a/settings.py +++ b/settings.py @@ -195,6 +195,10 @@ LOGIN_EXEMPT_URLS = ( # Storage #DOCUMENTS_STORAGE_BACKEND = FileBasedStorage +# Storage - GridFS settings +#STORAGE_GRIDFS_HOST = 'localhost' # or list ['host a', 'host b'] +#STORAGE_GRIDFS_PORT = 27017 +#STORAGE_GRIDFS_DATABASE_NAME = u'document_storage' # Usage #DOCUMENTS_PREVIEW_SIZE = '640x480'