class SignupForm(Form): next = HiddenField() name = TextField(_('Username'), [required()]) password = PasswordField( _('Password'), [required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX)]) password_again = PasswordField(_('Password again'), [ required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX), equal_to('password') ]) email = TextField( _('Email address'), [required(), email(message=_('A valid email address is required'))]) invitation_code = TextField( _('Invitation Code'), [required(message=_('Please fill in the invitation code!'))]) submit = SubmitField(_('Signup')) def validate_name(self, field): if g.db.users.find_one({"_id": field.data}) is not None: raise ValidationError, _('This username is taken') def validate_email(self, field): if g.db.users.find_one({"email": field.data}) is not None: raise ValidationError, _('This email is taken') def validate_invitation_code(self, field): if g.db.invitates.find_one({ "code": field.data, "used": 'False' }) is None: raise ValidationError, _('Invalid code')
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 IDCForm(Form): name = TextField(u'名称', validators=[ Required(message=u"名称不能为空"), length(max=20, message=u"名称最大长度20字节") ]) chinese_name = TextField( u'中文名称', validators=[length(max=20, message=u"中文名最大长度20字节")])
class AccountForm(Form): next = HiddenField() password = PasswordField(_('Password'), [required()]) new_password = PasswordField( _('New password'), [required(), length(min=6, max=16)]) password_again = PasswordField( _('Password again'), [required(), length(min=6, max=16), equal_to('new_password')]) submit = SubmitField(_('Save')) def validate_password(form, field): user = User.query.filter_by(name=current_user.name).first() if not user.check_password(field.data): raise ValidationError(_("Password is wrong."))
class LoginForm(Form): next = HiddenField() remember = BooleanField(_('Remember me')) login = TextField(_('Username or email address'), [required()]) password = PasswordField(_('Password'), [required(), length(min=6, max=16)]) submit = SubmitField(_('Login'))
class SmodelForm(Form): name = TextField(u'型号', validators=[required(), length(max=20)]) stype_id = SelectField(u'所属栏目', coerce=int, validators=[required()]) approver_id = SelectField(u'审核流程', coerce=int, validators=[required()]) cpucores = TextField( u'CPU核数', validators=[required(), regexp(u'^[0-9]+$'), length(max=11)]) memsize = TextField( u'内存/G', validators=[required(), regexp(u'^[0-9]+$'), length(max=11)]) disk = TextField(u'磁盘', validators=[required(), length(max=128)]) if_v = SelectField(u'机器类型', default='0', choices=[('1', u'虚拟机'), ('0', u'物理机')], validators=[required()]) template = TextAreaField(u'模板', validators=[])
class UProfileForm(Form): name = TextField(_('Username'), [required()]) password = PasswordField( _('Password'), [required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX)]) password_again = PasswordField(_('Password again'), [ required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX), equal_to('password') ]) email = TextField( _('Email address'), [required(), email(message=_('A valid email address is required'))]) submit = SubmitField(_('Commit')) def validate_email(self, field): if g.db.users.find_one({"email": field.data}) is not None: raise ValidationError, _('This email is taken')
class CommentForm(Form): author_name = TextField(u'Name', validators=[required(message=u"Need an name"), length(max=50)]) author_email = TextField(u"Email", validators=[ required(message=u"Need an email address"), email(message=u"Need a valid email address")]) author_url = TextField(u"Url") content = TextAreaField(u"Content") post_id = TextField() #recaptcha = RecaptchaField(u"Copy the words appearing below") submit = SubmitField(u"Save")
class SignupForm(Form): next = HiddenField() name = TextField(_('Username'), [required()]) password = PasswordField(_('Password'), [required(), length(min=6, max=16)]) password_again = PasswordField( _('Password again'), [required(), length(min=6, max=16), equal_to('password')]) email = TextField( _('Email address'), [required(), email(message=_('A valid email address is required.'))]) submit = SubmitField(_('Sign up')) def validate_name(self, field): if User.query.filter_by(name=field.data).first() is not None: raise ValidationError, gettext('This username is taken') def validate_email(self, field): if User.query.filter_by(email=field.data).first() is not None: raise ValidationError, gettext('This email is taken')
class ReauthForm(Form): next = HiddenField() password = PasswordField( _('Password'), [required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX)]) submit = SubmitField(_('Reauthenticate'))
class TestForm(TestBaseForm): name = TextField(validators=[length(min=3, max=8)])
class PostForm(Form): title = TextField(default='', validators=[length(min=4, max=50, message=u'标题太短或者太长')]) content = TextField()
class UserForm(Form): username = TextField(u'用户名', validators=[]) chinese_name = TextField(u'中文名', validators=[]) email = TextField(u'邮箱', validators=[required(), length(max=32)]) ssh_pubkey = TextAreaField(u'SSH公钥', validators=[])
class StypeForm(Form): name = TextField(u'栏目名称', validators=[Required(), length(max=20)]) if_t = SelectField(u'是否为测试机', default='0', choices=[('1', u'是'), ('0', u'否')], validators=[Required()])
class SignupForm(Form): next = HiddenField() first_name = TextField('First name', [required('Your first name is required')]) last_name = TextField('Last name', [required('Your last name is required')]) username = TextField( _('Username'), [required('Please enter a valid subdomain for your account')]) business_name = TextField(_('Business name'), [required('Please supply a business name')]) business_type = SelectField( 'Company type', [required('Please supply the type of company')]) password = PasswordField( _('Password'), [required('Please enter a password'), length(min=6, max=16)]) password_again = PasswordField(_('Password again'), [ required('Please confirm your password'), length(min=6, max=16), equal_to('password') ]) email_address = TextField(_('Email address'), [ required('Your email address is required'), email(message=_('A valid email address is required')) ]) country_id = SelectField('Country', [required('Please select a country')]) plan_id = SelectField('Plan', [required('Please select a plan')]) def __init__(self, formdata=None, obj=None, prefix='', **kwargs): super(SignupForm, self).__init__(formdata, obj, prefix, **kwargs) self.business_type.choices = self.get_company_type_options() self.country_id.choices = self.get_country_options() self.plan_id.choices = self.get_plan_options() def get_plan_options(self): """Get a list of plans""" choices = [] for plan in Plan.query.all(): choices.append((str(plan.id), plan.name)) return choices def get_country_options(self): """Get options for country list""" choices = [] countries = Country.query.all() for country in countries: choices.append((country.iso, country.printable_name)) return choices def get_company_type_options(self): choices = [] types = CompanyType.query.all() for t in types: choices.append((str(t.id), t.name)) return choices def save(self): """Create a new user account""" user = User() user.username = self.username.data user.first_name = self.first_name.data user.last_name = self.last_name.data user.email_address = self.email_address.data user.password = self.password.data db.session.add(user) db.session.commit() company = Company() company.user_id = user.id company.name = self.business_name.data company.company_type_id = self.business_type.data company.country = self.country_id.data db.session.add(company) db.session.commit() subscription = Subscription() subscription.user_id = user.id subscription.plan_id = self.plan_id.data subscription.start_date = datetime.now() subscription.end_date = None db.session.add(subscription) db.session.commit() return user, subscription def validate_username(self, field): if User.query.filter_by(username=field.data).first() is not None: raise ValidationError, gettext('This subdomain is already taken') def validate_email_address(self, field): if User.query.filter_by(email_address=field.data).first() is not None: raise ValidationError, gettext('This email address is taken')
class ApproverForm(Form): name = TextField(u'名称', validators=[Required(), length(max=32)]) value = TextField(u'审核流程', validators=[length(max=128)])