Auto-register all config pages, for dropdown in App Settings

This commit is contained in:
Lance Edgar 2021-12-15 00:00:46 -06:00
parent 6f62f141d2
commit ca57bd3572
4 changed files with 21 additions and 19 deletions

View file

@ -156,9 +156,23 @@ def make_pyramid_config(settings, configure_csrf=True):
config.add_directive('add_tailbone_permission_group', 'tailbone.auth.add_permission_group')
config.add_directive('add_tailbone_permission', 'tailbone.auth.add_permission')
# and some similar magic for config views
config.add_directive('add_tailbone_config_page', 'tailbone.app.add_config_page')
return config
def add_config_page(config, route_name, label):
"""
Register a config page for the app.
"""
def action():
pages = config.get_settings().get('tailbone_config_pages', [])
pages.append({'label': label, 'route': route_name})
config.add_settings({'tailbone_config_pages': pages})
config.action(None, action)
def establish_theme(settings):
rattail_config = settings['rattail_config']