Пример #1
0
  def __init__(self, resizeable=None, *args, **kwargs):
    BaseTextArea.__init__(self, *args, **kwargs)

    if not resizeable in self._resizeable_valid:
      raise ValueError(
        'Invalid value for resizeable: {}, valid values are: {}'.format(
          repr(resizeable),
          ','.join(repr(v) for v in self._resizeable_valid)
          )
      )
    if resizeable:
      self.resizeable = 'resizeable-' + resizeable
Пример #2
0
  def __init__(self, resizeable=None, rows=None, *args, **kwargs):
    BaseTextArea.__init__(self, *args, **kwargs)

    if resizeable not in self._resizeable_valid:
      raise ValueError(
        'Invalid value for resizeable: {}, valid values are: {!r}'
        ''.format(self._resizeable_valid)
      )
    if resizeable:
      self.resizeable = 'resizeable-' + resizeable
    else:
      self.resizeable = 'not-resizeable'

    if rows:
      self.rows = int(rows)
Пример #3
0
class ProccesTaskForm(FlaskForm):
    ix = HiddenField('ix', validators=[DataRequired()])
    btn = HiddenField('btn', validators=[DataRequired(), AnyOf(['M', 'B'])])
    title = StringField('Título',
                        validators=[
                            DataRequired(),
                            Length(
                                min=3,
                                max=15,
                                message="La longitud ha de estar entre 3 y 15")
                        ])
    description = StringField('Descripción', widget=TextArea())
    fx = DateField('Fecha', validators=[DataRequired()])

    submit = SubmitField('Aceptar')
Пример #4
0
class ProfilUpdateForm(FlaskForm):
    first_name = StringField(validators=[DataRequired()])
    surname = StringField(validators=[DataRequired()])
    telephone = StringField(validators=[DataRequired()])
    street = StringField(validators=[DataRequired()])
    # street_number = StringField( validators=[DataRequired()])
    town = StringField(validators=[DataRequired()])
    post_code = StringField(validators=[DataRequired()])
    info = StringField(u'Napište krátký komentář:',
                       widget=TextArea(),
                       validators=[DataRequired()])
    soubor = FileField("Vlož obrázek")
    submit = SubmitField(
        'Změnit údaje',
        render_kw=dict(class_="btn btn-outline-primary btn-block"))
Пример #5
0
class CreateEpisode(FlaskForm):
	episode_name = wtforms.StringField('Episode name', validators=[DataRequired(), Length(min=3, max=30)])
	picture = FileField("Episode image", validators=[FileAllowed(["jpg", 'png', "gif", "jpeg"])])
	video = wtforms.StringField('أرفق مقطع يوتيوب') # string for youtube embeded videos
	text = wtforms.StringField('text', validators=[Length(max=3000)], widget=TextArea())
	description = wtforms.StringField('Description', validators=[Length(max=85)], widget=TextArea())

	submit = wtforms.SubmitField("Create Episode")


	def validate_video(self, video):

		if len(video.data) > 0: # if it has data
			if len(video.data) > 400 or len(video.data) < 5:# validate
				raise ValidationError('youtube iframe must be bwtween 5 to 400 characters')
class TutorialForm(Form):
    tag = StringField('Tag')
    title = StringField('Title')
    content = StringField('Content', widget=TextArea())
    python = BooleanField('Python?')
    linux = BooleanField('Linux?')
    ansible = BooleanField('ansible?')
    docker = BooleanField('docker?')
    kubernetes = BooleanField('kubernetes?')
    rancher = BooleanField('rancher?')
    jenkins = BooleanField('jenkins?')
    aws = BooleanField('aws?')
    github = BooleanField('github?')
    wide_img = BooleanField('wide img?')
    '''
Пример #7
0
class ChangelogForm(BaseForm):
    template = "object"
    form_type = HiddenField(default="changelog")
    id = HiddenField()
    severity = SelectField(
        "Severity",
        choices=(
            ("debug", "Debug"),
            ("info", "Info"),
            ("warning", "Warning"),
            ("error", "Error"),
            ("critical", "Critical"),
        ),
    )
    content = StringField(widget=TextArea(), render_kw={"rows": 8})
Пример #8
0
class ValidationForm(BaseForm):
    form_type = HiddenField(default="service_validation")
    abstract_service = True
    conversion_method = SelectField(choices=(
        ("none", "No conversion"),
        ("text", "Text"),
        ("json", "Json dictionary"),
        ("xml", "XML dictionary"),
    ))
    validation_method = SelectField(
        "Validation Method",
        choices=(
            ("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")
    group = [
        "conversion_method",
        "validation_method",
        "content_match",
        "content_match_regex",
        "dict_match",
        "negative_logic",
        "delete_spaces_before_matching",
    ]

    def validate(self) -> bool:
        valid_form = super().validate()
        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 conversion_validation_mismatch
Пример #9
0
class PropertyForm(Form):
    name = Fields.property_line('Property Name')
    address_l1 = Fields.property_line('Address Line 1')
    address_l2 = StringField('Address Line 2', [
        validators.Length(max=200, message=len_error_msg(max=200)),
        name_validator
    ])
    city = Fields.property_line('City')

    state = StringField('State', [
        validators.Length(min=2, max=2, message=len_error_msg(fixed=2)),
        validators.DataRequired(message=required()), state_validator
    ])
    zipcode = StringField(
        'Zipcode',
        [zipcode_validator,
         validators.DataRequired(message=required())])
    type = StringField('Property Type', [
        validators.Length(max=50, message=len_error_msg(max=50)),
        validators.DataRequired(message=required())
    ])
    beds = DecimalField('Beds', [
        validators.InputRequired(message=required()),
        validators.NumberRange(min=0, message=int_error_msg(min=0)),
        decimal_validator
    ])
    baths = DecimalField('Baths', [
        validators.InputRequired(message=required()),
        validators.NumberRange(min=0, message=int_error_msg(min=0)),
        decimal_validator
    ])
    for_rent = BooleanField('For Rent', [rent_validator])
    rent_price = StringField('Rental Price', [price_validator])
    for_sale = BooleanField('For Sale', [sale_validator])
    sale_price = StringField('Sale Price', [price_validator])

    area = IntegerField('Area (sq ft)', [
        validators.NumberRange(min=0, message=int_error_msg(min=0)),
        validators.InputRequired(message=required())
    ])
    is_public = BooleanField('Is Public', [is_public_validator])
    status = StringField(
        'Property Status',
        [validators.Length(max=100, message=len_error_msg(max=100))])
    notes = StringField(
        'Notes/Comments',
        [validators.Length(max=2000, message=len_error_msg(max=2000))],
        widget=TextArea())
Пример #10
0
class ProfileForm(Form):
    first_name = StringField('First Name', validators=[InputRequired()])
    last_name = StringField('Last Name', validators=[InputRequired()])
    gender = SelectField('Gender',
                         choices=[('Male', 'Male'), ('Female', 'Female')],
                         validators=[InputRequired()])
    location = StringField('Location', validators=[InputRequired()])
    email = StringField('Email Address', validators=[InputRequired(), Email()])
    biography = StringField('Biography',
                            validators=[InputRequired()],
                            widget=TextArea())
    image = FileField('Profile Picture',
                      validators=[
                          FileRequired(),
                          FileAllowed(['jpg', 'png'], 'Images only!')
                      ])
Пример #11
0
class WindowsList(Field):
    widget = TextArea()

    def _value(self):
        if self.data:
            d = u', '.join(self.data)
        else:
            d = u''

        return d

    def process_formdata(self, valuelist):
        if valuelist:
            self.data = [x.strip() for x in valuelist[0].split(',')]
        else:
            self.data = []
Пример #12
0
class ThreadForm(FlaskForm):
    fileupload = FileField('Attach picture')

    subject = StringField('Subject',
                          render_kw={'placeholder': 'Subject'},
                          validators=[Length(max=80)])

    author = StringField('Name',
                         render_kw={'placeholder': 'Name'},
                         validators=[Length(max=80)])

    message = StringField('Message',
                          validators=[DataRequired(),
                                      Length(max=5000)],
                          render_kw={'placeholder': 'Message'},
                          widget=TextArea())
Пример #13
0
class MailNotificationForm(ServiceForm):
    form_type = HiddenField(default="mail_notification_service")
    title = SubstitutionField()
    sender = StringField()
    recipients = StringField()
    body = SubstitutionField(widget=TextArea(), render_kw={"rows": 5})

    def validate(self):
        valid_form = super().validate()
        for field in ("title", "sender", "recipients", "body"):
            if not getattr(self, field).data:
                getattr(
                    self,
                    field).errors.append(f"{field.capitalize()} is missing.")
                valid_form = False
        return valid_form
Пример #14
0
class NameEmailMessageForm(FlaskForm):
    """ Form to get the visitor's name, email address, and required message """

    name = StringField('Name:', validators=[Required(NAME_MISSING_MSG)])
    email = StringField(
        'Email:', [Required(EMAIL_MISSING_MSG),
                   Email(EMAIL_INVALID_MSG)])
    message = StringField(u'Text',
                          widget=TextArea(),
                          validators=[Required(MESSAGE_MISSING_MSG)])
    submit = SubmitField('Submit Form')

    def reset(self):
        """ Reset the form """
        blankData = MultiDict([('csrf', self.reset_csrf())])
        self.process(blankData)
Пример #15
0
class EventForm(FlaskForm):
	title = StringField('Event Title', validators=[DataRequired()])	
	orguname = StringField('Organizer Username', validators=[DataRequired()])
	category = SelectField('Category', validators=[DataRequired(), Optional()], choices=[('zestopen', 'Zest Open'), ('zestclose', 'Zest Close'),('aamod', 'Aamod')])
	subcategory = SelectField('Sub Category', validators=[DataRequired(),Optional()], choices=[('sports', 'Sports'), ('atheletics', 'Atheletics'),('dance', 'Dance'),('drama','Drama'),('music','Music'),('informals','Informals'),('deco', 'Decoration'),('fine arts', 'Fine Arts'), ('literary','Literary'), ('renaissance','Renaissance')])
	image = FileField('Cover Picture', validators=[FileAllowed(['jpg', 'png', 'jpeg'])])
	num_of_member = IntegerField('Number of member',validators=[DataRequired()])
	time = StringField('Event Time')
	about = StringField('Event Details', widget=TextArea())
	status = SelectField('Status', validators=[DataRequired(), Optional()], choices=[('T', 'Online'), ('F', 'Offline')])
	submit = SubmitField('Register Event')

	def validate_orguname(self, orguname):
		user = User.query.filter_by(username=orguname.data).first()
		if user is None:
			raise ValidationError("No account with this username")	
Пример #16
0
class StickerForm(Form):
    """
    Form for Sticker model.
    """
    sprint_id = SelectField('Sprint')
    caption = StringField('Caption', validators=[Required()])
    description = StringField('Description',
                              widget=TextArea(),
                              validators=[Required()])

    def validate_sprint(form, field):
        """
        Pass sprint validation because it always has correct values since it
        dynamically prepopulated.
        """
        return True
Пример #17
0
class SubmissionForm(FlaskForm):
    description = StringField(
        "description_submission",
        render_kw={
            "class": "form-control",
            "placeholder": "Description for overview"
        },
        widget=TextArea(),
    )
    file_prediction = FileField(
        validators=[
            FileRequired(),
            FileAllowed(ALLOWED_ANSWER_EXT, "csv&tsv&txt only!"),
        ],
        render_kw={"class": "custom-file-input"},
    )
Пример #18
0
class AddForm(FlaskForm):
    location = StringField('Store/Location', validators=[DataRequired()])
    item = StringField('Item', validators=[DataRequired()])
    quantity = SelectField('Quantity',
                           choices=[('out', 'Out of Stock'),
                                    ('limited', 'Limited'),
                                    ('stocked', 'Fully Stocked')],
                           default='stocked',
                           validators=[DataRequired()])
    place_id = HiddenField('Place', validators=[DataRequired()])
    name = HiddenField('Name', validators=[DataRequired()])
    address = HiddenField('Address', validators=[DataRequired()])
    lat = HiddenField('Lat', validators=[DataRequired()])
    long = HiddenField('Long', validators=[DataRequired()])
    comment = StringField('Comments (optional)', widget=TextArea())
    submit = SubmitField('Save')
Пример #19
0
class StringValidationForm(BaseForm):
    form_type = HiddenField(default="string_service_validation")
    abstract_service = True
    content_match = SubstitutionField("Content Match",
                                      widget=TextArea(),
                                      render_kw={"rows": 8})
    content_match_regex = BooleanField("Match content with Regular Expression")
    negative_logic = BooleanField("Negative logic")
    delete_spaces_before_matching = BooleanField(
        "Delete Spaces before Matching")
    group = [
        "content_match",
        "content_match_regex",
        "negative_logic",
        "delete_spaces_before_matching",
    ]
Пример #20
0
class PasteForm(FlaskForm):

    len_val = Length(
        min=100,
        max=1000000,
        message="Data does not meet requirements. Please try again.")
    excel_data = TextAreaField(
        u'Text',
        widget=TextArea(),
        validators=[DataRequired(), len_val],
        render_kw={
            "placeholder":
            "Step 0: Copy the raw spreadsheet data from Excel/Google Sheets/etc. and paste it into this field!"
        })

    submit1 = SubmitField('I pasted the spreadsheet data!')
Пример #21
0
class BaseUserForm(Form):
    first_name = StringField('First Name', [validators.DataRequired()])
    last_name = StringField('Last Name', [validators.DataRequired()])
    email = EmailField('Email address', [
        validators.DataRequired(),
        validators.Email()
        ]
    )
    username = StringField('Username', [
        validators.DataRequired(),
        validators.length(min=4, max=25)
        ])
    bio = StringField('Bio',
        widget=TextArea(),
        validators=[validators.Length(max=160)]
    )
Пример #22
0
class NapalmConfigurationForm(NapalmForm):
    form_type = HiddenField(default="napalm_configuration_service")
    action = SelectField(choices=(
        ("load_merge_candidate", "Load merge"),
        ("load_replace_candidate", "Load replace"),
    ))
    content = StringField(widget=TextArea(),
                          render_kw={"rows": 5},
                          substitution=True)
    groups = {
        "Main Parameters": {
            "commands": ["action", "content"],
            "default": "expanded"
        },
        **NapalmForm.groups,
    }
Пример #23
0
class ContactForm(FlaskForm):
    name = StringField(label='Your Name', validators=[DataRequired()])
    email = StringField(label='Email',
                        validators=[
                            DataRequired(),
                            Email(message='Invalid email'),
                            Length(max=50)
                        ])
    subject = StringField(label='Subject',
                          validators=[
                              validators.DataRequired(),
                              validators.Length(min=8, max=160)
                          ])
    message = StringField(label='Your Message',
                          validators=[DataRequired()],
                          widget=TextArea())
Пример #24
0
class AdminMessageForm(Form):
    message = StringField("Message", widget=TextArea())
    show = BooleanField("Show message")
    end = DateField("Hide message after", [Optional()])

    submit = SubmitField("Publish")

    def init_with_message(self, message):
        self.message.data = message.message
        self.show.data = message.show
        self.end.data = message.end

    def update_message(self, message):
        message.message = self.message.data
        message.show = self.show.data
        message.end = self.end.data
Пример #25
0
class NewFileForm(Form):

    ds_name = StringField('Filename', [validators.DataRequired()])
    fileName = FileField('File')
    description = StringField('Filename', [validators.DataRequired()],
                              widget=TextArea())
    new_submitted = IntegerField('Submitted', default=0, widget=HiddenInput())

    def __init__(self, *args, **kwargs):
        super(NewFileForm, self).__init__(*args, **kwargs)

    def validate(self):
        return super(NewFileForm, self).validate()

    def populate_obj(self, obj):
        super(NewFileForm, self).populate_obj(obj)
Пример #26
0
class ReunionForm(FlaskForm):
    """
    Formulario para reunion
    """

    id = HiddenField(u'id')
    nombre_reunion = StringField(u'Nombre de la reunión')

    # Modelo Familia
    fecha_reunion = DateField(u'Fecha de la reunión',
                              validators=[DataRequired()])

    comentarios_reunion = StringField(u'Comentarios',
                                      widget=TextArea())

    submit = SubmitField(u'Aceptar')
Пример #27
0
class RegistrationForm(FlaskForm):
    Username = StringField('Username', validators=[DataRequired()])
    Password = PasswordField('Password', validators=[DataRequired()])
    Name = StringField('Name', validators=[DataRequired()])
    Email = EmailField('Email', validators=[DataRequired()])
    Location = StringField('Location', validators=[DataRequired()])

    Biography = StringField('Biography',
                            widget=TextArea(),
                            validators=[DataRequired()])

    photo = FileField('Photo',
                      validators=[
                          FileRequired(),
                          FileAllowed(['jpg', 'png', 'Images only!'])
                      ])
Пример #28
0
class EmailComposeForm(Form):
    subject = StringField("Subject", [DataRequired()])
    text = StringField("Text", [DataRequired()], widget=TextArea())
    destination = SelectField(
        "Send to:",
        choices=[
            ("all", "Registered users"),
            ("ticket", "Ticketholders"),
            ("purchasers", "Users who made payments"),
            ("cfp", "Accepted CfP"),
        ],
    )
    preview = SubmitField("Preview Email")
    send_preview_address = StringField("Preview Email Address")
    send_preview = SubmitField("Send Preview Email")
    send = SubmitField("Send Email")
Пример #29
0
class TweetForm(Form):
    Username = StringField(
        "Username",
        validators=[validators.DataRequired(message="Set A Username")])
    Password = PasswordField(
        "Password",
        validators=[validators.DataRequired(message="Set A Password")])
    Post = TextAreaField(
        "Add Tweet",
        widget=TextArea(),
        validators=[
            validators.Length(
                min=1,
                max=999999,
                message="You Cannot Write More Less 280 Characters")
        ])
Пример #30
0
class UpdateProfileForm(FlaskForm):
    def __init__(self, *args, **kwargs):
        super(UpdateProfileForm, self).__init__(*args, **kwargs)

    email = StringField(
        label="email",
        validators=[Email(), Length(1, 64)],
    )
    password = PasswordField(
        label="password",
        validators=[
            Length(0, 64),
        ],
    )
    name = StringField(label="name", validators=[
        Length(0, 64),
    ])
    family = StringField(label="family", validators=[
        Length(0, 64),
    ])
    username = StringField(label="username", validators=[
        Length(0, 64),
    ])
    photo = FileField(label="profile picture")
    role = SelectField(label="role", validate_choice=False)
    location = StringField(label="location")
    about_me = StringField(label="describe your self",
                           widget=TextArea(),
                           validators=[
                               Length(0, 256),
                           ])
    last_seen = DateTimeField(label="last seen")
    submit = SubmitField(label="Update", )

    def load_data(self, ):
        self.role.choices = [(role, role)
                             for i, role in enumerate(Role.query.all())]
        self.role.default = current_user.role
        self.process()
        self.email.data = current_user.email
        self.name.data = current_user.name
        self.family.data = current_user.family
        self.username.data = current_user.username
        self.photo.data = current_user.photo
        self.location.data = current_user.location
        self.about_me.data = current_user.about_me
        self.last_seen.data = current_user.last_seen
Пример #31
0
class employerForm(Form):
    businessName = TextField(BUSINESS)
    contactName = TextField(CONTACT)
    phoneNumber = TextField(PHONE, [
        validators.length(min=10),
        validators.Optional(),
        validators.regexp('^[0-9]+$')
    ])
    website = TextField(WEBSITE)
    streetAddress = TextField(ADDRESS)
    about = TextField(ABOUT, widget=TextArea())

    def __init__(self, *args, **kwargs):
        self.type = EMPL
        self.user = args[0]
        Form.__init__(self, args[1], **kwargs)

    def prepopulate(self, user):
        self.businessName.data = user.get(BUSINESS, '')
        self.contactName.data = user.get(CONTACT, '')
        self.phoneNumber.data = user.get(PHONE, '')
        self.website.data = user.get(WEBSITE, '')
        self.streetAddress.data = user.get(ADDRESS, '')
        self.about.data = user.get(ABOUT, '')

    def validate(self):
        rv = Form.validate(self)
        if not rv:
            message = ''
            for fieldName, errorMessages in self.errors.items():
                for err in errorMessages:
                    message = message + fieldName + ': ' + err + '\n'
            flash(message, 'error')
            return False
        return True

    def update(self, email):
        user = {
            BUSINESS: self.businessName.data,
            CONTACT: self.contactName.data,
            PHONE: self.phoneNumber.data,
            WEBSITE: self.website.data.rstrip(),
            ADDRESS: self.streetAddress.data,
            ABOUT: self.about.data
        }

        savvy_collection.update({EMAIL: email}, {"$set": user})
Пример #32
0
class MaintenanceForm(EDIForm):
    description = StringField('Description *',
                              widget=TextArea(),
                              validators=[])
    update_frequency = SelectField('Maintenance Update Frequency (Optional)',
                                   choices=[("", ""), ("annually", "annually"),
                                            ("asNeeded", "as needed"),
                                            ("biannually", "biannually"),
                                            ("continually", "continually"),
                                            ("daily", "daily"),
                                            ("irregular", "irregular"),
                                            ("monthly", "monthly"),
                                            ("notPlanned", "not planned"),
                                            ("weekly", "weekly"),
                                            ("unknown", "unknown"),
                                            ("otherMaintenancePeriod",
                                             "other maintenance period")])
Пример #33
0
 def __call__(self, field, **kwargs):
     kwargs['class'] = 'html'
     return TextArea.__call__(self, field, **kwargs)