class ProfileForm(Form): """ Edit user own information. """ name = TextField("Nickname", [validators.Required("Please enter your nickname.")]) email = EmailField("Email", [ validators.Length(min=6, max=35), validators.Required("Please enter your email.") ]) preferred_language = SelectField("Preferred language") password = PasswordField("Password") password_conf = PasswordField("Password Confirmation") submit = SubmitField("Save") def set_languages_choice(self): self.preferred_language.choices = [('en', 'en')] languages = [(language[0], language[0]) for language in \ db.session.query(distinct(Translation.language_code))] self.preferred_language.choices.extend(languages) def validate(self): validated = super(ProfileForm, self).validate() if self.password.data != self.password_conf.data: message = "Passwords aren't the same." self.password.errors.append(message) self.password_conf.errors.append(message) validated = False if self.name.data != User.make_valid_name(self.name.data): self.name.errors.append( 'This nickname has ' 'invalid characters. Please use letters, numbers, dots and' ' underscores only.') validated = False return validated
class ProfileForm(ProfileFormBase): multipart = True next = HiddenField() name = TextField(u'Name', [Required()]) email = EmailField(u'Email', [Required(), Email()]) #role_code = RadioField(_("Role")) #, [AnyOf([str(val) for val in USER_ROLE.keys()])], choices=[(str(val), label) for val, label in role_codes().items()]) # Don't use the same name as model because we are going to use populate_obj(). avatar_file = FileField(u"Avatar", [Optional()]) gender_code = RadioField(u"Gender", [AnyOf([str(val) for val in GENDER_TYPE.keys()])], choices=[(str(val), label) for val, label in GENDER_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()]) location = TextField(u'Location', [Length(max=64)]) bio = TextAreaField(u'Bio', [Length(max=1024)]) submit = SubmitField(u'Save') def get_role_codes(self, role_code): if role_code == 0: roles = USER_ROLE elif role_code == 3: roles = {k: v for k, v in USER_ROLE.items() if k in ('2', '3')} elif role_code == 1: roles = USER_ROLE[1:2] self.role_code = RadioField( _("Role"), [AnyOf([str(val) for val in roles.keys()])], choices=[(str(val), label) for val, label in roles.items()]) 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 LoginForm(Form): """The login form""" rememberMe = BooleanField('rememberMe') loginEmail = EmailField('loginEmail', [Email()]) loginPassword = PasswordField('loginPassword', [Length(8, 20)]) def __init__(self, *args, **kwargs): super(LoginForm, self).__init__(*args, **kwargs) def validate(self): if not super(LoginForm, self).validate(): self.errors[0] = 'login.failed' return False if self.loginEmail.data.strip() == '': return False if self.loginPassword.data.strip() == '': return False self.user = users.first(email=self.loginEmail.data) if self.user is None: self.errors[0] = 'login.userNotFound' return False if not verify_password(self.loginPassword.data, self.user.password): self.errors[0] = 'login.passwordIncorrect' return False if not self.user.is_active(): self.errors[0] = 'login.userDisabled' return False self.errors[0] = 'login.welcome' return True
class ProfileForm(Form): name = StringField('Name', validators=[DataRequired()]) email = EmailField('Email', validators=[DataRequired(), Email()]) current_password = PasswordField('Current Password') password = PasswordField('New Password') retype_password = PasswordField('Retype Password') def __init__(self, user, *args, **kwargs): self.user = user super(ProfileForm, self).__init__(*args, **kwargs) def validate_current_password(self, field): if not field.data and self.password.data: raise ValidationError('Please input current password') if field.data and not bcrypt.check_password_hash( self.user.password, field.data): raise ValidationError('Wrong password') def validate_password(self, field): if self.current_password.data and not field.data: raise ValidationError('This field is required.') if field.data and field.data != self.retype_password.data: raise ValidationError('Passwords must match')
class SignupForm(Form): next = HiddenField() email = EmailField(_('Email'), [Required(), Email()], description=_("What's your email address?")) password = PasswordField( _('Password'), [Required(), Length(PASSWORD_LEN_MIN, PASSWORD_LEN_MAX)], description=_('%s characters or more' % PASSWORD_LEN_MIN)) name = TextField( _('Choose your username'), [Required(), Length(USERNAME_LEN_MIN, USERNAME_LEN_MAX)], description=_("Don't worry. you can change it later.")) agree = BooleanField( u'Agree to the ' + Markup('<a target="blank" href="/terms">Terms of Service</a>'), [Required()]) submit = SubmitField(_('Sign up')) def validate_name(self, field): if User.query.filter_by(name=field.data).first() is not None: raise ValidationError(_('This username is already registered')) def validate_email(self, field): if User.query.filter_by(email=field.data).first() is not None: raise ValidationError(_('This email is already registered'))
class UpdatePasswordForm(Form): """The update form""" email = EmailField('email') currentPassword = PasswordField('currentPassword', [Required()]) newPassword = PasswordField( 'newPassword', [Required(), Length(8, 20), EqualTo('newPasswordConfirm')]) newPasswordConfirm = PasswordField('newPasswordConfirm') def __init__(self, *args, **kwargs): super(UpdatePasswordForm, self).__init__(*args, **kwargs) def validate(self): if not super(UpdatePasswordForm, self).validate(): return False if self.currentPassword.data.strip() == '': return False if self.newPassword.data.strip() == '': return False if self.newPasswordConfirm.data.strip() == '': return False self.user = users.first(email=self.email.data) if self.user is None: return False if not verify_password(self.currentPassword.data, self.user.password): return False return True
class SignupForm(Form): next = HiddenField() email = EmailField( u'Email', [DataRequired(), Email(), Length(EMAIL_LEN_MIN, EMAIL_LEN_MAX)], description=EMAIL_TIP) password = PasswordField( 'Password', [DataRequired(), Length(PASSWORD_LEN_MIN, PASSWORD_LEN_MAX)], description=PASSWORD_TIP) name = StringField( 'Choose your username', [DataRequired(), Length(USERNAME_LEN_MIN, USERNAME_LEN_MAX)], description=USERNAME_TIP) agree = BooleanField(AGREE_TIP, [DataRequired()]) submit = SubmitField('Sign up', render_kw={"class": "btn btn-success btn-block"}) def validate_name(self, field): if User.query.filter_by(name=field.data).first() is not None: raise ValidationError(u'This username is taken') def validate_email(self, field): if User.query.filter_by(email=field.data).first() is not None: raise ValidationError(u'This email is taken')
class ProfileCreateForm(Form): multipart = True next = HiddenField() email = EmailField(u'Email', [Required(), Email()]) name = TextField(u'Name', [Required(), Length(max=100)]) password = PasswordField(u'Password', [Required(), Length(max=100)]) password1 = PasswordField(u'Retype-password', [Required(), Length(max=100)]) # Don't use the same name as model because we are going to use populate_obj(). avatar_file = FileField(u"Avatar", [Optional()]) gender_code = RadioField(u"Gender", [AnyOf([str(val) for val in GENDER_TYPE.keys()])], choices=[(str(val), label) for val, label in GENDER_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()]) location = TextField(u'Location', [Length(max=64)]) bio = TextAreaField(u'Bio', [Length(max=1024)]) submit = SubmitField(u'Save') 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)) def validate_password(self, field): if field.data != self.password1.data: raise ValidationError("The Passwords Don't Match")
class ProfileForm(Form): multipart = True next = HiddenField() email = EmailField(_('Email'), [Required(), Email()]) # Don't use the same name as model because we are going to use populate_obj(). avatar_file = FileField(_("Avatar"), [Optional()]) receive_station_notifications = BooleanField( _('Receive Program Notifications')) gender_code = RadioField(_("Gender"), [AnyOf([str(val) for val in GENDER_TYPE.keys()])], choices=[(str(val), label) for val, label in GENDER_TYPE.items()]) age = IntegerField(_('Age'), [Optional(), NumberRange(AGE_MIN, AGE_MAX)]) phone = TelField(_('Phone'), [Length(max=64)]) url = URLField(_('URL'), [Optional(), URL()]) location = TextField(_('Location'), [Length(max=64)]) bio = TextAreaField(_('Bio'), [Length(max=1024)]) submit = SubmitField(_('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 CreateUserForm(Form): """ Create a user (for the administrator). """ name = TextField("Name", [validators.Required("Please enter your name.")]) email = EmailField("Email", [ validators.Length(min=6, max=35), validators.Required("Please enter an email.") ]) is_admin = BooleanField("Admin") password = PasswordField("Password", [ validators.Length(min=6, max=100), validators.Required("Please enter a password.") ]) submit = SubmitField("Save") def validate(self): validated = super(CreateUserForm, self).validate() if self.name.data != User.make_valid_name(self.name.data): self.name.errors.append( 'This name has invalid characters. ' 'Please use letters, numbers, dots and underscores only.') validated = False user = User.query.filter(User.email == self.email.data).first() if user: self.email.errors.append('This email is already used.') validated = False return validated
class RecoverPasswordForm(Form): email = EmailField( u'Your email', [DataRequired(), Email(), Length(EMAIL_LEN_MIN, EMAIL_LEN_MAX)]) submit = SubmitField('Send instructions')
class EditProfileForm(Form): multipart = True next = HiddenField() networks = QuerySelectMultipleField( query_factory=lambda: current_user.networks) 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()]) gender_code = RadioField(u"Gender", [AnyOf([str(val) for val in GENDER_TYPE.keys()])], choices=[(str(val), label) for val, label in GENDER_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()]) location = TextField(u'Location', [Length(max=64)]) bio = TextAreaField(u'Bio', [Length(max=1024)]) submit = SubmitField(u'Save') def set_networks(self, networks): #self.networks.choices = networks pass 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 RegisterForm(FlaskForm): name = StringField( label='Name', validators=[validators.DataRequired("Enter your first name")]) family = StringField( label='Family', validators=[validators.DataRequired("Enter your family name")]) email = EmailField( label='Email', validators=[ validators.DataRequired("Enter your email address to sign up"), validators.Email( "Should be email address like: [email protected]") ]) password = PasswordField(label='Password', validators=[ validators.DataRequired(), validators.Length( min=6, max=20, message='Should be more than 6 character') ]) confirm_password = PasswordField( label='Confirm password', validators=[ validators.DataRequired( "Enter your password again to confirm that password") ])
class RegisterFrom(Form): nickname = TextField('nickname', validators=[DataRequired()]) email = EmailField('email', validators=[DataRequired()]) password = PasswordField('password', validators=[DataRequired()]) conform = PasswordField('conform', validators=[DataRequired()]) def validate_nickname(self, field): nickname = field.data.strip() if len(nickname) < 3 or len(nickname) > 20: raise ValidationError('nickname must be 3 letter at least') elif not re.search(r'^\w+$', nickname): raise ValidationError( 'User names can contain only alphanumeric characters and underscores.' ) else: u = User.query.filter_by(nickname=nickname).first() if u: raise ValidationError('The nickname already exists') def validate_email(self, field): email = field.data.strip() email = User.query.filter_by(email=email).first() if email: raise ValidationError('The email already exists') def validate_password(self, field): password = field.data.strip() if len(password) < 6: raise ValidationError('password must be 3 letter at least') def validate_conform(self, field): conform = field.data.strip() if self.data['password'] != conform: raise ValidationError('the password and conform are different')
class MessageForm(Form): digest = TextField( "Pyzor digest*", validators=[length(40, 40, "Invalid Digest"), required()]) message = FileField('Raw message*') name = TextField('Name') email = EmailField('Email') comment = TextAreaField('Other details') recaptcha = RecaptchaField() submit = SubmitField() def __init___(self, *args, **kwargs): super(MessageForm, self).__init__(*args, **kwargs) self.msg = None self.raw_message = None self.logger = app.logger def validate(self): if not Form.validate(self): return False self.raw_message = flask.request.files["message"].stream.read() try: digest = pyzor.digest.DataDigester( email.message_from_string(self.raw_message)).value if digest != self.digest.data: self.add_error("digest", "Digest does not match message.") return False client = pyzor.client.Client(timeout=20) try: response = client.check(digest) except pyzor.TimeoutError as e: self.add_error("message", "Temporary error please try again.") self.logger.warn("Timeout: %s", e) return False except pyzor.CommError as e: self.add_error("message", "Temporary error please try again.") self.logger.warn("Error: %s", e) return False if not response.is_ok(): self.add_error("message", "Temporary error please try again.") self.logger.warn("Invalid response from server: %s", response) return False if int(response["Count"]) == 0: self.add_error("message", "Message not reported as spam.") return False if int(response["WL-Count"]) != 0: self.add_error("message", "Message is already whitelisted.") return False except AssertionError: self.add_error("message", "Invalid message.") return False return True def add_error(self, field, message): try: self.errors[field].append(message) except (KeyError, TypeError): self.errors[field] = [message]
class RegisterForm(FlaskForm): email = EmailField('Почта', validators=[DataRequired()]) password = PasswordField('Пароль', validators=[DataRequired()]) password_again = PasswordField('Повторите пароль', validators=[DataRequired()]) name = StringField('Имя пользователя', validators=[DataRequired()]) about = TextAreaField("Немного о себе") submit = SubmitField('Войти')
class CustomerForm(Form): first_name = StringField('firstName', validators=[DataRequired()]) last_name = StringField('lastName', validators=[DataRequired()]) company = StringField('company', validators=[DataRequired()]) email = EmailField('email', validators=[DataRequired()]) phone_number = StringField('phone_number', validators=[ DataRequired() ]) # just making this a string field rather than using PhoneNumberField
class UserForm(Form): next = HiddenField() email = EmailField(_('Email'), [Required(), Email()]) name = TextField( _('Username'), [Required(), Length(USERNAME_LEN_MIN, USERNAME_LEN_MAX)]) phone = PhoneNumberField(_('Phone Number'), description="Optional") submit = SubmitField(_('Save'))
class RegisterForm(FlaskForm): email = EmailField('Почта', validators=[DataRequired()]) password = PasswordField('Пароль', validators=[DataRequired()]) password_again = PasswordField('Повторите пароль', validators=[DataRequired()]) address = StringField('Адрес пользователя', validators=[DataRequired()]) chatname = StringField('Имя в чате', validators=[DataRequired()]) submit = SubmitField('Зарегистрироваться')
class RegisterForm(FlaskForm): email = EmailField('Почта', validators=[DataRequired()]) password = PasswordField('Пароль', validators=[DataRequired()]) password_again = PasswordField('Повторите пароль', validators=[DataRequired()]) name = StringField('Имя пользователя', validators=[DataRequired()]) surname = StringField('Фамилия пользователя', validators=[DataRequired()]) submit = SubmitField('Войти')
class ContactForm(Form): name = StringField('Full Name', validators=[DataRequired()]) subject = StringField('Subject', validators=[DataRequired()]) email = EmailField('Email Address', validators=[DataRequired(), Email()]) phone = StringField('Phone Number', validators=[DataRequired()]) body = StringField('Message', validators=[DataRequired()], widget=widgets.TextArea()) user_id = IntegerField('User', validators=[Optional()])
class RegisterForm(Form): """ The register form. """ username = TextField('Username', [validators.Required(), validators.Length(min=1, max=80), username_check]) password = PasswordField('Password', [validators.Required()]) password_repeat = PasswordField('Repeat password', [validators.EqualTo('password', message='Passwords must match.')]) email = EmailField('Email', [validators.Required(), email_check]) recaptcha = RecaptchaField()
class SignupForm(Form): full_name = StringField('Your Full Name', validators=[DataRequired()]) email = EmailField('Email Address', validators=[DataRequired(), Email()]) password = PasswordField('Password', validators=[DataRequired()]) verify_password = PasswordField( 'Verify Password', validators=[DataRequired(), EqualTo('password')]) merchant_request = BooleanField('I also want to be a merchant', validators=[Optional()]) terms = BooleanField('Terms and conditions', validators=[DataRequired()])
class SignupForm(Form): email = EmailField('用户邮箱', validators=[InputRequired()]) password = PasswordField('用户密码', validators=[InputRequired()]) #用正则表达式确定“空格”、“数字”、“字母”、“汉字”,排除其他元素 username = StringField('用户名', validators=[ InputRequired(), Regexp("[\s0-9a-zA-Z\u4e00-\u9fff]", 0, "Username Data Error") ])
class ContactForm(Form): ''' Form class for WTForms usage. ''' name = StringField('name', validators=[DataRequired(), Length(min=3)]) phone = TelField('phone', validators=[DataRequired(), Regexp("^[0-9]{10}$")]) email = EmailField('email', validators=[DataRequired()]) message = TextAreaField('message')
class ComplaintForm(Form): name = StringField('Full Name', validators=[DataRequired()]) email = EmailField('Email Address', validators=[DataRequired(), Email()]) phone = StringField('Phone Number', validators=[Optional()]) reason = StringField('Reason', validators=[DataRequired()], widget=widgets.TextArea()) captcha = RecaptchaField(public_key=app.config.get("RECAPTCHA_PUB_KEY"), private_key=app.config.get("RECAPTCHA_PRIV_KEY"), secure=True)
class MessageForm(Form): user_id = IntegerField('User', validators=[Optional()]) product_id = IntegerField('Product', validators=[DataRequired()]) name = StringField("Name", validators=[DataRequired()]) email = EmailField("Email", validators=[DataRequired(), Email()]) phone = StringField("Phone", validators=[DataRequired()]) subject = StringField("Subject", validators=[Optional()]) body = StringField("Body", validators=[Optional()], widget=widgets.TextArea()) # for plain text messages
class SignupForm(Form): # phone = StringField('Phone', validators=[DataRequired()]) email = EmailField('Email', validators=[DataRequired(), Email()]) full_name = StringField('Full Name', validators=[DataRequired()]) password = PasswordField('Password', validators=[DataRequired()]) verify_password = PasswordField( 'Verify Password', validators=[DataRequired(), EqualTo('password')], description="Verify your password") terms = BooleanField('Terms and conditions', validators=[DataRequired()])
class CustomerForm(Form): company = StringField('company', validators=[DataRequired()]) email = EmailField('email', validators=[DataRequired()]) first_name = StringField('first_name', validators=[DataRequired()]) last_name = StringField('last_name', validators=[DataRequired()]) phone = StringField('phone', validators=[DataRequired()]) country = StringField('country', validators=[DataRequired()]) state = StringField('state', validators=[DataRequired()]) city = StringField('city', validators=[DataRequired()]) street_address = StringField('street_address', validators=[DataRequired()]) zip_code = StringField('zip_code', validators=[DataRequired()])
class User(Form): username = TextField("Nom d'utilisateur", [validators.Length(min=6, max=250)]) email = EmailField("Adresse mail", [validators.DataRequired(), validators.Email(), validators.Length(max=250)]) password = PasswordField('Mot de passe', [ validators.Required(), validators.EqualTo('confirm', message='Les mots de passe doivent être identiques'), validators.Length(min=8) ]) confirm = PasswordField('Mot de passe (à nouveau)') submit = SubmitField("Envoyer")