import os
from string import strip
from django import forms
-from base import Setting
+from forum.settings.base import Setting
from django.utils.translation import ugettext as _
from django.core.files.storage import FileSystemStorage
class SettingsSetForm(forms.Form):
- def __init__(self, set, data=None, *args, **kwargs):
- if data is None:
- data = dict([(setting.name, setting.value) for setting in set])
+ def __init__(self, set, data=None, unsaved=None, *args, **kwargs):
+ initial = dict([(setting.name, setting.value) for setting in set])
- super(SettingsSetForm, self).__init__(data, *args, **kwargs)
+ if unsaved:
+ initial.update(unsaved)
+
+ super(SettingsSetForm, self).__init__(data, initial=initial, *args, **kwargs)
for setting in set:
- if isinstance(setting, (Setting.emulators.get(str, DummySetting), Setting.emulators.get(unicode, DummySetting))):
+ widget = setting.field_context.get('widget', None)
+
+ if widget is forms.RadioSelect or isinstance(widget, forms.RadioSelect):
+ field = forms.ChoiceField(**setting.field_context)
+ elif isinstance(setting, (Setting.emulators.get(str, DummySetting), Setting.emulators.get(unicode, DummySetting))):
if not setting.field_context.get('widget', None):
setting.field_context['widget'] = forms.TextInput(attrs={'class': 'longstring'})
field = forms.CharField(**setting.field_context)