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',
|
'vendors': 'rattail.autocomplete.vendors:VendorAutocompleter',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setting_utctime_format = '%Y-%m-%d %H:%M:%S'
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
self.config = config
|
self.config = config
|
||||||
|
|
||||||
|
@ -199,6 +201,40 @@ class AppHandler(object):
|
||||||
value = session.execute(sql).scalar()
|
value = session.execute(sql).scalar()
|
||||||
return value
|
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):
|
def get_active_stores(self, session, **kwargs):
|
||||||
"""
|
"""
|
||||||
Returns the list of "active" stores. A store is considered
|
Returns the list of "active" stores. A store is considered
|
||||||
|
|
Loading…
Reference in a new issue