Making the register_themes() tool also return the current theme

This will reduce the amount of work reproducing this behavior when
pulling together the theme registry elsewhere.
This commit is contained in:
Christopher Allan Webber 2012-07-13 12:33:52 -05:00
parent 71eb457748
commit 975be468cf
2 changed files with 12 additions and 9 deletions

View File

@ -75,13 +75,7 @@ class MediaGoblinApp(object):
self.connection, self.db = setup_database()
# Register themes
self.theme_registry = register_themes(app_config)
self.current_theme_name = app_config.get('theme')
if self.current_theme_name \
and self.theme_registry.has_key(self.current_theme_name):
self.current_theme = self.theme_registry[self.current_theme_name]
else:
self.current_theme = None
self.theme_registry, self.current_theme = register_themes(app_config)
# Get the template environment
self.template_loader = get_jinja_loader(

View File

@ -69,11 +69,20 @@ def register_themes(app_config, builtin_dir=BUILTIN_THEME_DIR):
registry[themedir] = themedata
# Built-in themes
_install_themes_in_dir(builtin_dir)
if os.path.exists(builtin_dir):
_install_themes_in_dir(builtin_dir)
# Installed themes
theme_install_dir = app_config.get('theme_install_dir')
if theme_install_dir and os.path.exists(theme_install_dir):
_install_themes_in_dir(theme_install_dir)
return registry
current_theme_name = app_config.get('theme')
if current_theme_name \
and registry.has_key(current_theme_name):
current_theme = registry[current_theme_name]
else:
current_theme = None
return registry, current_theme