Browse Source

Management/Models: Reduced Complexity

Henry Kupty 10 years ago
parent
commit
bd2d50a65a
1 changed files with 15 additions and 24 deletions
  1. 15 24
      flaskbb/management/models.py

+ 15 - 24
flaskbb/management/models.py

@@ -74,32 +74,23 @@ class Setting(db.Model):
         for setting in group.settings:
             field_validators = []
 
+            if setting.value_type in ("integer", "float"):
+                validator_class = validators.NumberRange
+            elif setting.value_type == "string":
+                validator_class = validators.Length
+
             # generate the validators
             if "min" in setting.extra:
                 # Min number validator
-                if setting.value_type in ("integer", "float"):
-                    field_validators.append(
-                        validators.NumberRange(min=setting.extra["min"])
-                    )
-
-                # Min text length validator
-                elif setting.value_type in ("string"):
-                    field_validators.append(
-                        validators.Length(min=setting.extra["min"])
-                    )
+                field_validators.append(
+                    validator_class(min=setting.extra["min"])
+                )
 
             if "max" in setting.extra:
                 # Max number validator
-                if setting.value_type in ("integer", "float"):
-                    field_validators.append(
-                        validators.NumberRange(max=setting.extra["max"])
-                    )
-
-                # Max text length validator
-                elif setting.value_type in ("string"):
-                    field_validators.append(
-                        validators.Length(max=setting.extra["max"])
-                    )
+                field_validators.append(
+                    validator_class(max=setting.extra["max"])
+                )
 
             # Generate the fields based on value_type
             # IntegerField
@@ -118,7 +109,7 @@ class Setting(db.Model):
                 )
 
             # TextField
-            if setting.value_type == "string":
+            elif setting.value_type == "string":
                 setattr(
                     SettingsForm, setting.key,
                     TextField(setting.name, validators=field_validators,
@@ -126,7 +117,7 @@ class Setting(db.Model):
                 )
 
             # SelectMultipleField
-            if setting.value_type == "selectmultiple":
+            elif setting.value_type == "selectmultiple":
                 # if no coerce is found, it will fallback to unicode
                 if "coerce" in setting.extra:
                     coerce_to = setting.extra['coerce']
@@ -144,7 +135,7 @@ class Setting(db.Model):
                 )
 
             # SelectField
-            if setting.value_type == "select":
+            elif setting.value_type == "select":
                 # if no coerce is found, it will fallback to unicode
                 if "coerce" in setting.extra:
                     coerce_to = setting.extra['coerce']
@@ -161,7 +152,7 @@ class Setting(db.Model):
                 )
 
             # BooleanField
-            if setting.value_type == "boolean":
+            elif setting.value_type == "boolean":
                 setattr(
                     SettingsForm, setting.key,
                     BooleanField(setting.name, description=setting.description)