class CategoryForm(Form): id = TextField(validators=[required(message=u'必填')]) obj = TextField(u'分组', [required(message=u'必填')]) name = TextField(u'名称', [required(message=u'必填')]) alias = TextField(u'显示名', [required(message=u'必填')]) is_valid = SelectField(u'有效性', [required(message=u'必填')], choices=[(u'0', u'无效'), (u'1', u'有效')])
class ModuleForm(Form): name = TextField(u'名称', [required(message=u'必填')]) alias = TextField(u'显示名', [required(message=u'必填')]) period = IntegerField(u'周期(min)') retries = IntegerField(u'重试次数(次)') timeout = IntegerField(u'超时(s)') remark = TextAreaField(u'备注')
class NodeSearchForm(FormPro): keyword = TextField() name = TextField(u'IP 地址') area = AreaSelectField(u'所属区域') category_id = SelectFieldPro( u'节点类型', choices=lambda: [('', u'请选择节点类型')] + [ (unicode(r.id), r.alias) for r in Category.query.filter( Category.obj == "node").filter(Category.is_valid == 1) ]) vendor_id = SelectFieldPro( u'生产厂商', choices=lambda: [('', u'请选择生产厂商')] + [(unicode(r.id), r.alias) for r in Vendor.query]) model_id = SelectFieldPro( u'设备型号', choices=lambda: [('', u'请选择设备型号')] + [(unicode(r.id), r.alias) for r in Model.query]) status = SelectFieldPro( u'状态', choices=lambda: [('', u'请选择状态')] + NODE_STATUS_DICT.items()) class Meta(): attrs = Attrs( label={ 'style': 'width:80px;text-align: right;padding-bottom: 10px;' }, field={'style': 'padding-left: 10px;padding-bottom: 10px;'}) list_display = ('area', 'category_id', 'vendor_id', 'model_id')
class TalkForm(Form): title = TextField(u'Název', validators=[Required()]) description = TextField(u'Popisek', validators=[Required()], widget=TextArea()) purpose = TextField(u'Pro koho je určena', validators=[Required()], widget=TextArea())
class PermissionForm(Form): endpoint = TextField(u'Endpoint') module_text = TextField(u'模块显示名') name = TextField(u'子模块显示名') operation = TextField(u'操作名') default_permission = SelectField(u'有效性', [required(message=u'必填')], choices=[(u'0', u'无权限'), (u'1', u'有权限')]) next = HiddenField()
class TownNewForm(FormPro): parent_id = SelectFieldPro(u'所属地市', validators=[required(message=u'必填')], choices=lambda: area_choices(1, u'请选择地市')) name = TextField(u'区县名称', validators=[required(message=u'必填')]) alias = TextField(u'区县别名', validators=[required(message=u'必填')]) longitude = DecimalFieldPro(u'经度') latitude = DecimalFieldPro(u'纬度') remark = TextAreaField(u'备注')
class MiboidForm(Form): mib = TextField(u'mib', [required(message=u'必填')]) grp = TextField(u'分组', [required(message=u'必填')]) name = TextField(u'名称', [required(message=u'必填')]) alias = TextField(u'显示名', [required(message=u'必填')]) oid = TextField(u'oid') is_valid = SelectField(u'有效性', [required(message=u'必填')], choices=[(u'0', u'无效'), (u'1', u'有效')]) remark = TextAreaField(u'备注')
class BranchNewForm(FormPro): cityid = SelectFieldPro(u'所属地市', choices=lambda: area_choices(1, u'请选择地市')) parent_id = SelectFieldPro(u'所属区县', validators=[required(message=u'必填')], choices=lambda: area_choices(2, u'请选择区县')) name = TextField(u'分局名称', validators=[required(message=u'必填')]) alias = TextField(u'分局别名', validators=[required(message=u'必填')]) longitude = DecimalFieldPro(u'经度') latitude = DecimalFieldPro(u'纬度') remark = TextAreaField(u'备注')
class SysoidForm(Form): sysoid = TextField(u'SysOid', [required(message=u'必填')]) model = QuerySelectField(u'设备型号', get_label=u'alias', query_factory=lambda: Model.query) disco = TextField(u'发现模块') mib = QuerySelectField( u'Mib文件', get_pk=lambda x: x, get_label=lambda x: x, query_factory=lambda: [m[0] for m in db.session.query(Miboid.mib).distinct().all()]) remark = TextAreaField(u'备注')
class ModelForm(Form): category = QuerySelectField( u'类别', get_label=u'alias', query_factory=lambda: Category.query.filter_by(obj='node')) name = TextField(u'名称', [required(message=u'必填')]) alias = TextField(u'显示名', [required(message=u'必填')]) sysoid = TextField(u'Sysoid') vendor = QuerySelectField(u'厂商', get_label=u'alias', query_factory=lambda: Vendor.query) is_valid = SelectField(u'有效性', [required(message=u'必填')], choices=[(u'0', u'无效'), (u'1', u'有效')]) remark = TextAreaField(u'备注')
class CpeNewForm(FormPro): ctrl_id = SelectFieldPro(u'所属EOC', validators=[required(message=u'必填')], choices=lambda: eoc_choices(3, u'请选择EOC')) area_id = SelectFieldPro(u'接入点', validators=[required(message=u'必填')], choices=lambda: area_choices(4, u'请选择接入点')) name = TextField(u'CPE名称', validators=[required(message=u'必填')]) alias = TextField(u'CPE别名', validators=[required(message=u'必填')]) mac = TextField(u'MAC地址', validators=[required(message=u'必填')]) vendor = QuerySelectField( u'CPE厂商', query_factory=lambda: Vendor.query.filter(Vendor.is_valid == 1), allow_blank=True, blank_text=u'请选择厂商', get_label='alias') model = QuerySelectField( u'CPE型号', query_factory=lambda: Model.query.filter(Model.is_valid == 1).filter( Model.category_id == 51), allow_blank=True, blank_text=u'请选择型号', get_label='alias') esn = TextField(u'ESN') owner = TextField(u'用户名') card_id = TextField(u'身份证号') contact_tel = TextField(u'联系电话') location = TextField(u'安装地址') install_time = DateFieldPro(u'安装时间') remark = TextAreaField(u'备注信息')
class MonitorForm(Form): category = TextField(u'分类') vendor = TextField(u'供应商') sysoid = TextField(u'Sysoid') match = TextField(u'匹配规则') module = QuerySelectField(u'采集模块', get_label=u'alias', query_factory=lambda: Module.query) mib = QuerySelectField( u'Mib文件', get_pk=lambda x: x, get_label=lambda x: x, query_factory=lambda: [m[0] for m in db.session.query(Miboid.mib).distinct().all()]) remark = TextAreaField(u'备注')
class AlarmFilterForm(Form): keyword = TextField() alarm_severity = QuerySelectField( u'告警级别', query_factory=lambda: AlarmSeverity.query, get_label="alias", allow_blank=True, blank_text=u'全部级别') alarm_class = QuerySelectField(u'告警类型:', query_factory=lambda: AlarmClass.query, get_label='alias', allow_blank=True, blank_text=u'全部告警') start_date = DateTimeField(u'开始时间:', format='%Y-%m-%d') end_date = DateTimeField(u'结束时间:', format='%Y-%m-%d') keyword = TextField()
class RegistrationForm(Form): username = TextField(u'Введите логин', [validators.Length(min=4, max=25)]) password = PasswordField(u'Введите пароль', [ validators.Required(), validators.EqualTo('confirm', message=u'Пароли должны совпадать') ]) confirm = PasswordField(u'Повторите Ваш пароль еще раз')
class LoginForm(Form): def __init__(self, *args, **kwargs): Form.__init__(self, *args, **kwargs) self.user = None login = TextField(u'Login', validators=[ validators.required(), ]) password = PasswordField(u'Password', validators=[ validators.required(), ]) remember = BooleanField(u'Remember me') submit = SubmitField(u'Validate') def validate(self): rv = Form.validate(self) if not rv: return False pseudo = self.login.data password = self.password.data try: user_exists(self, self.login) user = check_password(pseudo, password) if user is None: self.password.errors.append('Wrong password.') return False except ValidationError: self.login.errors.append('Unknow user.') return False self.user = user return True
class PasswordReminder(Form): id = TextField(_("Project identifier"), validators=[Required()]) submit = SubmitField(_("Send me the code by email")) def validate_id(form, field): if not Project.query.get(field.data): raise ValidationError(_("This project does not exists"))
class MemberForm(Form): name = TextField(_("Name"), validators=[Required()]) weight = CommaDecimalField(_("Weight"), default=1) submit = SubmitField(_("Add")) def __init__(self, project, edit=False, *args, **kwargs): super(MemberForm, self).__init__(*args, **kwargs) self.project = project self.edit = edit def validate_name(form, field): if field.data == form.name.default: raise ValidationError(_("User name incorrect")) if (not form.edit and Person.query.filter( Person.name == field.data, Person.project == form.project, Person.activated == True).all()): raise ValidationError(_("This project already have this member")) def save(self, project, person): # if the user is already bound to the project, just reactivate him person.name = self.name.data person.project = project person.weight = self.weight.data return person def fill(self, member): self.name.data = member.name self.weight.data = member.weight
class PerfFilterForm(Form): keyword = TextField() sampletime = SelectField(u'时间', choices=DATES, default='today') intervals = SelectMultipleField(u'时段', choices=pull_intervals('__None'), default=['__None']) vendors = QuerySelectMultipleFieldFix(u'厂商', query_factory=lambda: Vendor.query, get_label='alias', allow_blank=True, blank_text=u'全部厂商') models = QuerySelectMultipleFieldFix(u'型号', query_factory=lambda: Model.query, get_label='alias') def refresh_choices(self, args): self.intervals.choices = pull_intervals(args.get('sampletime')) self.models.query_factory = model_choices(args.get('vendors')) def filter(self, model): query = model.query # 'today' ... sampletime = self.sampletime.data # [] or ['__None'] or ['1', '2'] or ['__None', '1', '2'] ... intervals = self.intervals.data # the same as intervals vendor_ids = [v.id for v in self.vendors.data] if self.vendors.data else [] # the same as intervals model_ids = [m.id for m in self.models.data] category_ids = [c.id for c in self.categories.data] if \ hasattr(self, 'categories') and self.categories.data else [] # print '========================================' # print 'self.sampletime.data::', sampletime # print 'self.intervals.data::', intervals # print 'self.vendors.data::', vendor_ids # print 'self.models.data::', model_ids # print 'self.categories.data::', category_ids # print '========================================' # Filter Datetime query = sampletime_filter(model, query, sampletime, intervals) # Filter Category if category_ids and '__None' not in category_ids: query = query.filter( model.node.has(Node.category_id.in_(category_ids))) # Filter Model # *Except*: (vendor_ids is empty has '__None') AND (model_ids is empty OR has '__None') if (vendor_ids and '__None' not in vendor_ids) or \ (model_ids and '__None' not in model_ids): if not model_ids or '__None' in model_ids: query = query.filter( model.node.has(Node.vendor_id.in_(vendor_ids))) # model_ids = [m.id for m in Model.query.filter(Model.vendor_id.in_(vendor_ids))] else: query = query.filter( model.node.has(Node.model_id.in_(model_ids))) return query
class ResetPasswordForm(Form): username = TextField(u'用户名') newpasswd = PasswordField(u'新密码', [ v.Required(message=u'必填'), v.Length(min=6, max=20), v.EqualTo('confirm', message=u'确认密码不匹配') ]) confirm = PasswordField(u"确认密码", [v.Required(message=u'必填')])
class RouterNewForm(FormPro): cityid = SelectFieldPro(u'所属地市', choices=lambda: area_choices(1, u'请选择地市')) town = SelectFieldPro(u'', choices=lambda: area_choices(2, u'请选择区县')) area_id = SelectFieldPro(u'所属区域', validators=[required(message=u'必填')], choices=lambda: area_choices(4, u'请选择接入点')) name = TextField(u'路由器名称', validators=[required(message=u'必填')]) alias = TextField(u'路由器别名', validators=[required(message=u'必填')]) addr = TextField(u'IP 地址', validators=[ required(message=u'必填'), IPAddress(message=u'IP地址格式不正确'), NoneOf(['0.0.0.0', '255.255.255.255'], message=u'IP地址格式不正确') ]) snmp_comm = TextField(u'读团体名', validators=[required(message=u'必填')]) snmp_wcomm = TextField(u'写团体名', validators=[required(message=u'必填')]) snmp_ver = RadioField(u'SNMP版本', default=SNMP_VER_DICT.keys()[0], validators=[required(message=u'必填')], choices=[(value, label) for value, label in SNMP_VER_DICT.items()]) mask = TextField(u'子网掩码') location = TextField(u'位置') remark = TextAreaField(u'备注信息')
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 BookmarkForm(AjaxForm): id = HiddenField(u'Id') link = URLField(u'Link', validators=[ validators.required(), validators.url(), ]) title = TextField(u'Title', validators=[ validators.required(), ]) description = TextAreaField(u'Description') tags = TextField(u'Tags') submit = SubmitField(u'Add') edit = SubmitField(u'Edit') def __init__(self, formdata=None, *args, **kwargs): self.id.data = kwargs.get('id', None) super(BookmarkForm, self).__init__(formdata, *args, **kwargs) def validate(self): rv = Form.validate(self) if not rv: return False _id = self.id.data link = self.link.data title = self.title.data description = self.description.data tags = map(lambda x: {'name': x.strip()}, self.tags.data.split(',')) if _id is None or _id == '' or int(_id) < 1: self.bookmark = ItemBookmark(tags=tags, link=link, title=title, description=description) else: self.bookmark = get_bookmark_by_id(_id) if self.bookmark is None: abort(404) self.bookmark.title = title self.bookmark.description = description self.bookmark.set_tags(tags) return True
class RegisterForm(Form, EmailFormMixin, PasswordFormMixin, PasswordConfirmFormMixin): " The default register form. " username = TextField(_('UserName'), [Required(message=_('Required'))]) # submit = SubmitField(_("Register")) def to_dict(self): return dict(email=self.email.data, password=self.password.data)
class NetworkForm(Form): """ The network form. """ name = TextField('Name', [validators.Required(), validators.Length(min=1, max=80)]) ipv4_address = IPTextField('IPv4 network', ip_version=4, network_only=True) ipv6_address = IPTextField('IPv6 network', ip_version=6, network_only=True) members = FieldList(FormField(NetworkMemberForm))
class EocNewForm(FormPro): cityid = SelectFieldPro(u'所属地市', choices=lambda: area_choices(1, u'请选择地市')) town = SelectFieldPro(u'', choices=lambda: area_choices(2, u'请选择区县')) area_id = SelectFieldPro(u'所属区域', validators=[required(message=u'必填')], choices=lambda: area_choices(3, u'请选择分局')) name = TextField(u'EOC名称', validators=[required(message=u'必填')]) alias = TextField(u'EOC别名', validators=[required(message=u'必填')]) addr = TextField(u'IP 地址', validators=[ required(message=u'必填'), IPAddress(message=u'IP地址格式不正确'), NoneOf(['0.0.0.0', '255.255.255.255'], message=u'IP地址格式不正确') ]) snmp_comm = TextField(u'读团体名', validators=[required(message=u'必填')]) snmp_wcomm = TextField(u'写团体名', validators=[required(message=u'必填')]) snmp_ver = RadioField(u'SNMP版本', default=SNMP_VER_DICT.keys()[0], validators=[required(message=u'必填')], choices=[(value, label) for value, label in SNMP_VER_DICT.items()]) vendor = QuerySelectField( u'EOC厂商', query_factory=lambda: Vendor.query.filter(Vendor.is_valid == 1), allow_blank=True, blank_text=u'请选择厂商', get_label='alias') model = QuerySelectField( u'EOC型号', query_factory=lambda: Model.query.filter(Model.is_valid == 1).filter( Model.category_id == 50), allow_blank=True, blank_text=u'请选择型号', get_label='alias') mask = TextField(u'子网掩码') esn = TextField(u'ESN') owner = TextField(u'维护人员') contact_tel = TextField(u'联系电话') location = TextField(u'安装地址') install_time = DateFieldPro(u'安装时间') remark = TextAreaField(u'备注信息')
class NoteForm(Form): name = TextField('Name', validators=[Required()]) text = TextAreaField('Note', validators=[Required()]) pad = SelectField('Pad', choices=[], coerce=int) # @TODO use wtforms.ext.sqlalchemy.fields.QuerySelectField? def __init__(self, user=None, **kwargs): super(NoteForm, self).__init__(**kwargs) self.pad.choices = [(0, '---------')] + [ (p.id, p.name) for p in Pad.query.filter_by(user=user) ]
class UserNewForm(Form): username = TextField(u'用户名', validators=[required(message=u'必填')]) name = TextField(u'真实姓名', validators=[required(message=u'必填')]) password = PasswordField( u'密码', validators=[required(message=u'必填'), v.Length(min=6, max=20)]) password_confirm = PasswordField(u'重复密码', validators=[ required(message=u'必填'), equal_to('password', message=u'两次输入的密码不同') ]) role_id = SelectFieldPro( u'角色', validators=[required(message=u'必填')], choices=lambda: [('', u'请选择角色')] + [(unicode(r.id), r.name) for r in Role.query]) domain_id = SelectFieldPro( u'管理域', validators=[required(message=u'必填')], choices=lambda: [('', u'请选择管理域')] + [(unicode(d.id), d.name) for d in Domain.query]) department = TextField(u'部门') email = TextField( u'邮箱', validators=[required(message=u'必填'), email(message=u'不是合法的邮箱地址')]) telephone = TextField(u'电话') mobile = TextField(u'手机', validators=[validate_mobile()]) memo = TextAreaField(u'备注')
class SignupForm(Form): email = TextField('Email', validators=[Required(), Email()]) password = PasswordField('Password', validators=[Required()]) repeat_password = PasswordField( 'Repeat Password', validators=[ Required(), EqualTo('password', message="Your passwords do not match") ]) def validate_email(self, field): if User.query.filter_by(email=field.data).count(): raise ValidationError('User with this email is already signed up')
class RouterSearchForm(FormPro): keyword = TextField() area = AreaSelectField(u'所属区域') vendor_id = SelectFieldPro( u'生产厂商', choices=lambda: [('', u'请选择生产厂商')] + [(unicode(r.id), r.alias) for r in Vendor.query]) model_id = SelectFieldPro( u'设备型号', choices=lambda: [('', u'请选择设备型号')] + [(unicode(r.id), r.alias) for r in Model.query]) status = SelectFieldPro( u'状态', choices=lambda: [('', u'请选择状态')] + NODE_STATUS_DICT.items())
class ProfileForm(Form): name = TextField(u'真实姓名', validators=[required(message=u'必填')]) role_name = TextField(u'角色名') domain_name = TextField(u'管理域名') department = TextField(u'部门') email = TextField( u'邮箱', validators=[required(message=u'必填'), email(message=u'不是合法的邮箱地址')]) telephone = TextField(u'电话') mobile = TextField(u'手机', validators=[validate_mobile()]) memo = TextAreaField(u'备注')