Improve setting dump serialization.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -92,21 +92,14 @@ class Setting(object):
|
||||
|
||||
@classmethod
|
||||
def dump_data(cls):
|
||||
result = []
|
||||
|
||||
dictionary = {}
|
||||
for setting in cls.get_all():
|
||||
# Ensure there is at least one newline
|
||||
line = '{}: {}\n'.format(
|
||||
setting.global_name, setting.serialized_value
|
||||
)
|
||||
if setting.quoted:
|
||||
dictionary[setting.global_name] = '{}'.format(setting.value)
|
||||
else:
|
||||
dictionary[setting.global_name] = setting.value
|
||||
|
||||
# If there are two newlines, remove one
|
||||
if line.endswith('\n\n'):
|
||||
line = line[:-1]
|
||||
|
||||
result.append(line)
|
||||
|
||||
return ''.join(result)
|
||||
return yaml.safe_dump(dictionary)
|
||||
|
||||
@classmethod
|
||||
def get(cls, global_name):
|
||||
|
||||
@@ -3,11 +3,7 @@ from __future__ import unicode_literals
|
||||
import yaml
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
from django.utils.module_loading import import_string
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
@@ -20,11 +16,11 @@ class SettingForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SettingForm, self).__init__(*args, **kwargs)
|
||||
self.fields['value'].help_text = self.initial['setting'].help_text
|
||||
self.fields['value'].initial = self.initial['setting'].value
|
||||
self.fields['value'].initial = self.initial['setting'].serialized_value
|
||||
|
||||
def clean(self):
|
||||
try:
|
||||
yaml.safe_dump(self.cleaned_data['value'])
|
||||
yaml.safe_load(self.cleaned_data['value'])
|
||||
except yaml.YAMLError as exception:
|
||||
try:
|
||||
yaml.safe_load('{}'.format(self.cleaned_data['value']))
|
||||
|
||||
Reference in New Issue
Block a user