Skip to content

Commit

Permalink
[#2302] Re-enable reset config options
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Aug 2, 2012
1 parent a1056d8 commit 7a6f00b
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 2 deletions.
4 changes: 4 additions & 0 deletions ckan/controllers/admin.py
Expand Up @@ -49,6 +49,10 @@ def config(self):
app_globals.set_global('ckan.site_about', about)

if 'reset' in data:
# remove sys info items
for key in app_globals.auto_update:
app_globals.delete_global(key)
app_globals.delete_global('ckan.main_css')
# reset to values in config
app_globals.reset()

Expand Down
18 changes: 16 additions & 2 deletions ckan/lib/app_globals.py
Expand Up @@ -25,6 +25,8 @@
'ckan.site_about',
]

# A place to store the origional config options of we override them
_CONFIG_CACHE = {}

def set_main_css(css_file):
''' Sets the main_css using debug css if needed. The css_file
Expand All @@ -46,6 +48,10 @@ def set_global(key, value):
config[key] = value
log.info('config `%s` set to `%s`' % (key, value))

def delete_global(key):
model.delete_system_info(key)
log.info('config `%s` deleted' % (key))

def get_globals_key(key):
# create our globals key
# these can be specified in mappings or else we remove
Expand All @@ -58,15 +64,23 @@ def get_globals_key(key):

def reset():
''' set updatable values from config '''

def get_config_value(key, default=''):
value = model.get_system_info(key)
# we want to store the config the first time we get here so we can
# reset them if needed
config_value = config.get(key)
if key not in _CONFIG_CACHE:
_CONFIG_CACHE[key] = config_value
if value:
# update the config
config[key] = value
log.info('config `%s` set to `%s` from db' % (key, value))
else:
value = config.get(key, default)
value = _CONFIG_CACHE[key]
if value:
log.info('config `%s` set to `%s` from config' % (key, value))
else:
value = default
setattr(app_globals, get_globals_key(key), value)
return value

Expand Down
1 change: 1 addition & 0 deletions ckan/model/__init__.py
Expand Up @@ -152,6 +152,7 @@
SystemInfo,
get_system_info,
set_system_info,
delete_system_info,
)

import ckan.migration
Expand Down
10 changes: 10 additions & 0 deletions ckan/model/system_info.py
Expand Up @@ -35,6 +35,16 @@ def get_system_info(key, default=None):
return default


def delete_system_info(key, default=None):
''' delete data from system_info table '''
obj = meta.Session.query(SystemInfo).filter_by(key=key).first()
print key
if obj:
print obj
meta.Session.delete(obj)
meta.Session.commit()


def set_system_info(key, value):
''' save data in the system_info table '''

Expand Down

0 comments on commit 7a6f00b

Please sign in to comment.