Corrected issue with encoding / decoding of dictionary and list type settings values.

Updated zone record settings management to use valid JSON format with backwards compatibility support for the non-JSON literal format.
This commit is contained in:
Matt Scott
2023-04-14 18:52:27 -04:00
parent c842d09195
commit ccd7373efe
3 changed files with 36 additions and 23 deletions

View File

@@ -72,13 +72,17 @@ class Setting(db.Model):
return False
def set(self, setting, value):
import json
current_setting = Setting.query.filter(Setting.name == setting).first()
if current_setting is None:
current_setting = Setting(name=setting, value=None)
db.session.add(current_setting)
value = str(AppSettings.convert_type(setting, value))
value = AppSettings.convert_type(setting, value)
if isinstance(value, dict) or isinstance(value, list):
value = json.dumps(value)
try:
current_setting.value = value