]> asedeno.scripts.mit.edu Git - bluechips.git/blob - bluechips/widgets/__init__.py
Add a validator to the UserSelect dropdown
[bluechips.git] / bluechips / widgets / __init__.py
1 from tw import forms
2
3 from tw.forms import validators
4
5 from bluechips import model
6 from bluechips.model import meta
7
8 class UserSelect(forms.SingleSelectField):
9     @staticmethod
10     def getUserList():
11         for u in meta.Session.query(model.User):
12             yield (u.id, u.name)
13     
14     options = getUserList
15     validator = validators.Wrapper(
16         to_python=meta.Session.query(model.User).get,
17         from_python=(lambda x: x.id))
18
19 class AmountField(forms.TextField):
20     size = 8
21     validator = validators.All(
22         validators.Number(),
23         validators.Regex(r'^[0-9]*(\.[0-9]{2})?$', not_empty=True))
24
25 __all__ = ['UserSelect', 'AmountField']