def entry_form(self):
        '''
        create an entry form for manager use
        '''
        if not hasattr(self, 'form'):
            class_name = 'ContentEntryForm'
            class_parents = (Form,)
            attributes = {}

            form = type(class_name, (Form,), {})

            title_field = TextField('Title', [Required('Title is required')])
            title_field.bind(form, 'content_entry_title')
            setattr(form, 'content_entry_title', title_field)
            slug_field = TextField('Slug', [Required('Slug is required')])
            slug_field.bind(form, 'content_entry_slug')
            setattr(form, 'content_entry_slug', slug_field)

            tag_field = TextField('Tags')
            tag_field.bind(form, 'content_entry_tag')
            setattr(form, 'content_entry_tag', tag_field)

            status_field = SelectField('Status', choices=self.status_options)
            status_field.bind(form, 'content_entry_status')
            setattr(form, 'content_entry_status', status_field)

            save_field = SubmitField('Save')
            save_field.bind(form, 'content_entry_save')
            setattr(form, 'content_entry_save', save_field)

            delete_field = SubmitField('Delete')
            delete_field.bind(form, 'content_entry_delete')
            setattr(form, 'content_entry_delete', delete_field)

            field_groups = []
            for group in self.field_groups:
                if group.fields:
                    field_group = {'uuid': group.uuid,
                                   'name': group.name,
                                   'fields': []}
                    for field in group.fields:
                        form_field = field.field(field.name)
                        form_field.bind(form, field.name)
                        setattr(form, field.name, form_field)

                        field_group['fields'].append(field.name)
                    field_groups.append(field_group)
            attributes['_field_groups'] = field_groups
            self.form = form
            self.form._field_groups = field_groups
        return self.form
Exemple #2
0
class RandomForm(Form):
    bits = TextAreaField(validators=[Required()])
    submit = SubmitField()
Exemple #3
0
class LogIn(FlaskForm):
    username = StringField('username', validators=[InputRequired()])
    password = PasswordField('password',
                             validators=[InputRequired(), ValidateLogin])
    log_in = SubmitField('Login', render_kw={'class': 'submit-'})
Exemple #4
0
class TemplateFormHoroscopo(FlaskForm):
    campoAnyo = StringField("Año Nacimiento",
                            validators=[DataRequired(),
                                        Length(4, 5)])

    enviar = SubmitField("Enviar")
Exemple #5
0
class LoginForm(FlaskForm):
    user_name = StringField(
        'User Name', validators=[InputRequired('User Name is required')])
    password = PasswordField(
        'Password', validators=[InputRequired('Password is required')])
    submit = SubmitField("Login")
Exemple #6
0
class PageDownFormExample(FlaskForm):
    pagedown = PageDownField('Enter your markdown')
    submit = SubmitField('Submit')
class LoginForm(FlaskForm):
    employee_number = StringField('Employee Number',
                                  validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Login')
Exemple #8
0
class EditForm(FlaskForm):
    title = StringField(u'标题', validators=[DataRequired()])
    category = StringField(u'标签', validators=[DataRequired()])
    body = PageDownField(u"编辑博客内容", validators=[DataRequired()])
    submit = SubmitField(u'提交')
Exemple #9
0
class UploadForm(FlaskForm):
    wordlist = RadioField('Wordlist',
                          choices=wordlists_available(),
                          default=NONE_STR,
                          description="The higher the rate, the better")
    rule = RadioField('Rule', choices=Rule.to_form(), default=NONE_STR)
    timeout = IntegerField('Timeout in minutes, optional',
                           validators=[Optional(),
                                       NumberRange(min=1)])
    workload = RadioField("Workload",
                          choices=Workload.to_form(),
                          default=Workload.Default.value)
    brain = BooleanField(
        "Hashcat Brain",
        default=False,
        description="Hashcat Brain skips already tried password candidates")
    brain_client_feature = RadioField(
        "Brain client features",
        choices=BrainClientFeature.to_form(),
        default=BrainClientFeature.POSITIONS.value)
    capture = FileField(
        'Capture',
        validators=[
            FileRequired(),
            FileAllowed(HashcatMode.valid_suffixes(),
                        message='Airodump & Hashcat capture files only')
        ])
    submit = SubmitField('Submit')

    # TODO: pass render_kw=dict(disabled=True) in RadioField

    def __init__(self):
        super().__init__()
        self.wordlist.choices = wordlists_available()

    def get_wordlist_path(self):
        if self.wordlist.data == NONE_STR:
            return None
        return Path(self.wordlist.data)

    def get_wordlist_name(self):
        wordlist = find_wordlist_by_path(self.get_wordlist_path())
        if wordlist is None:
            return None
        return wordlist.name

    def get_rule(self):
        return Rule.from_data(self.rule.data)

    @property
    def runtime(self):
        runtime = estimate_runtime_fmt(wordlist_path=self.get_wordlist_path(),
                                       rule=self.get_rule())
        return runtime

    def hashcat_args(self, secret=False):
        hashcat_args = []
        if self.brain.data:
            hashcat_args.append("--brain-client")
            hashcat_args.append(
                f"--brain-client-features={self.brain_client_feature.data}")
            if secret:
                hashcat_args.append(
                    f"--brain-password={read_hashcat_brain_password()}")
        return hashcat_args

    @staticmethod
    def validate_wordlist(form, field):
        wordlist = field.data
        if wordlist is None:
            # fast mode
            return

        # update the wordlists
        wordlists_available()

        wordlist = find_wordlist_by_path(wordlist)
        if wordlist is None:
            raise ValidationError(
                f"The chosen wordlist does not exist anymore.")
Exemple #10
0
class WatchListForm(FlaskForm):
    add = SubmitField('Add to Watchlist')
Exemple #11
0
class PageDownForm(FlaskForm):
    pagedown = PageDownField('Title')
    pagedown2 = PageDownField('Post')
    submit = SubmitField('Submit')
Exemple #12
0
class RegistForm(FlaskForm):
    name = StringField(label="昵称",
                       validators=[DataRequired("请输入昵称!")],
                       description="昵称",
                       render_kw={
                           "class": "form-control input-lg",
                           "placeholder": "请输入昵称!",
                       })
    email = StringField(label="邮箱",
                        validators=[DataRequired("请输入邮箱!"),
                                    Email("邮箱格式不正确!")],
                        description="邮箱",
                        render_kw={
                            "class": "form-control input-lg",
                            "placeholder": "请输入邮箱!",
                        })
    phone = StringField(label="手机",
                        validators=[
                            DataRequired("请输入手机!"),
                            Regexp("1[3458]\d{9}", message="手机格式不正确!")
                        ],
                        description="手机",
                        render_kw={
                            "class": "form-control input-lg",
                            "placeholder": "请输入手机号!",
                        })
    pwd = PasswordField(label="密码",
                        validators=[
                            DataRequired("请输入密码!"),
                            EqualTo('pwd', message="两次密码不一致!")
                        ],
                        description="密码",
                        render_kw={
                            "class": "form-control input-lg",
                            "placeholder": "请输入密码!",
                        })
    repwd = PasswordField(
        label="确认密码",
        validators=[DataRequired("请输入确认密码!")],
        description="确认密码",
        render_kw={
            "class": "form-control input-lg",
            "placeholder": "请输入确认密码!",
            # "required": "required"
        })
    submit = SubmitField('注册',
                         render_kw={
                             "class": "btn btn-lg btn-success btn-block",
                         })

    def validate_name(self, field):
        name = field.data
        user = User.query.filter_by(name=name).count()
        if user == 1:
            raise ValidationError("昵称已经存在!")

    def validate_email(self, field):
        email = field.data
        user = User.query.filter_by(email=email).count()
        if user == 1:
            raise ValidationError("邮箱经存在!")

    def validate_phone(self, field):
        phone = field.data
        user = User.query.filter_by(phone=phone).count()
        if user == 1:
            raise ValidationError("手机号码已经存在!")
Exemple #13
0
class LoginForm(FlaskForm):
    #El parametro que se le pasa es la etiqueta o label
    username = StringField('Nombre de usuario', validators=[DataRequired()])
    #wtf va a manejar esa contraseña encriptandola y demas, sin tener que preocuparnos nosotros de eso
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Enviar')
Exemple #14
0
class UpdateTodoForm(FlaskForm):
    submit_field = SubmitField('Actualizar')
Exemple #15
0
class DeleteTodoForm(FlaskForm):
    submit_field = SubmitField('Borrar')
Exemple #16
0
class PostForm(FlaskForm):
    title = StringField(u'标题', validators=[DataRequired()])
    body = PageDownField(u"给我留言(markdown)", validators=[DataRequired()])
    submit = SubmitField(u'提交')
Exemple #17
0
class DeleteTaskForm(FlaskForm):
    submit = SubmitField('Delete')
Exemple #18
0
class SubmitForm(FlaskForm):
    xq = SelectField("校区", choices=[("2", "崂山校区"), ("1", "鱼山校区")])
    lx = SelectField("类型", choices=[("1", "四级"), ("2", "六级")])
    js = StringField("教室号")
    kch = StringField("考场号")
    submit = SubmitField("提交")
Exemple #19
0
class UpdateTaskForm(FlaskForm):
    submit = SubmitField('Update')
Exemple #20
0
class DirdProfileForm(BaseForm):
    uuid = HiddenField()
    services = FieldList(FormField(ServicesForm))
    submit = SubmitField()
class TodoForm(FlaskForm):

    description = StringField('Description', validators=[DataRequired()])
    submit = SubmitField('Create')
Exemple #22
0
class BidForm(FlaskForm):
    bid_amount = DecimalField('',
                              validators=[InputRequired()],
                              render_kw={"placeholder": "Bid amount..."})
    submit = SubmitField('Place Bid')
class DeleteTodoForm(FlaskForm):
    submit = SubmitField('x')
Exemple #24
0
class PageDownFormExample(FlaskForm):
    pagedown = PageDownField(
        'Type the text you want to translate and click "Translate" button below.'
    )
    submit = SubmitField('Translate')
class UpdateTodoForm(FlaskForm):
    submit = SubmitField('✔')
Exemple #26
0
class ExitGroup(FlaskForm):
    exit_ = SubmitField('Exit Group', render_kw={'class': 'exit_group'})
class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Login')
class RequestResetPasswordForm(Form):
    email = EmailField('Email',
                       validators=[InputRequired(),
                                   Length(1, 64),
                                   Email()])
    submit = SubmitField('Reset password')
Exemple #29
0
class ReplyForm(Form):
    content = TextAreaField('context', validators=[DataRequired()])
    submit = SubmitField('回复')
Exemple #30
0
class PostForm(Form):
    title = StringField('title', validators=[DataRequired()])
    content = TextAreaField('content', validators=[DataRequired()])
    submit = SubmitField('发帖')
Exemple #31
0
class FormularioChino(FlaskForm):
    # variables globales
    ano = StringField("Introduce tu Año Nacimiento:", validators=[DataRequired(), Length(4, 5)])
    botonEnviar = SubmitField("Enviar")