Add AppHandler methods to get/save/delete settings
This commit is contained in:
parent
4d5e8f8c73
commit
2c290643ff
|
@ -71,6 +71,8 @@ class AppHandler(object):
|
|||
'vendors': 'rattail.autocomplete.vendors:VendorAutocompleter',
|
||||
}
|
||||
|
||||
setting_utctime_format = '%Y-%m-%d %H:%M:%S'
|
||||
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
|
||||
|
@ -199,6 +201,40 @@ class AppHandler(object):
|
|||
value = session.execute(sql).scalar()
|
||||
return value
|
||||
|
||||
def get_setting(self, session, name, typ=None, **kwargs):
|
||||
model = self.model
|
||||
setting = session.query(model.Setting).get(name)
|
||||
value = None if setting is None else setting.value
|
||||
|
||||
if typ == 'utctime':
|
||||
if value:
|
||||
value = datetime.datetime.strptime(value, self.setting_utctime_format)
|
||||
else:
|
||||
value = None
|
||||
|
||||
return value
|
||||
|
||||
def save_setting(self, session, name, value, typ=None, **kwargs):
|
||||
model = self.model
|
||||
|
||||
if typ == 'utctime':
|
||||
if value:
|
||||
value = value.strftime(self.setting_utctime_format)
|
||||
else:
|
||||
value = None
|
||||
|
||||
setting = session.query(model.Setting).get(name)
|
||||
if not setting:
|
||||
setting = model.Setting(name=name)
|
||||
session.add(setting)
|
||||
setting.value = value
|
||||
|
||||
def delete_setting(self, session, name, **kwargs):
|
||||
model = self.model
|
||||
setting = session.query(model.Setting).get(name)
|
||||
if setting:
|
||||
session.delete(setting)
|
||||
|
||||
def get_active_stores(self, session, **kwargs):
|
||||
"""
|
||||
Returns the list of "active" stores. A store is considered
|
||||
|
|
Loading…
Reference in a new issue