debianmemberportfolio/debianmemberportfolio/forms.py

43 lines
1.4 KiB
Python

from __future__ import unicode_literals
from flask.ext.babel import gettext as _
from flask.ext.wtf import Form
from wtforms import IntegerField, StringField, RadioField
from wtforms.validators import (
AnyOf, DataRequired, Email, Length, Optional, Regexp
)
class FingerPrint(Regexp):
def __init__(self, **kwargs):
super(FingerPrint, self).__init__(r'^[a-fA-F0-9]*$', **kwargs)
class PlainText(Regexp):
def __init__(self, **kwargs):
super(PlainText, self).__init__(r'^[a-zA-Z\-0-9]*$')
class DeveloperData(Form):
email = StringField('email', validators=[DataRequired(), Email()])
name = StringField('name', validators=[DataRequired()])
gpgfp = StringField('gpgfp', validators=[
FingerPrint(),
Length(min=32, max=40)
])
username = StringField('username', validators=[PlainText()])
nonddemail = StringField('nonddemail', validators=[Email()])
aliothusername = StringField('aliothusername', validators=[PlainText()])
mode = RadioField(
'mode', default='html', choices=[
('json', _('JSON')), ('html', _('HTML'))
], validators=[AnyOf(['json', 'html'])]
)
forumsid = IntegerField('forumsid', default=None, validators=[Optional()])
wikihomepage = StringField('wikihomepage', default=None, validators=[
Optional()])
class DeveloperDataRequest(Form):
email = StringField('email', validators=[DataRequired(), Email()])