Commit 4e9516b047b4437a27ee4141ebaae600e7e9b2ae

Authored by Matheus de Sousa Faria
1 parent baf9b044

Importing widgets settings

Showing 2 changed files with 31 additions and 0 deletions   Show diff stats
colab/settings.py
... ... @@ -294,3 +294,5 @@ TEMPLATE_DIRS += (
294 294 )
295 295  
296 296 conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG)
  297 +
  298 +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:
... ...
  • 80bf7e338265f7a91f4144eaeded1f29?s=40&d=identicon
    Charles Oliveira @chaws

    Massa! @matheusfaria ta pareando com o @darksshades nisso ?

    Choose File ...   File name...
    Cancel
  • D6a18ad95997286698f5637d2cea75a4?s=40&d=identicon
    Matheus de Sousa Faria @matheusfaria

    Sim, agora a gente ta vendo o melhor jeito de criar a configuração dos widgets. A gente vai tentar criar um arquivo de configuração no /etc, e cada plugin também terá um arquivo de configuração caso ele adicione algum widget.

    Choose File ...   File name...
    Cancel