class CommentForm(Form): comment = TextAreaField(validators=[ required(message=_("Comment is required"))]) submit = SubmitField(_("Save")) cancel = SubmitField(_("Cancel"))
class TemplateForm(Form): html = TextAreaField(_("HTML"), validators=[required(message=_("HTML required"))]) submit = SubmitField(_("Save")) cancel = SubmitField(_("Cancel"))
class UpdateProfileForm(Form): blog = TextField(_("Blog"), validators=[optional()]) github = TextField(_("Github"), validators=[optional()]) brief = TextAreaField(_("Brief"), validators=[ optional(), length( max=140, message=_("Pls. less than 140 characater")) ]) next = HiddenField() submit = SubmitField(_("Update profile")) delete = SubmitField(_("Delete"))
class PostForm(Form): title = TextField(_("Title of your post"), validators=[required(message=_("Title required"))]) link = TextField( _("Link"), validators=[optional(), url(message=_("This is not a valid URL"))]) description = TextAreaField(_("Description")) tags = TextField(_("Tags")) access = RadioField(_("Who can see this post ?"), default=Post.PUBLIC, coerce=int, choices=((Post.PUBLIC, _("Everyone")), (Post.FRIENDS, _("Friends only")), (Post.PRIVATE, _("Just myself")))) submit = SubmitField(_("Save")) def __init__(self, *args, **kwargs): self.post = kwargs.get('obj', None) super(PostForm, self).__init__(*args, **kwargs) def validate_link(self, field): posts = Post.query.public().filter_by(link=field.data) if self.post: posts = posts.filter(db.not_(Post.id == self.post.id)) if posts.count(): raise ValidationError, gettext("This link has already been posted")
class BookmarkForm(AjaxForm): id = HiddenField(u'Id') link = URLField(u'Link', validators=[validators.required(), validators.url(), ]) title = TextField(u'Title', validators=[validators.required(), ]) description = TextAreaField(u'Description') tags = TextField(u'Tags') submit = SubmitField(u'Add') def __init__(self, formdata=None, *args, **kwargs): self.create = kwargs.get('create', False) super(BookmarkForm, self).__init__(formdata, *args, **kwargs) def validate(self): rv = Form.validate(self) if not rv: return False link = self.link.data title = self.title.data description = self.description.data tags = map(lambda x: {'name': x.strip()}, self.tags.data.split(',')) # TODO : add id control if create is False (modification mode need a # valid bookmark id) self.bookmark = ItemBookmark(ptags=tags, plink=link, ptitle=title, pdescription=description, json=True) return True
class RegistrationForm(Form): username = TextField('Username', [ validators.Required(), validators.Length( min=3, max=30, message='Username must be %(min)d - %(max)d chars'), validators.Regexp( '^[A-Za-z0-9\-_]+$', message= 'Username may only contain letters, numbers, dashes and underscores' ) ]) email = TextField('Email', [ validators.Required(), validators.Email(), validators.Length(max=255) ]) password = PasswordField('Password', [ validators.Required(), validators.EqualTo('password_confirm', message='Passwords did not match') ]) password_confirm = PasswordField('Confirm Password') submit = SubmitField('Register') def validate_username(form, field): user = models.User.query.filter_by(username=field.data).all() if user: raise ValidationError, 'Username already exists'
class RecoverPasswordForm(Form): email = TextField( "Your email address", validators=[email(message=_("A valid email address is required"))]) submit = SubmitField(_("Find password"))
class ProfileForm(Form): password = PasswordField('New Password', validators=[ Optional(), Length(min=8, max=80), EqualTo('confirm', message='Passwords must match') ]) confirm = PasswordField('Repeat Password') default_ipv4_mask = IntegerField( label='IPv4 Mask', validators=[ Optional(), NumberRange(min=0, max=32, message='IPv4 Mask must between %(min)s and %(max)s'), ]) default_ipv6_mask = IntegerField( label='IPv6 Mask', validators=[ Optional(), NumberRange(min=0, max=128, message='IPv6 Mask must between %(min)s and %(max)s'), ]) timezone = QuerySelectField(get_label='name', allow_blank=True) submit = SubmitField('Update Profile')
class SignupForm(Form): next = HiddenField() username = TextField(_("Username"), validators=[ required(message=_("Username required")), is_username]) password = PasswordField(_("Password"), validators=[ required(message=_("Password required"))]) password_again = PasswordField(_("Password again"), validators=[ equal_to("password", message=\ _("Passwords don't match"))]) email = TextField(_("Email address"), validators=[ required(message=_("Email address required")), email(message=_("A valid email address is required"))]) recaptcha = RecaptchaField(_("Copy the words appearing below")) submit = SubmitField(_("Signup")) def validate_username(self, field): user = User.query.filter(User.username.like(field.data)).first() if user: raise ValidationError, gettext("This username is taken") def validate_email(self, field): user = User.query.filter(User.email.like(field.data)).first() if user: raise ValidationError, gettext("This email is taken")
class LoginForm(Form): name = TextField('用户名', validators=[required(message="用户名必填")]) password = PasswordField('密码', validators=[required(message="请输入密码")]) remember = BooleanField(u"记住我") submit = SubmitField(u"登录") next = HiddenField()
class TicketForm(Form): def bind_runtime_fields(self, g, ticket=None): self.product.queryset = Product.get_all_products(g.organization._id) self.owner.queryset = User.get_all_users(g.organization._id) if ticket is not None: self.tid.data = ticket.id else: self.owner.default = unicode(g.user.id) tid = HiddenField('id', validators=[Length(max=24)]) title = TextField('Title') body = TextAreaField('Body') priority = SelectField('Priority', choices=[(x, PRIORITIES[x]) for x in\ xrange(len(PRIORITIES))], coerce=int) product = QSSelectField('Product', label_attr='name') tags = TagsField('Tags', description='Comma separated (e.g., auth,crash,login)') owner = QSSelectField('Owner', label_attr=('name.first', 'name.last')) new_comment = TextAreaField('Comment') status = SelectField('Status', choices=[(x, STATUSES[x]) for x in xrange(len(STATUSES))], coerce=int, default=0) submit = SubmitField('Submit')
class RegisterForm(Form): login = TextField(u'Login', validators=[validators.required(), unique_user, ]) password = PasswordField(u'Password', validators=[validators.required(), validators.length(min=settings.MIN_PASSWORD_LENGTH), ]) password_confirmation = PasswordField(u'Password confirmation', validators=[validators.required(), validators.length(min=settings.MIN_PASSWORD_LENGTH), ]) submit = SubmitField(u'Register') def __init__(self, *args, ** kwargs): Form.__init__(self, *args, ** kwargs) self.user = None def validate(self): rv = Form.validate(self) if not rv: return False pseudo = self.login.data password = self.password.data password_confirmation = self.password_confirmation.data if password != password_confirmation: self.password.errors.append('Passwords mismatch') self.password_confirmation.errors.append('Passwords mismatch') return False self.user = User(pseudo, password) return True
class CityForm(Form): name = TextField(u"城市名称", validators=[required(message=u"必填")]) label = TextField(u"label", validators=[required(message=u"必填")]) no = TextField(u"序号", validators=[required(message=u"必填")]) submit = SubmitField(u"提交") next = HiddenField()
class LoginForm(Form): def __init__(self, *args, ** kwargs): Form.__init__(self, *args, ** kwargs) self.user = None login = TextField(u'Login', validators=[validators.required(), ]) password = PasswordField(u'Password', validators=[validators.required(), ]) remember = BooleanField(u'Remember me') submit = SubmitField(u'Validate') def validate(self): rv = Form.validate(self) if not rv: return False pseudo = self.login.data password = self.password.data try: user_exists(self, self.login) user = check_password(pseudo, password) if user is None: self.password.errors.append('Wrong password.') return False except ValidationError: self.login.errors.append('Unknow user.') return False self.user = user return True
class EmailForm(Form): """Simple email form.""" name = TextField("Your Name", validators=[Required()]) recipient = TextField("Recipient's Email", validators=[Email()]) email = TextField("Your Email", validators=[Email()]) message = TextAreaField("Message", validators=[Required()]) submit = SubmitField("Send Email")
class PostForm(Form): title = TextField(_("Title"), validators=[required(message=_("Title required"))]) slug = TextField(_("Slug")) content = TextAreaField(_("Content")) tags = TextField(_("Tags"), validators=[required(message=_("Tags required"))]) submit = SubmitField(_("Save")) def __init__(self, *args, **kwargs): self.post = kwargs.get('obj', None) super(PostForm, self).__init__(*args, **kwargs) def validate_slug(self, field): if len(field.data) > 50: raise ValidationError, gettext( "Slug must be less than 50 characters") slug = slugify(field.data) if field.data else slugify( self.title.data)[:50] posts = Post.query.filter_by(slug=slug) if self.post: posts = posts.filter(db.not_(Post.id == self.post.id)) if posts.count(): error = gettext("This slug is taken") if field.data else gettext( "Slug is required") raise ValidationError, error
class PostForm(Form): title = TextField(u"标题", validators=[required(message=u"标题不能为空")], id="post_title") link = TextField(u"链接", default="http://", validators=[optional(), url(message=u"必须是个有效的链接")], id="post_link") description = TextAreaField(u"描述", id="post_description") tags = TextField(u"标签(用逗号分隔)", id="post_tags") access = RadioField(u"谁可以查看?", default=Post.PUBLIC, coerce=int, choices=((Post.PUBLIC, u"任何人"), (Post.FRIENDS, u"好友"), (Post.PRIVATE, u"只有自己"))) submit = SubmitField(u"提交") def __init__(self, *args, **kwargs): self.post = kwargs.get('obj', None) super(PostForm, self).__init__(*args, **kwargs) def validate_link(self, field): posts = Post.query.public().filter_by(link=field.data) if self.post: posts = posts.filter(db.not_(Post.id == self.post.id)) if posts.count(): raise ValidationError, u"这个链接已经有人提交了"
class CateForm(Form): name = TextField(u"分类名称", validators=[required(message=u"必填")]) label = TextField(u"label", validators=[required(message=u"必填")]) logo = TextField(u"图标css类", validators=[required(message=u"必填")]) no = TextField(u"序号", validators=[required(message=u"必填")]) submit = SubmitField(u"提交") next = HiddenField()
class LoginForm(Form): email = TextField('Email', validators=[Required(), Email()]) password = PasswordField('Password', validators=[Required()]) idle_ttl = RadioField('Idle Session Timeout', default='tmp', choices=[ ('tmp', '20 minutes'), ('day', '8 hours (a normal business day)'), ('week', '8 days (Monday to Monday)'), ]) submit = SubmitField('Login')
class CommentAbuseForm(Form): complaint = TextAreaField("Complaint", validators=[ required(message=\ _("You must enter the details" " of the complaint"))]) submit = SubmitField(_("Send"))
class ReplyForm(Form): content = TextAreaField(_("Reply"), validators=[ required(message=_("Content required")), length( max=140, message=_("Pls. less than 140 characater")) ]) submit = SubmitField(_("Commit"))
class MessageForm(Form): subject = TextField(_("Subject"), validators=[required(message=_("Subject required"))]) message = TextAreaField( _("Message"), validators=[required(message=_("Message required"))]) submit = SubmitField(_("Send"))
class EditTemplateForm(Form): subject = TextField(u"subject", validators=[ Required(u"subject is required") ], default="") description = TextAreaField(u"description", validators=[ ], default="") tags = TagListField(u"tag", validators=[ ]) archive = FileField(u"Template file", validators=[ ]) cancel = SubmitField(u"Cancel") submit_update = SubmitField(u"Update") def validate_archive(form, field): if len(field.file.filename)>0 \ and field.file.filename.split(".")[-1].upper() != "ZIP": raise ValidationError("archive is required compressed zip")
class UploadForm(Form): """A simple form for uploading files to Open Data Boston.""" name = TextField('Name', validators=[Required()]) email = TextField('Email', validators=[Email()]) phone = TextField('Phone Number') file = FileField() title = TextField('Title') url = TextField('Dataset URL') description = TextAreaField('Description', validators=[Required()]) submit = SubmitField('Submit')
class PageAddTagForm(Form): tag = TextField( 'Tag', validators=[ Required(), Regexp(regex=r'[a-z0-9]{1,80}', flags=re.IGNORECASE, message='Invalid Tag. Only able to use a-z and 0-9'), ]) submit = SubmitField('Submit')
class OpenIdLoginForm(Form): next = HiddenField() openid = TextField("OpenID", validators=[ required(_("OpenID is required")), url(_("OpenID must be a valid URL")) ]) submit = SubmitField(_("Login"))
class ContactForm(Form): name = TextField("Name", [validators.Required("Please, enter your name.")]) email = TextField("Email", [ validators.Required("Please enter your email address."), validators.Email("Please enter valid email address.") ]) subject = TextField("Subject", [validators.Required("Please enter a subject.")]) message = TextAreaField("Message", [validators.Required("Please enter a message.")]) submit = SubmitField("Send")
class RegisterForm(Form): email = TextField('Email Address', validators = [Email()]) password = PasswordField('New Password', validators=[ Required(), Length(min=8, max=80), EqualTo('confirm', message='Passwords must match') ]) confirm = PasswordField('Repeat Password') accept_tos = BooleanField('I accept the TOS', validators = [Required()]) timezone = QuerySelectField(get_label='name', allow_blank=True) submit = SubmitField('Register')
class DefaultLoginForm(Form): """The default login form used by Auth """ username = TextField( "Username or Email", validators=[Required(message="Username not provided")]) password = PasswordField( "Password", validators=[Required(message="Password not provided")]) remember = CheckboxInput("Remember Me") next = HiddenField() submit = SubmitField("Login")
class SolutionForm(Form): description = TextAreaField( 'Description/Notes', [validators.Optional(), validators.Length(max=255)]) youtube = TextField('YouTube Link', [ validators.Optional(), validators.Length(max=255), validators.Regexp('^(http://)?(www\.)?youtu\.?be[\./]', message='Not a valid YouTube URL') ]) submit = SubmitField('Update')