class CreateFabfileExecuteForm(Form): vars_desc = u'''<p>用 <code>|</code> 作为key(IP地址)和value的分隔符, 用 <code>,</code> 作为value(多个变量赋值)的分隔符, \ 用 <code>=</code> 作为单变量的赋值符。 如:</p> <code>60.175.193.194|address=61.132.226.195,gateway=61.132.226.254</code>''' next_page = HiddenField() server_list = TextAreaField( u'Server List', description=u'Only support ip address. \ Separated by <code>;</code>、<code>,</code>、<code>空格</code> and <code>换行</code>', validators=[Required(message=u'Server list is required')]) script_template = QuerySelectField( u'Fabfile Script', description=u'Fabfile Script.', query_factory=FabFile.query.all, get_label='desc', validators=[Required(message=u'Fabfile Script is required')]) ext_variables = TextAreaField(u'External Variables', description=vars_desc) ssh_config = QuerySelectField( u'Ssh Config', query_factory=SshConfig.query.all, get_label='desc', validators=[Required(message=u'Ssh config is required')]) submit = SubmitField(u'Submit', id='submit')
class EditModuleForm(Form): name = TextField(_(u"模块名:"), validators=[required(_(u"请输入模块名称")), is_legal_name]) description = TextAreaField(_(u"描述:")) parent_id = SelectField(_(u"所属模块:"), default=0, coerce=int) input_template = TextAreaField(_(u"输入用例模板:")) output_template = TextAreaField(_(u"输出用例模板:")) submit = SubmitField(_(u"保存")) def __init__(self, moduleType, *args, **kwargs): self.moduleType = moduleType kwargs['obj'] = self.moduleType super(EditModuleForm, self).__init__(*args, **kwargs) def validate_name(self, field): moduleType = ModuleType.query.filter( db.and_(ModuleType.name.like(field.data), db.not_(ModuleType.id == self.moduleType.id))).first() if moduleType: raise ValidationError(gettext(u"模块名已经存在"))
class PageForm(Form): """ This class extends the base Form class from the wtforms package, which takes care of validation and other details for us. """ title = TextField('Event title (e.g. Lowell GOTV Rally)', [validators.Required()]) date = TextField('Date (e.g. June 24, 2013)') time = TextField('Time (e.g. 2:30 pm)') address = TextAreaField('Address') description = TextAreaField('Description') entry = TextAreaField('Event info to be submitted to the Google Doc') filename = TextField( 'Short name for this signup page, to be used for the ' 'filename (e.g. lowell-rally)', [validators.Length(min=6, max=35)]) production = BooleanField('I have previewed by submitting once without ' 'checking this box, and am now ready to upload ' 'it as final (if left unchecked, the page will ' 'be uploaded to the staging bucket for preview)') password = PasswordField('Password')
class CreateCustomExecuteForm(Form): script_desc = u'''作为shell中的 <code>$</code> 内部变量的扩展,模板还支持外部变量。\ <code>{{</code> 和 <code>}}</code> 作为外部变量的定界符,此类变量会依据变量文件中的同名赋值定义进行替换, \ 同时标准错误输出以及标准输出中匹配到<code>BD:\w+?:EOF</code>的字符串可以作为返回结果保存。如: <code>device=eth1; echo "IPADDR={{address}}" >> ~/ifcfg-$device</code>''' vars_desc = u'''用 <code>|</code> 作为key(IP地址)和value的分隔符, 用 <code>,</code> 作为value(多个变量赋值)的分隔符, \ 用 <code>=</code> 作为单变量的赋值符。 如: <code>60.175.193.194|address=61.132.226.195,gateway=61.132.226.254</code>''' next_page = HiddenField() server_list = TextAreaField( u'Server List', description=u'Only support ip address. \ Separated by <code>;</code>、<code>,</code>、<code>空格</code> and <code>换行</code>', validators=[Required(message=u'Server list is required')]) script_template = TextAreaField( u'Script Template', description=script_desc, validators=[Required(message=u'Script Template is required')]) ext_variables = TextAreaField(u'External Variables', description=vars_desc) ssh_config = QuerySelectField( u'Ssh Config', query_factory=SshConfig.query.all, get_label='desc', validators=[Required(message=u'Ssh config is required')]) submit = SubmitField(u'Submit', id='submit')
class ContentCreate_Form(Form): next = HiddenField() tags_csv = HiddenField() title = TextField( "Title", validators=[validators.required(), validators.Length(max=128)]) teaser = TextAreaField( "Teaser", validators=[validators.required(), validators.Length(max=200)]) content = TextAreaField("Body", validators=[validators.Required()]) #recaptcha = RecaptchaField() submit = SubmitField("Submit")
class EntryForm(Form): title = TextField("Title", validators=[required(message="Title required")]) slug = TextField("Slug") tags = TextField("Tags") pub_date = DateTimeField("Published On:", id="date-input", format='%Y-%m-%d') publish = BooleanField('Publish?') delete = BooleanField("Delete?") body = TextAreaField("Body", id='text-editor', validators=[required(message="Body required")]) abstract = TextAreaField("Abstract")
class CreateLogin(Form): fname = TextField('*First Name', validators=[Required()]) lname = TextField('Last Name', validators=[Optional(strip_whitespace=True)]) mobile = TextField( 'Mobile', validators= # sets optional entry and strips whitespace [ Optional(strip_whitespace=True), v.Length(max=15, message='Mobile exceeds length') ]) zipcode = IntegerField('Zipcode', validators=[Optional(strip_whitespace=True)]) # v.NumberRange(max=9, # message='Zipcode exceeds length')]) email = TextField('*Email', validators=[ Required(), v.Email(), v.EqualTo('confirm_email', message="Emails must match") ]) confirm_email = TextField('*Confirm Email') bio = TextAreaField('Bio', validators=[Length(min=0, max=140)]) password = PasswordField('*Password', validators=[ Required(), v.EqualTo('confirm_password', message='*Passwords must match') ]) confirm_password = PasswordField('Confirm Password') remember_me = BooleanField('Remember Me', default=False) recaptcha = RecaptchaField('*Person Test')
class CycleForm(Form): name = TextField('Test Cycle Name:', validators=[required(message="Name can't be None")], id="cycle_name") build = TextField("Test Build:") description = TextAreaField(u"Test Cycle Description", id="cycle_description") #tags = TextField("Separate by commma", id = "cycle_tags") submit = SubmitField() def __init__(self, *args, **kwargs): self.cycle = kwargs.get('obj', None) super(CycleForm, self).__init__(*args, **kwargs) def validate_name(self, field): cycle = Cycle.query.filter(Cycle.name.like(field.data)).first() if cycle: raise ValidationError, "This test cycle has been existed" def validate_link(self, field): cycles = Cycle.query.filter_by(link=field.data) if self.cycle: cycles = cycles.filter(db.not_(Cycle.id == self.cycle.id)) if cycles.count(): raise ValidationError, "This Test Link has been existed"
class SapplyForm(Form): name = TextField(u'简述', validators=[required(), length(max=64)]) s_id = SelectField(u'机器型号', coerce=int, validators=[required()]) s_num = TextField(u'数量', validators=[required(), regexp(u'^[0-9]+$'), length(max=11)]) status = TextField(u'状态', validators=[]) days = TextField(u'天数', validators=[regexp(u'^[0-9]*$')]) desc = TextAreaField(u'描述', validators=[])
class RegisterForm(Form): """ Registration Form to fill out initial User object. """ name = TextField(u'Full Name', [Required()]) netid = TextField(u'NetID', [Required()]) email = TextField(u'Email address', [Required(), Email()]) standing = SelectField(u'Class Standing', [Required()], choices=[('freshman', 'Freshman'), ('soph', 'Sophomore'), ('junior', 'Junior'), ('senior', 'Senior'), ('alum', 'Alumni'), ('grad', 'Graduate Student'), ('faculty', 'Faculty')]) major = SelectField(u'Major', [Required()], choices=[('CS', 'CS (Computer Science)'), ('CE', 'CE (Computer Engineering)'), ('BI', 'BI (Business Informatics)'), ('Other', 'Other')]) shirt_size = SelectField(u'T-Shirt Size', [Required()], choices=[('S', 'Small'), ('M', 'Medium'), ('L', 'Large'), ('XL', 'X-Large'), ('XXL', '2X-Large')]) description = TextAreaField(u'Describe yourself! ' '(Github Flavored Markdown Allowed!)') reg_only = SubmitField(u'<i class="icon-group"></i> Register Only') reg_and_pay = SubmitField(u'<i class="icon-credit-card"></i> ' 'Register and Pay Membership')
class NodeForm(BaseForm): title = TextField( _('Title'), validators=[DataRequired()], description=_('The screen title of the node') ) urlname = TextField( _('URL'), validators=[DataRequired()], description=_('The url name of the node') ) description = TextAreaField(_('Description')) role = SelectField( description=_('Required role'), choices=[ ('user', _('User')), ('staff', _('Staff')), ('admin', _('Admin')) ], default='user', ) def validate_urlname(self, field): if self._obj and self._obj.urlname == field.data: return if Node.query.filter_by(urlname=field.data).count(): raise ValueError(_('The node exists')) def save(self): node = Node(**self.data) node.save() return node
class CommentForm(Form): comment = TextAreaField( validators=[required(message=_("Comment is required"))]) submit = SubmitField(_("Save")) cancel = SubmitField(_("Cancel"))
class ContactForm(Form): email = StrippedTextField(u'Email', \ validators=[Length(min=0,max=100), Required()]) subject = StrippedTextField(u'Subject', \ validators=[Length(min=0,max=100), Required()]) comments = TextAreaField(u'Comments', validators=[Required()]) recaptcha = RecaptchaField()
class AddPublicKeyForm(Form): key = TextAreaField("Public Key", validators = [ Required(), IsPublicKey(), Not(PublicKeyExists(), message = "This public key is already in use by one of the users, possibly you!?")]) name = TextField("Key Name", validators = [Required()]) submit = SubmitField("Add")
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 TemplateForm(Form): html = TextAreaField(_("HTML"), validators=[ required(message=_("HTML required"))]) submit = SubmitField(_("Save")) cancel = SubmitField(_("Cancel"))
class LossForm(Form): sku = QuerySelectField(u'商品',query_factory=lambda:Sku.query.all(),get_label='name') quantity = IntegerField(u'报损数量',[validate_gte_0]) channel = SelectField(u"损坏渠道", [AnyOf([str(val) for val in LOSS_CHANNELS.keys()])],choices=[(str(val), label) for val, label in LOSS_CHANNELS.items()]) degree = SelectField(u"损坏情况", [AnyOf([str(val) for val in LOSS_DEGREES.keys()])],choices=[(str(val), label) for val, label in LOSS_DEGREES.items()]) link_order_id = TextField(u'关联订单号') remark = TextAreaField(u'原因备注')
class EditForm(Form): nickname = TextField('nickname', validators=[Required()]) about_me = TextAreaField('about_me', validators=[Length(min=0, max=140)]) def __init__(self, original_nickname, *args, **kwargs): Form.__init__(self, *args, **kwargs) self.original_nickname = original_nickname def validate(self): if not Form.validate(self): return False if self.nickname.data == self.original_nickname: return True if self.nickname.data != User.make_valid_nickname(self.nickname.data): self.nickname.errors.append( gettext( 'This nickname has invalid characters. Please use letters, numbers, dots and underscores only.' )) return False user = User.query.filter_by(nickname=self.nickname.data).first() if user != None: self.nickname.errors.append( gettext( 'This nickname is already in use. Please choose another one.' )) return False return True
class placeableUpgradeForm(Form): name = StringField('Type Name', [validators.Length(min=4, max=20)]) description = TextAreaField('Describe the Intention of this upgrade', [validators.Length(min=4, max=250)]) #Upgrde type selectable upgrade_type = SelectField(u'Upgrade Type', coerce=unicode) del_entity = HiddenField('del_entity')
class PostForm(Form): """ Form for the Post object """ title = TextField("Titel", validators=[Required()]) body = TextAreaField("Tekst", default="Voer hier je tekst in...", validators=[Required()]) date = DateField("Datum", validators=[Required()])
class ProfileForm(Form): multipart = True next = HiddenField() email = EmailField(u'Email', [Required(), Email()]) # Don't use the same name as model because we are going to use populate_obj(). avatar_file = FileField(u"Avatar", [Optional()]) sex_code = RadioField(u"Sex", [AnyOf([str(val) for val in SEX_TYPE.keys()])], choices=[(str(val), label) for val, label in SEX_TYPE.items()]) age = IntegerField(u'Age', [Optional(), NumberRange(AGE_MIN, AGE_MAX)]) phone = TelField(u'Phone', [Length(max=64)]) url = URLField(u'URL', [Optional(), URL()]) deposit = DecimalField( u'Deposit', [Optional(), NumberRange(DEPOSIT_MIN, DEPOSIT_MAX)]) location = TextField(u'Location', [Length(max=64)]) bio = TextAreaField(u'Bio', [Length(max=1024)]) submit = SubmitField(u'Save') def validate_name(form, field): user = User.get_by_id(current_user.id) if not user.check_name(field.data): raise ValidationError("Please pick another name.") def validate_avatar_file(form, field): if field.data and not allowed_file(field.data.filename): raise ValidationError("Please upload files with extensions: %s" % "/".join(ALLOWED_AVATAR_EXTENSIONS))
class EditMachineForm(Form): name = TextField(_(u"机器名:"), validators=[required(_(u"请输入机器名")), is_legal_name]) description = TextAreaField(_(u"描述:")) status = RadioField(_(u"状态:"), default=Machine.OK, coerce=int, choices=((Machine.OK, _(u"正常")), (Machine.REALLY, _(u"停用")))) username = TextField(_(u"用户名:"), validators=[required(_(u"请输入用户名"))]) password = TextField(_(u"密码:"), validators=[required(message=_(u"请输入密码"))]) url_hudson = TextField(_(u"Hudson地址:"), validators=[required(_(u"请输入Hudson地址"))]) key = TextField(_(u"SSH Key:")) submit = SubmitField(_(u"保存")) def __init__(self, machine, *args, **kwargs): self.machine = machine kwargs['obj'] = self.machine super(EditMachineForm, self).__init__(*args, **kwargs) def validate_name(self, field): machine = Machine.query.filter( db.and_(Machine.name.like(field.data), db.not_(Machine.id == self.machine.id))).first() if machine: raise ValidationError(gettext(u"机器名已经存在"))
class EditForm(Form): """ Form used to edit user profile information. """ name = TextField(u'Name', [Required()]) netid = TextField(u'NetID', [Required()]) email = TextField(u'Email address', [Required()]) standing = SelectField(u'Class Standing', [Required()], choices=[('freshman', 'Freshman'), ('soph', 'Sophomore'), ('junior', 'Junior'), ('senior', 'Senior'), ('alum', 'Alumni'), ('grad', 'Graduate Student'), ('faculty', 'Faculty')]) major = SelectField(u'Major', [Required()], choices=[('CS', 'CS (Computer Science)'), ('CE', 'CE (Computer Engineering)'), ('BI', 'BI (Business Informatics)'), ('Other', 'Other')]) shirt_size = SelectField(u'T-Shirt Size', [Required()], choices=[('S', 'Small'), ('M', 'Medium'), ('L', 'Large'), ('XL', 'X-Large'), ('XXL', '2X-Large')]) description = TextAreaField(u'Describe yourself! ' '(Github Flavored Markdown Allowed!)')
class EditReleaseForm(Form): shippedAtDate = DateField('Shipped date', format='%Y/%m/%d', validators=[ validators.optional(), ]) shippedAtTime = StringField('Shipped time') isSecurityDriven = BooleanField('Is Security Driven ?') description = TextAreaField('Description') isShipped = BooleanField('Is Shipped ?') def validate_isShipped(form, field): if form.isShipped.data: dt = form.shippedAt if (not dt) or (dt > datetime.now()): raise ValidationError('Invalid Date for Shipped release') @property def shippedAt(self): dateAndTime = None if self.shippedAtDate.data: dt = self.shippedAtDate.data tm = datetime.strptime(self.shippedAtTime.data, '%H:%M:%S').time() dateAndTime = datetime.combine(dt, tm) return dateAndTime
class EditPageForm(Form): body = TextAreaField(u'Page contents', validators=[Required()]) commit_msg = TextField(u'Commit message', validators=[Required()], default='Minor edit.') preview = SubmitField(u'Preview') save = SubmitField(u'Save')
class SDCApplicationForm(Form): theme = SelectField(label=_l(u"Merci de choisir une catégorie"), choices=THEMES_AS_CHOICE, validators=[required()]) leader = StringField(label=_l(u"Votre nom"), validators=[required()]) prenom = StringField(label=_l(u"Votre prénom"), validators=[required()]) email = EmailField(label=_l(u"Your email address"), validators=[required(), email()]) telephone = StringField(label=_l(u"Votre téléphone"), validators=[required()]) organization = StringField(label=_l(u"Etablissement / entreprise"), validators=[required()]) intervenants = TextAreaField( label=_l(u"Autres intervenants (autant de possible)")) summary = TextAreaField(label=_l(u"Résumé du projet"), validators=[required()])
class EditForm(Form): username = TextField( 'Username', validators=[validators.LengthOrEmpty(min=3, max=8)]) first_name = TextField('First Name') last_name = TextField('Last Name') dob = TextField( 'Date of Birth (MM/DD/YYYY)', validators=[ validators.Date( format='%m/%d/%Y', message='Invalid format. Please use mm/dd/yyyy.') ]) email = TextField('E-mail Address', validators=[validators.Email()]) sponsor = SelectField('Sponsor', choices=[(s.username, ''.join( (s.last_name, ', ', s.first_name))) for s in database.get_sponsors(True)]) grad_date = TextField( 'Graduation Date (MM/YYYY)', validators=[ validators.Date(format='%m/%Y', message='Invalid format. Please use mm/yyyy') ]) acct_type = RadioField( choices=[('acad', 'Academic'), ('research', 'Research & Academic')]) comments = TextAreaField('Comments') status = TextField('Status')
class SettingForm(Form): email_template = TextAreaField('Email template', [required()]) def save(self, user): user.setting.set_val('email_template', self.email_template.data) return True
class EditCodeForm(Form): '''It is used for editing codes, defines edit codes form.''' next = HiddenField() name = TextField(_(u"名称:"), validators=[required(_(u"请输入名称")), is_legal_name]) description = TextAreaField(_(u"描述:")) related_module = SelectField(_(u"所属模块:"), default=0, coerce=int) path = FileField(u"代码文件", validators=[required(message=_(u"请选择文件"))]) submit = SubmitField(_(u"保存")) def __init__(self, code, *args, **kwargs): self.code = code kwargs['obj'] = self.code super(EditCodeForm, self).__init__(*args, **kwargs) def validate_name(self, field): code = Code.query.filter( db.and_(Code.name.like(field.data), db.not_(Code.id == self.code.id))).first() if code: raise ValidationError(gettext(u"名称已经存在"))
class ThreadCrudForm(Form): question_id = HiddenField(validators=[Required(),valid_question]) author_id = SelectMultipleField("Author", validators=[check_if_user_does_not_exist]) yesno = SelectField("Yes or No?", validators=[AnyOf(["1","0"]), Required()], choices=[("1",'Yes'),("0",'No')]) text = TextAreaField("Opinion", validators=[ Length(min=1, max=140, message="Post must be between 2 and 140 characters"), Required(), does_not_have_bad_words]) likes = IntegerField("Likes", validators=[Optional()]) def __init__(self, question_id=None, *args, **kwargs): super(ThreadCrudForm, self).__init__(*args, **kwargs) if question_id: self.question_id.data = question_id self.author_id.choices = [(str(u.id),'%s (%s)' % (u.username, u.origin)) \ for u in cdw.users.with_fields(isAdmin=True).order_by("+username")]