Beispiel #1
0
class PaymentRequestForm(Form):
    sid = sid_field
    pid = pid_field
    amount = DecimalField('Amount', [validators.required(), validators.NumberRange(min=0)], places=2)
    checksum = checksum_field
    success_url = StringField('Success URL', [validators.required(), validators.URL(require_tld=False)])
    cancel_url = StringField('Cancel URL', [validators.required(), validators.URL(require_tld=False)])
    error_url = StringField('Error URL', [validators.required(), validators.URL(require_tld=False)])

    def validate(self):
        if not super().validate():
            return False
        # Validate checksum
        test = get_checksum(self, ('pid', 'sid', 'amount'), getter=lambda o, k: getattr(o, k).raw_data[0])
        if not compare_digest(test, self.checksum.data):
            # Check https://docs.python.org/3/library/hmac.html#hmac.compare_digest for reason why this is used in place of a != b
            self.checksum.errors.append("The checksum does not match the data")
            return False
        # Validate unique pid
        old_payment = PaymentRecord.from_session(self.sid.data, self.pid.data)
        if old_payment:
            self.pid.errors.append(
                "A payment with this pid has already been processed. "
                "Time: {}, Result: {}, Ref: {}".format(
                    old_payment.datestr, old_payment.result, old_payment.ref))
            self._old_payment = old_payment
            return False
        return True

    def get_payment(self):
        obj = PaymentRequest()
        self.populate_obj(obj)
        obj.old = self._old_payment if hasattr(self, '_old_payment') else None
        obj.message = self.errors_as_string
        return obj
Beispiel #2
0
class ApplicationForm(Form):
    name = StringField(gettext('Application name'), [
        validators.DataRequired(
            message=gettext("Application name field is empty.")),
        validators.Length(
            min=3,
            message=gettext(
                "Application name needs to be at least 3 characters long.")),
        validators.Length(
            max=64,
            message=gettext(
                "Application name needs to be at most 64 characters long."))
    ])
    desc = StringField(gettext('Description'), [
        validators.DataRequired(
            message=gettext("Client description field is empty.")),
        validators.Length(
            min=3,
            message=gettext(
                "Client description needs to be at least 3 characters long.")),
        validators.Length(
            max=512,
            message=gettext(
                "Client description needs to be at most 512 characters long."))
    ])
    website = StringField(gettext('Homepage'), [
        validators.DataRequired(message=gettext("Homepage field is empty.")),
        validators.URL(message=gettext("Homepage is not a valid URI."))
    ])
    redirect_uri = StringField(gettext('Authorization callback URL'), [
        validators.DataRequired(
            message=gettext("Authorization callback URL field is empty.")),
        validators.URL(
            message=gettext("Authorization callback URL is invalid."))
    ])
Beispiel #3
0
class CreateAppForm(Form):
    unit = TextAreaField('Unit',
                         [validators.Length(10),
                          validators.DataRequired()])

    image = FileField('App Icon')
    privacy_policy_url = StringField('Privacy policy url', [validators.URL()])
    url = StringField('URL', [validators.URL()])
    webhook_url = StringField('Webhook URL', [validators.URL()])
    submit = SubmitField("SUBMIT")
Beispiel #4
0
class PageForm(form.Form):
    name = fields.TextField('Name', [validators.required(), validators.length(max=500)])
    url = fields.TextField('URL', [validators.required(), validators.URL(require_tld=False), validators.length(max=1024)])
    preview_urls = fields.FieldList(fields.TextField('Additional preview URLs', [validators.URL(require_tld=False), validators.length(max=1024)]))

    def validate(self):
        self.url.data = add_protocol(self.url.data)
        for ix in range(len(self.preview_urls)):
            self.preview_urls[ix].data = add_protocol(self.preview_urls[ix].data)
        return form.Form.validate(self)
Beispiel #5
0
class RestaurantForm(Form):
    title = StringField('Restaurant Name and location', [validators.NoneOf(listOfRestNames, message = 'Restaurant identifier is already taken'), validators.Length(min =1, max = 100)])
    yelp_url = StringField('Yelp URL', [
        validators.Optional(),
        validators.URL(message='Invalid url, leave blank if none exists.')] )
    open_table_url = StringField('Open Table URL', [
        validators.Optional(),
        validators.URL(message='Invalid url, leave blank if none exists.')] )
    google_url = StringField('Google URL', [
        validators.Optional(),
        validators.URL(message='Invalid url, leave blank if none exists.')] )
Beispiel #6
0
class MFWForm(Form):
    name = StringField(
        "Name", [validators.InputRequired(),
                 validators.Length(min=2, max=20)])
    description = StringField(
        "Description",
        [validators.InputRequired(),
         validators.Length(min=2, max=100)])
    id = IntegerField("MFW_ID")
    image_url = StringField("Image URL", [validators.URL()])
    reference_url = StringField("Reference URL", [validators.URL()])
Beispiel #7
0
class UpcomingForm(Form):

    title = StringField('Title', [validators.length(min=1, max=50)])
    image_url = StringField('ImageUrl',
                            [validators.URL(require_tld=False, message=None)])
    venue = StringField('Venue', [validators.length(min=5, max=50)])
    time = StringField('Time', [validators.length(min=2, max=10)])
    date = DateField('Date', format='%Y-%m-%d')
    level = StringField('Level', [validators.length(min=5, max=15)])
    event_url = StringField('EventUrl',
                            [validators.URL(require_tld=False, message=None)])
Beispiel #8
0
class UserEditForm(wtf.Form):
    """ Admin edits freelancer's profile """

    employment_contract = wtf.BooleanField(_(u"Employment contract"),
                                           validators=[])
    is_active = wtf.BooleanField(_(u"Is active"), validators=[])

    avatar = wtf.HiddenField()
    roles = wtf.SelectMultipleField(_(u'Role'),
                                    validators=[],
                                    choices=User.ROLES)

    start_work = wtf.DateField(_(u"Start work"),
                               format='%d/%m/%Y',
                               validators=[])
    start_full_time_work = wtf.DateField(_(u"Start full time work"),
                                         format='%d/%m/%Y',
                                         validators=[validators.Optional()])
    stop_work = wtf.DateField(_(u"Stop work"),
                              format='%d/%m/%Y',
                              validators=[validators.Optional()])
    description = wtf.TextField(_(u"Description"),
                                validators=[validators.Optional()])
    date_of_birth = wtf.DateField(_(u"Date of birth"),
                                  format='%d/%m/%Y',
                                  validators=[validators.Optional()])
    location = wtf.SelectField(_(u"Office location"),
                               choices=[('', u'--None--')] +
                               [(k, v[0]) for k, v in User.LOCATIONS.items()])

    availability_link = wtf.TextField(
        _(u"Availability calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    tasks_link = wtf.TextField(
        _(u"Tasks calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    skype = wtf.TextField(_(u"Skype"), validators=[validators.Optional()])
    phone = wtf.TextField(_(u"Phone"), validators=[validators.Optional()])
    phone_on_desk = wtf.TextField(_(u"Deskphone"),
                                  validators=[validators.Optional()])
    irc = wtf.TextField(_(u"IRC"), validators=[validators.Optional()])

    groups = wtf.SelectMultipleField(_(u'Groups'),
                                     validators=[],
                                     choices=(('freelancer',
                                               'freelancer'), ('user', 'user'),
                                              ('admin', 'admin'), ('scrum',
                                                                   'scrum')))
Beispiel #9
0
class UserEditForm(wtf.Form):
    """ Admin edits freelancer's profile """
    def process(self, formdata=None, obj=None, **kwargs):
        if isinstance(obj, User):
            kwargs['level'] = obj.levels_list
        super(UserEditForm, self).process(formdata, obj, **kwargs)

    is_active = wtf.BooleanField(_(u"Is active"), validators=[])
    is_programmer = wtf.BooleanField(_(u"Is programmer"), validators=[])
    is_frontend_developer = wtf.BooleanField(_(u"Is frontend developer"),
                                             validators=[])
    is_graphic_designer = wtf.BooleanField(_(u"Is graphic designer"),
                                           validators=[])

    avatar = wtf.HiddenField()
    level = wtf.SelectMultipleField(_(u'Role'), validators=[], choices=levels)

    start_work = wtf.DateField(_(u"Start work"),
                               format='%d/%m/%Y',
                               validators=[])
    start_full_time_work = wtf.DateField(_(u"Start full time work"),
                                         format='%d/%m/%Y',
                                         validators=[validators.Optional()])
    description = wtf.TextField(_(u"Description"),
                                validators=[validators.Optional()])
    location = wtf.SelectField(_(u"Office location"),
                               choices=[('', u'--None--')] +
                               [(k, v[0]) for k, v in User.LOCATIONS.items()])

    availability_link = wtf.TextField(
        _(u"Availability calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    tasks_link = wtf.TextField(
        _(u"Tasks calendar link"),
        validators=[validators.Optional(),
                    validators.URL()])
    skype = wtf.TextField(_(u"Skype"), validators=[validators.Optional()])
    phone = wtf.TextField(_(u"Phone"), validators=[validators.Optional()])
    phone_on_desk = wtf.TextField(_(u"Deskphone"),
                                  validators=[validators.Optional()])
    irc = wtf.TextField(_(u"IRC"), validators=[validators.Optional()])

    groups = wtf.SelectMultipleField(_(u'Groups'),
                                     validators=[],
                                     choices=(
                                         ('freelancer', 'freelancer'),
                                         ('user', 'user'),
                                         ('admin', 'admin'),
                                     ))
Beispiel #10
0
class MarkForm(Form):
    referrer = HiddenField([validators.URL(require_tld=False)])
    title = StringField('Title', [validators.Length(min=0, max=255)],
                        filters=[strip_filter])
    url = StringField('URL', [
        validators.Length(min=4, max=512),
        validators.URL(require_tld=False, message='Not a valid URL')
    ],
                      filters=[strip_filter])
    type = RadioField('Type',
                      coerce=str,
                      choices=[('bookmark', 'Bookmark'), ('feed', 'Feed')],
                      default='bookmark')
    tags = StringField('Tags', [validators.Length(min=0, max=255)],
                       filters=[strip_filter])
Beispiel #11
0
class CommitLinksForm(FlaskForm):
    repo_url = StringField(
        "Git Repo URL", validators=[validators.Optional(),
                                    validators.URL()])
    commit_hash = StringField("Commit Hash", validators=[])

    # Commit data is optional -> otherwise use: validators.DataRequired(),
    commit_link = StringField(
        "Main commit link",
        validators=[validators.Optional(),
                    validators.URL()])
    repo_name = StringField("Repository Name", validators=[])

    class Meta:
        csrf = False
Beispiel #12
0
class CommentForm(wtforms.Form):
    name = wtforms.StringField('Name', validators=[validators.DataRequired()])
    email = wtforms.StringField(
        'Email', validators=[validators.DataRequired(),
                             validators.Email()])
    url = wtforms.StringField(
        'URL', validators=[validators.Optional(),
                           validators.URL()])
    body = wtforms.TextAreaField('Comment',
                                 validators=[
                                     validators.DataRequired(),
                                     validators.Length(min=10, max=3000)
                                 ])
    entry_id = wtforms.HiddenField(validators=[validators.DataRequired()])

    def validate(self):
        if not super(CommentForm, self).validate():
            return False

        entry = Entry.query.filter((Entry.status == Entry.STATUS_PUBLIC)
                                   & (Entry.id == self.entry_id.data)).first()

        if not entry:
            return False

        return True
Beispiel #13
0
class AddRecord(FlaskForm):
    # hidden fields
    id_field = HiddenField()
    updated_at = HiddenField()

    # form entry fields
    name = StringField('Recipe name', [
        InputRequired(),
        Regexp(r'^[1-9A-Za-z\s\-\']+$', message="Invalid recipe name"),
        Length(min=3, max=100, message="Invalid recipe name length")
    ])
    style = SelectField('Choose the sock style', [InputRequired()],
                        choices=[('foo', 'Foo'), ('bar', 'Bar'),
                                 ('snafu', 'Snafu')])
    url = StringField('URL for original recipe',
                      validators=(validators.Optional(), validators.URL()))
    ingredients = StringField('Ingredients',
                              validators=(validators.Optional(), ))
    instructions = StringField('Instructions',
                               validators=(validators.Optional(), ))
    notes = StringField('notes', validators=(validators.Optional(), ))
    keywords = StringField('keywords', validators=(validators.Optional(), ))
    image = StringField('image', validators=(validators.Optional(), ))
    rating = IntegerField(
        'rating',
        validators=(validators.Optional(),
                    validators.NumberRange(
                        min=0,
                        max=10,
                        message="Rating must be an integer between 0 and 10")))

    submit = SubmitField('Add/Update Record')
Beispiel #14
0
class SettingsForm(Form):
    default_notice = TextAreaField('Default notice', [validators.required()])
    titles_enabled = BooleanField('Titles enabled', default=True)
    logo_url = StringField(
        'Logo URL',
        [validators.optional(), validators.URL()])
    domains = TextAreaField('Domains', [validators.optional()])
Beispiel #15
0
class AddDomainForm(Form):
    """Add domain"""
    name = TextField(_('Domain name'), [validators.Required(),
                    validators.Regexp(DOM_RE,
                    message=_('Invalid Domain name'))])
    site_url = TextField(_('Site url'),
                        [validators.Required(), validators.URL()])
    status = BooleanField(_('Enabled'), default=True)
    smtp_callout = BooleanField(_('Enable SMTP callouts'), default=False)
    ldap_callout = BooleanField(_('Enable LDAP callouts'), default=False)
    virus_checks = BooleanField(_('Enable Virus checks'), default=True)
    spam_checks = BooleanField(_('Enable SPAM checks'), default=True)
    spam_actions = SelectField(_('What to do with probable spam'),
                                choices=list(SPAM_ACTIONS))
    highspam_actions = SelectField(_('What to do with definite spam'),
                                    choices=list(SPAM_ACTIONS))
    low_score = DecimalField(_('Probable spam score'), places=1, default=0)
    high_score = DecimalField(_('Definite spam score'), places=1, default=0)
    message_size = TextField(_('Maximum Message Size'),
                            [validators.Regexp(MSGSIZE_RE,
                            message=_('Invalid message size, '
                                    'only B, K, M accepted'))],
                            default='0')
    delivery_mode = SelectField(_('Multi destination delivery mode'),
                                choices=DELIVERY_MODES)
    language = SelectField(_('Language'), choices=LANGUAGES, default='en')
    timezone = SelectField(_('Default Timezone'), choices=TIMEZONE_TUPLES)
    report_every = SelectField(_('Report frequency'),
                                choices=REPORT_FREQ, default='3')
    organizations = QuerySelectMultipleField(_('Organizations'),
                                    get_label='name',
                                    allow_blank=True)
Beispiel #16
0
class CreateForm(FlaskForm):
    title = fields.StringField('title', validators=[validators.DataRequired()])
    email = fields.StringField('email', validators=[validators.Email(), validators.Optional()])
    image_url = fields.StringField('image-url', validators=[validators.URL(), validators.Optional()])
    description = fields.StringField('description', widget=widgets.TextArea(), validators=[validators.DataRequired()])
    private = fields.BooleanField('privat', validators=[validators.Optional()])
    submit = fields.SubmitField(label='Create')
Beispiel #17
0
class RegisterForm(Form):
    youtube_url = StringField('',
                              [validators.DataRequired(),
                               validators.URL()])

    def reset(self):
        self.youtube_url.data = ''
Beispiel #18
0
class ProjectForm(FlaskForm):
    name = StringField('Project name', [validators.DataRequired()])
    homepage = StringField('Homepage',
                           [validators.DataRequired(),
                            validators.URL()])
    backend = SelectField('Backend', [validators.DataRequired()],
                          choices=[(item, item) for item in []])
    version_url = StringField('Version URL', [validators.optional()])
    version_prefix = StringField('Version prefix', [validators.optional()])
    version_scheme = SelectField('Version scheme', [validators.Required()],
                                 choices=[(item, item) for item in []])
    regex = StringField('Regex', [validators.optional()])
    insecure = BooleanField('Use insecure connection', [validators.optional()])

    distro = StringField('Distro (optional)', [validators.optional()])
    package_name = StringField('Package (optional)', [validators.optional()])
    check_release = BooleanField('Check latest release on submit',
                                 [validators.optional()])

    def __init__(self, *args, **kwargs):
        """ Calls the default constructor with the normal argument but
        uses the list of backends provided to fill the choices of the
        drop-down list.
        """
        super(ProjectForm, self).__init__(*args, **kwargs)
        if 'backends' in kwargs:
            self.backend.choices = [(backend, backend)
                                    for backend in sorted(kwargs['backends'])]
        if 'version_schemes' in kwargs:
            self.version_scheme.choices = [
                (version_scheme, version_scheme)
                for version_scheme in sorted(kwargs['version_schemes'])
            ]
Beispiel #19
0
class VulnerabilityResourcesForm(FlaskForm):
    link = StringField(
        "Link", validators=[validators.DataRequired(),
                            validators.URL()])

    class Meta:
        csrf = False
Beispiel #20
0
class TestPaymentRequestForm(Form):
    sid = sid_field
    token = StringField('Secret Token',
                        [validators.required(),
                         validators.Length(max=64)])
    amount = DecimalField('Amount', [validators.required()], places=2)
    pid = pid_field
    service = StringField(
        'Service URL',
        [validators.required(),
         validators.URL(require_tld=False)])
    disable_iframe = BooleanField(
        "Disable iframe and always open in a new window")
    use_cookies = BooleanField(
        "Save the request info in a cookie for callback validation and history"
    )
    skip_confirm = BooleanField(
        'Skip a confirm page and directly forward to the payment service')

    def validate_amount(self, field):
        field.data = field.data.quantize(Decimal('0.01'))

    def get_post_data(self, **extra):
        data = OrderedDict()
        for field in self:
            data[field.short_name] = str(field.data)
        data['checksum'] = get_checksum(data,
                                        ('pid', 'sid', 'amount', 'token'),
                                        token=False)
        data.update(extra)
        drop = set(data.keys()) - set(f.name for f in PaymentRequestForm())
        for key in drop:
            del data[key]
        return data
Beispiel #21
0
class MyForm(FlaskForm):
    name = TextField('姓名', [validators.Required('请输入姓名')])
    email = TextField(
        'Email',
        [validators.Required('请输入Email'),
         validators.email('请输入正确的Email地址')])
    ip = TextField('IP', [
        validators.Required('请输入IP地址'),
        validators.IPAddress(message='请输入正确的IP地址')
    ])
    password1 = PasswordField('密码', [validators.Required('请输入密码')])
    password2 = PasswordField('确认密码', [
        validators.Required('请确认密码'),
        validators.EqualTo('password1', '两次输入的密码不一致')
    ])

    value = TextField('电子邮件',
                      [validators.Email('Email格式不正确'),
                       validators.optional()])
    url = TextField(
        'Url', [validators.URL(message='Url格式不正确'),
                validators.optional()])

    regexpValue = TextField('正则表达式', [
        validators.Regexp('^[a-z]{3}-[1-9]{3}$', message='格式错误,正确格式:abc-123'),
        validators.Optional()
    ])
    submit = SubmitField('提交')
Beispiel #22
0
class Edit(Form):
    #uname = TextField("User Name", [validators.Required()])
    iam = TextAreaField("I am", [validators.Required()])
    ii = TextAreaField("I", [validators.Required()])
    trends = TextAreaField("Trends", [validators.Required()])
    python = BooleanField("Python", [validators.optional()])
    cpp = BooleanField("C++", [validators.optional()])
    java = BooleanField("Java", [validators.optional()])
    js = BooleanField("JavaScript", [validators.optional()])
    iot = BooleanField("InternetOfThings", [validators.optional()])
    ml = BooleanField("MachineLearning", [validators.optional()])
    vr = BooleanField("VirtualReality", [validators.optional()])
    ar = BooleanField("AugmentedReality", [validators.optional()])
    cc = BooleanField("CloudComputing", [validators.optional()])
    eh = BooleanField("InformationSecurity", [validators.optional()])
    proficiency = RadioField('Proficiency', [validators.Required()],
                             choices=[('b', 'Novice'), ('i', 'Intermediate'),
                                      ('e', 'Expert')])
    uname = HiddenField()
    p_name = TextAreaField("Project", [validators.Required()])
    des = TextAreaField("Description", [validators.Required()])
    github = TextAreaField(
        "GitHub",
        [validators.Required(),
         validators.URL("Please enter a valid URL!")])
    submit = SubmitField("Save")
Beispiel #23
0
class ShelterForm(Form):
    """Sets definitions and validators for Shelter forms"""
    name = StringField('name', [
        validators.InputRequired(),
        validators.Length(max=50,
                          message="Limit 50 characters, please try again.")
    ])
    address = StringField('address', [
        validators.InputRequired(),
        validators.Length(max=30,
                          message="Limit 30 characters, please try again.")
    ])
    city = StringField('city', [
        validators.InputRequired(),
        validators.Length(max=20,
                          message="Limit 20 characters, please try again.")
    ])
    state = StringField('state', [
        validators.InputRequired(),
        validators.Length(max=13,
                          message="Limit 13 characters, please try again.")
    ])
    zipCode = StringField('zipCode', [
        validators.InputRequired(),
        validators.Length(max=10, message="xxxxx or xxxxx-xxxx")
    ])
    website = StringField('website', [
        validators.InputRequired(),
        validators.URL(
            message="Not a valid URL (should contain http://www...)")
    ])
    maximum_capacity = IntegerField('maximum_capacity',
                                    [validators.InputRequired()])
Beispiel #24
0
class MonitoringForm(FlaskForm):
    name = StringField(__('Name'),
                       [validators.DataRequired(),
                        validators.length(max=255)])
    is_active = BooleanField(__('Active?'), default=False)
    is_public = BooleanField(__('Public?'), default=False)
    url = StringField(__('URL to check'), [
        validators.DataRequired(),
        validators.URL(),
        validators.length(max=255)
    ])
    http_method = SelectField(__('HTTP method to use'),
                              choices=[(method.value, method.name)
                                       for method in MonitoringHttpMethod],
                              default=MonitoringHttpMethod.GET.value)
    http_headers = TextAreaField(__('HTTP headers to send'))
    http_body_regex = StringField(__('HTTP response body Regex check'),
                                  [validators.length(max=255)])
    verify_https_cert = BooleanField(__('Verify HTTPS certificate?'),
                                     default=True)
    check_interval = IntegerField(__('Check interval (minutes)'), default=5)
    timeout = IntegerField(__('Connection timeout (seconds)'), default=10)
    email_recipients = TextAreaField(__('Recipients of the email alerts'))
    sms_recipients = TextAreaField(__('Recipients of the SMS alerts'))
    ignore_http_errors = BooleanField(__('Ignore HTTP errors?'), default=False)
Beispiel #25
0
class SettingForm(Form):
    username = TextField('Username')  # readonly
    email = TextField('Email')  # readonly
    nickname = TextField('Nickname', [
        validators.Optional(),
        validators.Length(min=2, message="昵称长度过短(2-12个字符)"),
        validators.Length(max=12, message="昵称长度过长(3-12个字符)"),
    ])
    signature = TextField('Signature', [
        validators.Optional(),
    ])
    location = TextField('Location', [
        validators.Optional(),
    ])
    website = TextField('Website', [
        validators.Optional(),
        validators.URL(message="请填写合法的URL地址(如:http://vvovo.com)")
    ])
    company = TextField('Company', [
        validators.Optional(),
    ])
    github = TextField('Github', [
        validators.Optional(),
    ])
    twitter = TextField('Twitter', [
        validators.Optional(),
    ])
    douban = TextField('Douban', [
        validators.Optional(),
    ])
    self_intro = TextField('Self_intro', [
        validators.Optional(),
    ])
Beispiel #26
0
class CreateBookmarksForm(FlaskForm):
    url = StringField(
        validators=[validators.required(),
                    validators.URL(require_tld=False)])
    title = StringField()
    tags = StringField()
    description = StringField()
Beispiel #27
0
class Addset(Form):
	country = StringField('Title', [validators.Length(min=1), validators.DataRequired()])
	face = StringField('Face', [validators.Length(min=1), validators.URL(), validators.DataRequired()])
	address = StringField('Address', [validators.Length(min=1), validators.DataRequired()])
	email = StringField('Email', [validators.Length(min=8), validators.Email(), validators.DataRequired()])
	telphone = StringField('Telphone', [validators.Length(min=11), validators.DataRequired()])
	chart = TextAreaField('Chart', [validators.DataRequired()])
Beispiel #28
0
 def validate(self):
     """Custom validation for this form."""
     if self.url.data:
         self.origin.validators = [validators.DataRequired()]
     if self.origin.data:
         self.url.validators = [validators.DataRequired(), validators.URL()]
     return super().validate()
Beispiel #29
0
class AccountCreate(FlaskForm):
    name = StringField(u"Name", [validators.DataRequired()])
    recurrence = SelectField(
        u"Recurrence",
        choices=[
            ("monthly", "Monthly"),
            ("other", "Other"),
        ],
    )
    pay_period = SelectField(
        default="-",
        choices=[
            ("", "-"),
            (10, "10th"),
            (25, "25th"),
        ],
    )
    status = BooleanField(
        u"Active",
        default=True,
        render_kw={"value": "1"},
    )
    outstanding = DecimalField(u"Outstanding", default=0)
    tag = StringField(u"Label")
    apr = DecimalField(u"APR", default=0)
    url = URLField(
        u"URL",
        [
            validators.URL(message="URL validation error."),
        ],
    )
Beispiel #30
0
class SettingForm(Form):
    username = TextField('Username')  # readonly
    email = TextField('Email')  # readonly
    nickname = TextField('Nickname', [
        validators.Optional(),
        validators.Length(min=2, message="Nickname too short (2-12chars)"),
        validators.Length(max=12, message="Nickname too long (3-12chars)"),
    ])
    signature = TextField('Signature', [
        validators.Optional(),
    ])
    location = TextField('Location', [
        validators.Optional(),
    ])
    website = TextField('Website', [
        validators.Optional(),
        validators.URL(
            message="Please enter valid URL (like:http://yizhang.me)")
    ])
    company = TextField('Company', [
        validators.Optional(),
    ])
    github = TextField('Github', [
        validators.Optional(),
    ])
    twitter = TextField('Twitter', [
        validators.Optional(),
    ])
    douban = TextField('Douban', [
        validators.Optional(),
    ])
    self_intro = TextField('Self_intro', [
        validators.Optional(),
    ])