]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/widgets/__init__.py
Add a validator to the UserSelect dropdown
[bluechips.git] / bluechips / widgets / __init__.py
index d935983a5a774fb0cfeb7d9b64ed558022870ed8..43dbea99cfe5230f21aa1f7f0da7d874866e32cb 100644 (file)
@@ -1,5 +1,7 @@
 from tw import forms
 
+from tw.forms import validators
+
 from bluechips import model
 from bluechips.model import meta
 
@@ -7,8 +9,17 @@ class UserSelect(forms.SingleSelectField):
     @staticmethod
     def getUserList():
         for u in meta.Session.query(model.User):
-            yield (u.username, u.name)
+            yield (u.id, u.name)
     
     options = getUserList
+    validator = validators.Wrapper(
+        to_python=meta.Session.query(model.User).get,
+        from_python=(lambda x: x.id))
+
+class AmountField(forms.TextField):
+    size = 8
+    validator = validators.All(
+        validators.Number(),
+        validators.Regex(r'^[0-9]*(\.[0-9]{2})?$', not_empty=True))
 
-__all__ = ['UserSelect']
+__all__ = ['UserSelect', 'AmountField']