Support tower license within the database

With backwards support for the file-based license
This commit is contained in:
Matthew Jones
2015-12-16 11:21:52 -05:00
parent 35b19bf220
commit 9db80bd9fc
5 changed files with 22 additions and 8 deletions

View File

@@ -9,17 +9,24 @@ class TowerConfiguration(object):
# TODO: Caching so we don't have to hit the database every time for settings
def __getattr__(self, key):
settings_manifest = django_settings.TOWER_SETTINGS_MANIFEST
if key not in settings_manifest:
raise AttributeError("Tower Setting with key '{0}' is not defined in the manifest".format(key))
ts = TowerSettings.objects.filter(key=key)
if not ts.exists():
return getattr(django_settings, key)
try:
val_actual = getattr(django_settings, key)
except AttributeError:
val_actual = settings_manifest[key]['default']
return val_actual
return ts[0].value_converted
def create(key, value):
def __setattr__(self, key, value):
settings_manifest = django_settings.TOWER_SETTINGS_MANIFEST
if key not in settings_manifest:
raise AttributeError("Tower Setting with key '{0}' does not exist".format(key))
settings_entry = settings_manifest[key]
setting_actual = TowerSettings.objects.filter(key=key)
settings_actual = TowerSettings.objects.filter(key=key)
if not settings_actual.exists():
settings_actual = TowerSettings(key=key,
description=settings_entry['description'],