Add AppHandler methods to get/save/delete settings

This commit is contained in:
Lance Edgar 2022-02-15 10:15:37 -06:00
parent 4d5e8f8c73
commit 2c290643ff

View file

@ -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