Beispiel #1
0
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'有效')])
Beispiel #2
0
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'备注')
Beispiel #3
0
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')
Beispiel #4
0
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())
Beispiel #5
0
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()
Beispiel #6
0
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'备注')
Beispiel #7
0
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'备注')
Beispiel #8
0
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'备注')
Beispiel #9
0
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'备注')
Beispiel #10
0
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'备注')
Beispiel #11
0
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'备注信息')
Beispiel #12
0
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'备注')
Beispiel #13
0
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()
Beispiel #14
0
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'Повторите Ваш пароль еще раз')
Beispiel #15
0
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
Beispiel #16
0
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"))
Beispiel #17
0
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
Beispiel #18
0
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
Beispiel #19
0
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'必填')])
Beispiel #20
0
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'备注信息')
Beispiel #21
0
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()
Beispiel #22
0
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
Beispiel #23
0
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)
Beispiel #24
0
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))
Beispiel #25
0
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'备注信息')
Beispiel #26
0
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)
        ]
Beispiel #27
0
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'备注')
Beispiel #28
0
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')
Beispiel #29
0
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())
Beispiel #30
0
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'备注')