Browse Source

Sets depot from main config

Adrien Panay 7 years ago
parent
commit
5cd05e546c

+ 3 - 2
tracim/development.ini.base View File

33
 use = egg:tracim
33
 use = egg:tracim
34
 full_stack = true
34
 full_stack = true
35
 # You can set french as default language by uncommenting next line
35
 # You can set french as default language by uncommenting next line
36
-# lang = fr
36
+# i18n.lang = fr
37
 
37
 
38
 cache_dir = %(here)s/data
38
 cache_dir = %(here)s/data
39
 # preview generator cache directory
39
 # preview generator cache directory
40
 preview_cache_dir = /tmp/tracim/preview/
40
 preview_cache_dir = /tmp/tracim/preview/
41
-# file depot storage directory
41
+# file depot storage
42
+depot_storage_name = tracim
42
 depot_storage_dir = %(here)s/depot/
43
 depot_storage_dir = %(here)s/depot/
43
 
44
 
44
 beaker.session.key = tracim
45
 beaker.session.key = tracim

+ 16 - 6
tracim/migration/versions/913efdf409e5_all_files_also_on_disk.py View File

8
 
8
 
9
 import shutil
9
 import shutil
10
 
10
 
11
+from alembic import context
11
 from alembic import op
12
 from alembic import op
12
 from depot.fields.sqlalchemy import UploadedFileField
13
 from depot.fields.sqlalchemy import UploadedFileField
13
 from depot.fields.upload import UploadedFile
14
 from depot.fields.upload import UploadedFile
34
 )
35
 )
35
 
36
 
36
 
37
 
38
+def configure_depot():
39
+    """Configure Depot."""
40
+    depot_storage_name = context.config.get_main_option('depot_storage_name')
41
+    depot_storage_path = context.config.get_main_option('depot_storage_dir')
42
+    depot_storage_settings = {'depot.storage_path': depot_storage_path}
43
+    DepotManager.configure(
44
+        depot_storage_name,
45
+        depot_storage_settings,
46
+    )
47
+
48
+
37
 def delete_files_on_disk(connection: sa.engine.Connection):
49
 def delete_files_on_disk(connection: sa.engine.Connection):
38
     """Deletes files from disk and their references in database."""
50
     """Deletes files from disk and their references in database."""
39
     delete_query = revision_helper.update() \
51
     delete_query = revision_helper.update() \
41
         .where(revision_helper.c.depot_file.isnot(None)) \
53
         .where(revision_helper.c.depot_file.isnot(None)) \
42
         .values(depot_file=None)
54
         .values(depot_file=None)
43
     connection.execute(delete_query)
55
     connection.execute(delete_query)
44
-    shutil.rmtree('depot/', ignore_errors=True)
56
+    depot_storage_path = context.config.get_main_option('depot_storage_dir')
57
+    shutil.rmtree(depot_storage_path, ignore_errors=True)
45
 
58
 
46
 
59
 
47
 def upgrade():
60
 def upgrade():
55
     - create all files on disk from database.
68
     - create all files on disk from database.
56
     """
69
     """
57
     # Creates files depot used in this migration
70
     # Creates files depot used in this migration
58
-    DepotManager.configure(
59
-        'tracim', {'depot.storage_path': 'depot/'},
60
-    )
71
+    configure_depot()
61
     connection = op.get_bind()
72
     connection = op.get_bind()
62
     delete_files_on_disk(connection=connection)
73
     delete_files_on_disk(connection=connection)
63
     select_query = revision_helper.select() \
74
     select_query = revision_helper.select() \
78
         depot_file_field = UploadedFile(depot_file_intent, 'tracim')
89
         depot_file_field = UploadedFile(depot_file_intent, 'tracim')
79
         update_query = revision_helper.update() \
90
         update_query = revision_helper.update() \
80
             .where(revision_helper.c.revision_id == file.revision_id) \
91
             .where(revision_helper.c.revision_id == file.revision_id) \
81
-            .values(depot_file=depot_file_field) \
82
-            .return_defaults()
92
+            .values(depot_file=depot_file_field)
83
         connection.execute(update_query)
93
         connection.execute(update_query)
84
 
94
 
85
 
95
 

+ 9 - 1
tracim/tracim/config/app_cfg.py View File

129
 
129
 
130
 def configure_depot():
130
 def configure_depot():
131
     """Configure Depot."""
131
     """Configure Depot."""
132
-    depot_storage_name = 'tracim'
132
+    depot_storage_name = CFG.get_instance().DEPOT_STORAGE_NAME
133
     depot_storage_path = CFG.get_instance().DEPOT_STORAGE_DIR
133
     depot_storage_path = CFG.get_instance().DEPOT_STORAGE_DIR
134
     depot_storage_settings = {'depot.storage_path': depot_storage_path}
134
     depot_storage_settings = {'depot.storage_path': depot_storage_path}
135
     DepotManager.configure(
135
     DepotManager.configure(
219
                 'ERROR: depot_storage_dir configuration is mandatory. '
219
                 'ERROR: depot_storage_dir configuration is mandatory. '
220
                 'Set it before continuing.'
220
                 'Set it before continuing.'
221
             )
221
             )
222
+        self.DEPOT_STORAGE_NAME = tg.config.get(
223
+            'depot_storage_name',
224
+        )
225
+        if not self.DEPOT_STORAGE_NAME:
226
+            raise Exception(
227
+                'ERROR: depot_storage_name configuration is mandatory. '
228
+                'Set it before continuing.'
229
+            )
222
         self.PREVIEW_CACHE_DIR = tg.config.get(
230
         self.PREVIEW_CACHE_DIR = tg.config.get(
223
             'preview_cache_dir',
231
             'preview_cache_dir',
224
         )
232
         )