Esempio n. 1
0
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')
Esempio n. 2
0
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"模块名已经存在"))
Esempio n. 3
0
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')
Esempio n. 4
0
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')
Esempio n. 5
0
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")
Esempio n. 6
0
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")
Esempio n. 7
0
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')
Esempio n. 8
0
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"
Esempio n. 9
0
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=[])
Esempio n. 10
0
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')
Esempio n. 11
0
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
Esempio n. 12
0
class CommentForm(Form):

    comment = TextAreaField(
        validators=[required(message=_("Comment is required"))])

    submit = SubmitField(_("Save"))
    cancel = SubmitField(_("Cancel"))
Esempio n. 13
0
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()
Esempio n. 14
0
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")
Esempio n. 15
0
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"这个链接已经有人提交了"
Esempio n. 16
0
class TemplateForm(Form):

    html = TextAreaField(_("HTML"), validators=[
        required(message=_("HTML required"))])

    submit = SubmitField(_("Save"))
    cancel = SubmitField(_("Cancel"))
Esempio n. 17
0
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'原因备注')
Esempio n. 18
0
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
Esempio n. 19
0
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')
Esempio n. 20
0
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()])
Esempio n. 21
0
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))
Esempio n. 22
0
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"机器名已经存在"))
Esempio n. 23
0
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!)')
Esempio n. 24
0
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
Esempio n. 25
0
File: forms.py Progetto: mbr/qwapp
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')
Esempio n. 26
0
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()])
Esempio n. 27
0
 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')
Esempio n. 28
0
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
Esempio n. 29
0
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"名称已经存在"))
Esempio n. 30
0
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")]