Exemple #1
0
class LoginForm(FlaskForm):
    username = StringField('Benutzername', validators=[DataRequired()])
    password = PasswordField('Passwort', validators=[DataRequired()])
    remember_me = BooleanField('Anmeldedaten merken')
    submit = SubmitField('Anmelden')
Exemple #2
0
class ServiceForm(BaseForm):
    template = "service"
    form_type = HiddenField(default="service")
    id = HiddenField()
    type = StringField("Service Type")
    name = StringField("Name")
    description = StringField("Description")
    device_query = StringField("Device Query")
    device_query_property = SelectField(
        "Query Property Type", choices=(("name", "Name"), ("ip_address", "IP address"))
    )
    devices = MultipleInstanceField("Devices")
    pools = MultipleInstanceField("Pools")
    waiting_time = IntegerField("Waiting time (in seconds)", default=0)
    send_notification = BooleanField("Send a notification")
    send_notification_method = SelectField(
        "Notification Method",
        choices=(("mail", "Mail"), ("slack", "Slack"), ("mattermost", "Mattermost")),
    )
    notification_header = StringField(widget=TextArea(), render_kw={"rows": 5})
    include_link_in_summary = BooleanField("Include Result Link in Summary")
    display_only_failed_nodes = BooleanField("Display only Failed Devices")
    mail_recipient = StringField("Mail Recipients (separated by comma)")
    number_of_retries = IntegerField("Number of retries", default=0)
    time_between_retries = IntegerField("Time between retries (in seconds)", default=10)
    maximum_runs = IntegerField("Maximum number of runs", default=1)
    skip = BooleanField("Skip")
    skip_query = StringField("Skip Query (Python)")
    vendor = StringField("Vendor")
    operating_system = StringField("Operating System")
    initial_payload = DictField()
    iteration_values = StringField("Iteration Values (Python Query)")
    iteration_variable_name = StringField(
        "Iteration Variable Name", default="iteration_value"
    )
    iteration_devices = StringField("Iteration Devices (Python Query)")
    iteration_devices_property = SelectField(
        "Iteration Devices Property",
        choices=(("name", "Name"), ("ip_address", "IP address")),
    )
    result_postprocessing = StringField(widget=TextArea(), render_kw={"rows": 7})
    multiprocessing = BooleanField("Multiprocessing")
    max_processes = IntegerField("Maximum number of processes", default=50)
    conversion_method = SelectField(
        choices=(
            ("none", "No conversion"),
            ("text", "Text"),
            ("json", "Json dictionary"),
            ("xml", "XML dictionary"),
        )
    )
    validation_method = SelectField(
        "Validation Method",
        choices=(
            ("none", "No validation"),
            ("text", "Validation by text match"),
            ("dict_included", "Validation by dictionary inclusion"),
            ("dict_equal", "Validation by dictionary equality"),
        ),
    )
    content_match = SubstitutionField(
        "Content Match", widget=TextArea(), render_kw={"rows": 8}
    )
    content_match_regex = BooleanField("Match content with Regular Expression")
    dict_match = DictSubstitutionField("Dictionary to Match Against")
    negative_logic = BooleanField("Negative logic")
    delete_spaces_before_matching = BooleanField("Delete Spaces before Matching")
    query_fields = [
        "device_query",
        "skip_query",
        "iteration_values",
        "result_postprocessing",
    ]

    def validate(self):
        valid_form = super().validate()
        no_recipient_error = (
            self.send_notification.data
            and self.send_notification_method.data == "mail"
            and not self.mail_recipient.data
            and not app.mail_recipients
        )
        if no_recipient_error:
            self.mail_recipient.errors.append(
                "Please add at least one recipient for the mail notification."
            )
        bracket_error = False
        for query_field in self.query_fields:
            field = getattr(self, query_field)
            try:
                parse(field.data)
            except Exception as exc:
                bracket_error = True
                field.errors.append(f"Wrong python expression ({exc}).")
            if "{{" in field.data and "}}" in field.data:
                bracket_error = True
                field.errors.append(
                    "You cannot use variable substitution "
                    "in a field expecting a python expression."
                )
        conversion_validation_mismatch = (
            self.conversion_method.data == "text"
            and "dict" in self.validation_method.data
            or self.conversion_method.data in ("xml", "json")
            and "dict" not in self.validation_method.data
        )
        if conversion_validation_mismatch:
            self.conversion_method.errors.append(
                f"The conversion method is set to '{self.conversion_method.data}'"
                f" and the validation method to '{self.validation_method.data}' :"
                " these do not match."
            )
        return (
            valid_form
            and not no_recipient_error
            and not bracket_error
            and not conversion_validation_mismatch
        )
Exemple #3
0
class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember_me = BooleanField('Remember Me')
    submit = SubmitField('Sign In')
Exemple #4
0
class DeleteForm(FlaskForm):
    delete = BooleanField("Delete")
    submit = SubmitField('Submit')
Exemple #5
0
class LoginForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Hasło', validators=[DataRequired()])
    remember = BooleanField('Zapamiętaj mnie')
    submit = SubmitField('Zaloguj')
Exemple #6
0
class LoginForm(Form):
   login = TextField('user_name', [validators.Required()])
   password  = TextField('password',  [validators.Required()])
   remember_me = BooleanField('remember_me', default = False)
Exemple #7
0
class BlogEditor(FlaskForm):
    title = StringField("title", validators=[DataRequired()])
    text = TextAreaField("text", validators=[DataRequired()])
    tags = StringField("tags", validators=[DataRequired()])
    draft = BooleanField("draft", default=False)
    submit = SubmitField("submit")
Exemple #8
0
class LoginForm(Form):
    # Fields of the form are defined as class variables.

    # DataRequired checks that the field is not empty
    openid = StringField('openid', validators=[DataRequired()])
    remember_me = BooleanField('remember_me', default=False)
Exemple #9
0
class LoginForm(Form):
    openid = StringField('openid', validators=[DataRequired()])
    remember_me = BooleanField('remember', default=False)
Exemple #10
0
class LoginForm(Form):
    email = StringField('邮箱', validators=[Required(), Length(1, 64), Email()])
    password = PasswordField('密码', validators=[Required()])
    remember_me = BooleanField('保持登陆状态')
    submit = SubmitField('登陆')
Exemple #11
0
class LoginForm(FlaskForm):
    email = EmailField('Email', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember_me = BooleanField('Remember me')
    submit = SubmitField('Enter')
Exemple #12
0
class LoginForm(FlaskForm):
    username = StringField("username", validators=[DataRequired()])
    password = PasswordField("password", validators=[DataRequired()])
    remember_me = BooleanField("Remember me")
    submit = SubmitField("Sign in")
Exemple #13
0
class LoginForm(FlaskForm):
    mail = StringField("Email", validators=[DataRequired()])
    password = PasswordField("Mot de passe", validators=[DataRequired()])
    remember_me = BooleanField("Se souvenir de la connexion")
    submit = SubmitField("Login")
Exemple #14
0
class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), Length(1, 20)])
    password = PasswordField('Password', validators=[DataRequired(), Length(1, 128)])
    remember = BooleanField('Remember me')
    submit = SubmitField('Log in')
Exemple #15
0
class loginform(FlaskForm):
    email = StringField('Email', validators=[DataRequired(),Email()])
    password = PasswordField('Password',validators=[DataRequired(),Length(min=8,max=30)])
    remember = BooleanField('Remember Me')
    submit = SubmitField('Log In')
class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(message="Это поле обязательно для заполнения")])
    password = PasswordField('Password', validators=[DataRequired(message="Это поле обязательно для заполнения")])
    remember_me = BooleanField('Remember Me')
    submit = SubmitField('Sign In')
Exemple #17
0
class LoginForm(FlaskForm):
    email = StringField('Your Email Address',validators=[Required(),Email()])
    password = PasswordField('Password',validators =[Required()])
    remember = BooleanField('Remember me')
    submit = SubmitField('Sign In')
    
Exemple #18
0
class VotingForm(FlaskForm):

    response = BooleanField('I would like to vote FOR this applicant.')
    submit = SubmitField('Vote!')
Exemple #19
0
class Login_Form(Form):
    email = StringField(validators=[DataRequired()])
    password = PasswordField(validators=[DataRequired()])
    remember = BooleanField()
    submit = SubmitField('Login')
Exemple #20
0
def make_form(config, use_recaptcha=True):

    class F(FlaskForm):
        pass

    dynamic_fields = []
    primary_field = None

    if use_recaptcha:
        F.recaptcha = RecaptchaField()
    else:
        F.recaptcha = BooleanField('captcha placeholder')

    F.agree = BooleanField('I am 13 years of age or older',
                           validators=[DataRequired(message='You must '
                               'be 13 years of age or older to apply.')])
    F.submit = SubmitField('Apply!')
    for field in config['fields']:

        validators = [Length(max=config['max-length'])]
        if 'required' in field and field['required']:
            validators.append(DataRequired())

        kwargs = {'label': field['name'], 'validators': validators}

        if 'description' in field:
            kwargs.update(description=field['description'])
        if 'primary' in field and field['primary']:
            primary_field = field['name']

        display_label = True

        if field['type'] == 'field':
            formfield = StringField(**kwargs)
        if field['type'] == 'area':
            formfield = TextAreaField(**kwargs)
        if field['type'] == 'integer':
            formfield = IntegerField(**kwargs)
        if field['type'] == 'options':
            choices = []
            for choice in field['choices']:
                if type(choice) == str:
                    choices.append((choice, choice))
                else:
                    choices.append(tuple(choice))

            formfield = RadioField(**kwargs, choices=choices)
        if field['type'] == 'section':
            formfield = SectionField(**kwargs)
            display_label = False

        setattr(F, field['name'], formfield)

        if display_label:
            dynamic_fields.append(field['name'])

        # Add maskable checkbox
        if 'maskable' in field and field['maskable']:
            if 'mask-label' in config:
                label = config['mask-label']
            else:
                label = 'Mask this field'
            formfield = BooleanField(label)
            setattr(F, field['name'] + '_mask', formfield)
        # Add other box
        if 'specify-other' in field and field['specify-other']:
            formfield = StringField(label='Specify other:')
            setattr(F, field['name'] + '_other', formfield)

    form = F()

    for field in form:
        if field.name in dynamic_fields:
            field.flags.dynamic = True
        if field.name == primary_field:
            field.flags.primary = True
        if '_mask' in field.name:
            field.flags.mask = True
        if '_other' in field.name:
            field.flags.other = True
    return form
Exemple #21
0
class LoginForm(FlaskForm):
    email = StringField("Email", validators=[DataRequired(), Email()])
    password = PasswordField("Password", validators=[DataRequired()])
    remember_me = BooleanField("Keep me logged in")
    submit = SubmitField("Submit")
Exemple #22
0
class UserEnableForm(Form):
    preserve_membership = BooleanField(default=False)
Exemple #23
0
class LoginForm(FlaskForm):
    email = StringField("Email", validators=[DataRequired(), Email()])
    password = PasswordField("Password", validators=[DataRequired()])
    remember = BooleanField("Remember Me")
    submit = SubmitField("Login")
Exemple #24
0
class StatisticsForm(FlaskForm):
    locations = SelectField('locations')
    locations2 = SelectField('locations2')
    locations3 = SelectField('locations3')
    locations4 = SelectField('locations4')
    locations5 = SelectField('locations5')
    parameters = SelectField('parameters')
    parameters2 = SelectField('parameters2')
    parameters3 = SelectField('parameters3')
    observations = SelectField('observations')
    startdate = DateField('startdate', format='%Y-%m-%d', default=datetime(2018, 9, 1, 00, 00, 00, 00), validators=[InputRequired()])
    enddate = DateField('enddate', format='%Y-%m-%d', default=datetime(2018, 9, 30, 00, 00, 00, 00), validators=[InputRequired()])
    trendline = BooleanField('trendline')
    statlines = BooleanField('statlines')
    statalpha = StringField('statalpha', default=1.0, validators=[InputRequired()])
    removetbllimit = BooleanField('removetbllimit')
    largeplot = BooleanField('largeplot')
    distribution = BooleanField('distribution')
    boxplot = BooleanField('boxplot')
    boxdislast = BooleanField('boxdislast')
    boxtype = SelectField(choices=[('min', 'Minimum'), ('max', 'Maksimum'), ('mean', 'Srednjak'), ('sum', 'Suma'),
                                   ('median', 'Medijan'), ('std', 'St. devijacija'), ('count', 'Prebrojavanje')], default='mean')
    samey = BooleanField('samey')
    scatterplot = BooleanField('scatterplot')
    scatteralpha = StringField('scatteralpha', default='1.0', validators=[InputRequired()])
    scattersize = StringField('scattersize', default='10', validators=[InputRequired()])
    rollcorr = BooleanField('rollcorr')
    cumsum = BooleanField('cumsum')
    decompose = BooleanField('decompose')
    relativeplot = BooleanField('relativeplot')
    relativekde = BooleanField('relativekde')
    disablestats = BooleanField('disablestats')
    rollingwindow = IntegerField('rollingwindow', default=24, validators=[InputRequired()])
    rollingmean = BooleanField('rollingmean')
    rollingsum = BooleanField('rollingsum')
    rollingstdev = BooleanField('rollingstdev')
    fftspacing = IntegerField('fftspacing', default=0, validators=[InputRequired()])
    fftxmax = IntegerField('fftxmax', default=12, validators=[InputRequired()])
    ymaxplot = StringField('ymaxplot', default='0', validators=[InputRequired()])
    yminplot = StringField('yminplot', default='0', validators=[InputRequired()])
    ymaxbox = StringField('ymaxbox', default='0', validators=[InputRequired()])
    yminbox = StringField('yminbox', default='0', validators=[InputRequired()])
    elevation3d = StringField('elevation3d', default='45', validators=[InputRequired()])
    azimuth3d = StringField('azimuth3d', default='45', validators=[InputRequired()])
    limit3d = BooleanField('limit3d')
    plot3dbar = BooleanField('plot3dbar')
    min3d = StringField('min3d', default='0', validators=[InputRequired()])
    max3d = StringField('max3d', default='0', validators=[InputRequired()])
    resampleperiod = SelectField(choices=[('Off','Satni'),('D','Dnevni'),('M','Mjesečni'),('Y','Godišnji')],
                                 default='Off')
    resamplehow = SelectField(choices=[('min', 'Minimum'), ('max', 'Maksimum'), ('mean', 'Srednjak'), ('sum', 'Suma'), ('count', 'Prebrojavanje')],
                              default='mean')
    submit = SubmitField('Pošalji', render_kw={"onclick": "loading();"})
    sqlfilter = TextAreaField('sqlfilter')
    plottitle = TextAreaField('plottitle')
    filterprimin = StringField('filterprimin', default='')
    filterprimax = StringField('filterprimax', default='')
Exemple #25
0
class LoginForm(Form):
    openid = TextField('openid', validators=[Required()])
    remember_me = BooleanField('remember_me', default=False)
Exemple #26
0
class LoginForm(FlaskForm):
    username = StringField('Usuário:', validators=[DataRequired()])
    password = PasswordField('Senha:', validators=[DataRequired()])
    remember_me = BooleanField('Lembrar-me')
    submit = SubmitField('Entrar')
Exemple #27
0
class LoginForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember = BooleanField('Remember Me')
    submit = SubmitField('Login')
Exemple #28
0
class EventDatesForm(IndicoForm):
    _main_fields = ('start_dt', 'end_dt', 'timezone', 'update_timetable')
    _override_date_fields = ('start_dt_override', 'end_dt_override')

    timezone = IndicoTimezoneSelectField(_('Timezone'), [DataRequired()])
    start_dt = IndicoDateTimeField(_("Start"), [InputRequired()],
                                   allow_clear=False)
    end_dt = IndicoDateTimeField(
        _("End"),
        [InputRequired(),
         LinkedDateTime('start_dt', not_equal=True)],
        allow_clear=False)
    update_timetable = BooleanField(
        _('Update timetable'),
        widget=SwitchWidget(),
        description=_(
            "Move sessions/contributions/breaks in the timetable according "
            "to the new event start time."))
    start_dt_override = IndicoDateTimeField(
        _("Start"), [Optional()],
        allow_clear=True,
        description=_(
            "Specifying this date overrides the start date displayed "
            "on the main conference page."))
    end_dt_override = IndicoDateTimeField(
        _("End"),
        [Optional(),
         LinkedDateTime('start_dt_override', not_equal=True)],
        allow_clear=True,
        description=_("Specifying this date overrides the end date displayed "
                      "on the main conference page."))

    def __init__(self, *args, **kwargs):
        self.event = kwargs.pop('event')
        super(EventDatesForm, self).__init__(*args, **kwargs)
        # timetable synchronization
        self.check_timetable_boundaries = (self.event.type_ !=
                                           EventType.lecture)
        if self.check_timetable_boundaries:
            self.toplevel_timetable_entries = get_top_level_entries(self.event)
            if not self.toplevel_timetable_entries:
                self.check_timetable_boundaries = False
        if not self.check_timetable_boundaries:
            del self.update_timetable
        # displayed dates
        self.has_displayed_dates = (self.event.type_ == EventType.conference)
        if self.has_displayed_dates:
            start_dt = self.start_dt.data or self.start_dt.object_data
            end_dt = self.end_dt.data or self.end_dt.object_data
            self.start_dt_override.default_time = start_dt.astimezone(
                timezone(self.timezone.data)).time()
            self.end_dt_override.default_time = end_dt.astimezone(
                timezone(self.timezone.data)).time()
        else:
            del self.start_dt_override
            del self.end_dt_override

    def validate_start_dt(self, field):
        if not self.check_timetable_boundaries or self.update_timetable.data or field.object_data == field.data:
            return
        if field.data > min(self.toplevel_timetable_entries,
                            key=attrgetter('start_dt')).start_dt:
            raise ValidationError(
                _("To use this start date the timetable must be updated."))

    def validate_end_dt(self, field):
        if not self.check_timetable_boundaries:
            return
        if self.update_timetable.data:
            # if we move timetable entries according to the start date
            # change, check that there's enough time at the end.
            start_dt_offset = self.start_dt.data - self.start_dt.object_data
            end_buffer = field.data - max(self.toplevel_timetable_entries,
                                          key=attrgetter('end_dt')).end_dt
            delta = max(timedelta(), start_dt_offset - end_buffer)
            if delta:
                delta_str = format_human_timedelta(delta, 'minutes', True)
                raise ValidationError(
                    _("The event is too short to fit all timetable entries. "
                      "It must be at least {} longer.").format(delta_str))
        else:
            # if we do not update timetable entries, only check that
            # the event does not end before its last timetable entry;
            # a similar check for the start time is done above in that
            # field's validation method.
            max_end_dt = max(self.toplevel_timetable_entries,
                             key=attrgetter('end_dt')).end_dt
            if field.data < max_end_dt:
                raise ValidationError(
                    _("The event cannot end before its last timetable entry, which is at {}."
                      ).format(
                          to_unicode(
                              format_datetime(max_end_dt,
                                              timezone=self.event.tzinfo))))
Exemple #29
0
class LoginForm(Form):
    email = StringField('Email', validators=[DataRequired(), Length(1, 64), Email()])

    password = PasswordField('Password', validators=[DataRequired()])
    remember_me = BooleanField('Keep me logged in')
    submit = SubmitField('Log In')
class AddSubprojectForm(FlaskForm):
    child_project_id = IntegerField(validators=[InputRequired()])
    child_can_add_users_to_parent = BooleanField(default=False)