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
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)
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')
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"))
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?') '''
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})
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
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())
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!') ])
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 = []
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())
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
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)
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")
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
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"}, )
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')
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", ]
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!')
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)] )
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, }
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())
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
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)
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')
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!']) ])
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")
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") ])
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
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})
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")])
def __call__(self, field, **kwargs): kwargs['class'] = 'html' return TextArea.__call__(self, field, **kwargs)