Commit 54ff267481771974f508818c91061596dc8d59ce

Authored by Matheus de Sousa Faria
1 parent 5618ed57

Importing widgets settings

Showing 2 changed files with 31 additions and 0 deletions   Show diff stats
colab/settings.py
... ... @@ -293,3 +293,5 @@ TEMPLATE_DIRS += (
293 293 )
294 294  
295 295 conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG)
  296 +
  297 +conf.load_widgets_settings()
... ...
colab/utils/conf.py
... ... @@ -137,6 +137,35 @@ def load_colab_apps():
137 137 return {'COLAB_APPS': COLAB_APPS}
138 138  
139 139  
  140 +def load_widgets_settings():
  141 + settings_file = os.getenv('COLAB_WIDGETS_SETTINGS',
  142 + '/etc/colab/widgets_settings.py')
  143 + settings_module = settings_file.split('.')[-2].split('/')[-1]
  144 + py_path = "/".join(settings_file.split('/')[:-1])
  145 +
  146 + logger.info('Widgets Settings file: %s', settings_file)
  147 +
  148 + if not os.path.exists(py_path):
  149 + msg = "The py file {} does not exist".format(py_path)
  150 + raise InaccessibleSettings(msg)
  151 +
  152 + py_settings = _load_py_file(settings_module, py_path)
  153 +
  154 + # Read settings from settings.d
  155 + settings_dir = '/etc/colab/widgets.d'
  156 + logger.info('Widgets Settings directory: %s', settings_dir)
  157 +
  158 + if not os.path.exists(settings_dir):
  159 + return py_settings
  160 +
  161 + for file_name in os.listdir(settings_dir):
  162 + if not file_name.endswith('.py'):
  163 + continue
  164 +
  165 + file_module = file_name.split('.')[0]
  166 + _load_py_file(file_module, settings_dir)
  167 + logger.info('Loaded %s/%s', settings_dir, file_name)
  168 +
140 169 def validate_database(database_dict, default_db, debug):
141 170 db_name = database_dict.get('default', {}).get('NAME')
142 171 if not debug and db_name == default_db:
... ...