6 from __future__
import unicode_literals
8 from cgi
import FieldStorage
11 from wtforms.validators
import Required, ValidationError
28 def __init__(self, model, column, message=None):
35 if 'id' in form.state:
37 found = DBSession.query(self.
model).filter(self.
column==field.data).first()
38 if found
and found.id != id:
40 self.
message =
'Field must be unique.'
41 raise ValidationError(self.
message)
51 found = DBSession.query(self.
model).filter(self.
column==field.data).first()
55 raise ValidationError(self.
message)
69 if not Auth.check_login(form.email.data, form.password.data):
72 raise ValidationError(self.
message)
85 if not isinstance(field.data, FieldStorage):
87 self.
message =
'A file is required.'
88 raise ValidationError(self.
message)
98 self.
allowed = [x.upper()
for x
in allowed]
102 if isinstance(field.data, FieldStorage):
103 ext = os.path.splitext(field.data.filename)[1]
104 ext = ext.lstrip(
'.').upper()
107 self.
message =
'File type must be %(allowed)s.'
109 allowed =
' or '.join(self.
allowed)
111 allowed =
', '.join(self.
allowed[:-1] + [
'or ' + self.
allowed[-1]])
113 raise ValidationError(self.
message)