Browse Source

Coercing the data for the select fields now.

sh4nks 11 years ago
parent
commit
8fc3824233
1 changed files with 19 additions and 3 deletions
  1. 19 3
      flaskbb/admin/models.py

+ 19 - 3
flaskbb/admin/models.py

@@ -116,21 +116,37 @@ class Setting(db.Model):
 
             # SelectMultipleField
             if setting.value_type == "selectmultiple":
+                # if no coerce is found, it will fallback to unicode
+                if "coerce" in setting.extra:
+                    coerce_to = setting.extra['coerce']
+                else:
+                    coerce_to = unicode
+
                 setattr(
                     SettingsForm, setting.key,
                     SelectMultipleField(
                         setting.name,
-                        choices=setting.extra['choices'],
+                        choices=setting.extra['choices'](),
+                        coerce=coerce_to,
                         description=setting.description
                     )
                 )
 
             # SelectField
             if setting.value_type == "select":
+                # if no coerce is found, it will fallback to unicode
+                if "coerce" in setting.extra:
+                    coerce_to = setting.extra['coerce']
+                else:
+                    coerce_to = unicode
+
                 setattr(
                     SettingsForm, setting.key,
-                    SelectField(setting.name, choices=setting.extra['choices'],
-                                description=setting.description)
+                    SelectField(
+                        setting.name,
+                        coerce=coerce_to,
+                        choices=setting.extra['choices'](),
+                        description=setting.description)
                 )
 
             # BooleanField