From d4ad6cdbf4bcb2f382434e999f08165dd83e425f Mon Sep 17 00:00:00 2001 From: Ales Zoulek Date: Mon, 23 Aug 2010 17:10:44 +0200 Subject: [PATCH] added support for dir() on config object --- constance/admin.py | 17 +++++++++-------- constance/config.py | 3 +++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/constance/admin.py b/constance/admin.py index eb7a46c..2d9c0a5 100644 --- a/constance/admin.py +++ b/constance/admin.py @@ -17,13 +17,13 @@ from constance import config FIELDS = { - bool: fields.BooleanField, - int: fields.IntegerField, - long: fields.IntegerField, - Decimal: fields.DecimalField, - str: fields.CharField, - datetime: fields.DateTimeField, - float: fields.FloatField, + bool: (fields.BooleanField, {'required': False}), + int: (fields.IntegerField, {}), + long: (fields.IntegerField, {}), + Decimal: (fields.DecimalField, {}), + str: (fields.CharField, {}), + datetime: (fields.DateTimeField, {}), + float: (fields.FloatField, {}), } @@ -31,7 +31,8 @@ class ConstanceForm(forms.Form): def __init__(self, *args, **kwargs): super(ConstanceForm, self).__init__(*args, **kwargs) for name, (default, help_text) in settings.CONSTANCE_CONFIG.items(): - self.fields[name] = FIELDS[type(default)](label=name) + field_class, kwargs = FIELDS[type(default)] + self.fields[name] = field_class(label=name, **kwargs) def save(self): for name in self.cleaned_data: diff --git a/constance/config.py b/constance/config.py index c246b42..998c55c 100644 --- a/constance/config.py +++ b/constance/config.py @@ -32,3 +32,6 @@ class Config(object): def __setattr__(self, key, value): self._rd.set("%s%s" % (self._prefix, key), dumps(value)) + def __dir__(self): + return settings.CONSTANCE_CONFIG.keys() +