class ModuleCrudForm(BaseModelForm): """Client Form .""" name = StringField("Name", validators=[DataRequired(), Length(min=5, max=80)]) description = StringField( "Description", validators=[DataRequired(), Length(min=5, max=256)]) long_description = TextAreaField( "Long Description", validators=[DataRequired(), Length(min=5)]) tags = StringField("Tags (comma separated)", validators=[DataRequired(), Length(min=5)]) demo_url = StringField("Demo Url", validators=[DataRequired(), Length(min=5, max=256)]) code_path = StringField( "Code Path", validators=[DataRequired(), Length(min=5, max=256)]) price = FloatField("Price", validators=[DataRequired()]) support_price = FloatField("Support Price", validators=[DataRequired()]) release_date = DateField("Release Date", validators=[DataRequired()]) last_update_date = DateField("Release Date", validators=[DataRequired()]) image = FileField('Product Image (397x306)', validators=[ FileRequired(), FileAllowed(images, 'Images only allowed!') ]) images = MultipleFileField( 'Product Screenshots (726x403)', validators=[DataRequired(), FileAllowed(images, 'Images only!')])
class DataForm(FlaskForm): age = IntegerField(u'Age', validators=[InputRequired(), NumberRange(18, 100)], render_kw={'um': 'years'}) gender = SelectField(u'Gender', choices=[('m', 'Male'), ('f', 'Female')], validators=[InputRequired()]) phys_exercise = IntegerField( u'Physical exercise', description= u'The number of days per week you perform physical exercise for a minimum of 30 minutes (on average).', validators=[InputRequired(), NumberRange(0, 7)], render_kw={'um': 'days'}) wrist_function = SelectField( u'Reduced wrist function', choices=[('n', 'No'), ('y', 'Yes')], description= u'Wether or not you have reduced right wrist functionality.', validators=[InputRequired()]) handedness = SelectField(u'Dominant hand', choices=[('r', 'Right'), ('l', 'Left'), ('a', 'Ambidextrous')], validators=[InputRequired()]) wrist_circumference = FloatField( u'Wrist circumference', validators=[InputRequired(), NumberRange(10, 30)], render_kw={'um': 'cm'}) arm_circumference = FloatField( u'Arm circumference', validators=[InputRequired(), NumberRange(10, 40)], render_kw={'um': 'cm'}) submit = SubmitField(u'Start test')
class FileSampleSearchForm(NoCSRFForm): md5sum = StringField('MD5 hash', validators=[Optional(), Length(min=32, max=32)]) sha1sum = StringField('SHA1 hash', validators=[Optional(), Length(min=40, max=40)]) sha256sum = StringField('SHA256 hash', validators=[Optional(), Length(min=64, max=64)]) sha512sum = StringField('SHA512 hash', validators=[Optional(), Length(min=128, max=128)]) mime_type = StringField( 'Mime type', validators=[Optional(), Length(min=4)], description='<i>Examples: application/x-dosexec, text/xml</i>') file_names = StringField('File name', validators=[Optional(), Length(min=4)]) file_size__lte = IntegerField( 'File size smaller than', validators=[Optional()], description='Enter file size in number of bytes') file_size__gte = IntegerField( 'File size larger than', validators=[Optional()], description='Enter file size in number of bytes') shannon_entropy__lte = FloatField( 'Shannon entropy smaller than', validators=[Optional(), NumberRange(min=0, max=8)], description='Enter floating point value between 0 and 8') shannon_entropy__gte = FloatField( 'Shannon entropy larger than', validators=[Optional(), NumberRange(min=0, max=8)], description='Enter floating point value between 0 and 8')
class ToneForm(FlaskForm): dic_code = IntegerField("体检项目编码") summary = StringField("体检项对应的健康状态描述") val = IntegerField("权重") lower_scope = FloatField("范围下限") upper_scope = FloatField("范围上限") submit = SubmitField("更新")
class LugarForm(ValidationForm): nombre = StringField('nombre', [InputRequired(), ValidateUnique()]) latitud = FloatField('latitud', [InputRequired(), ValidateUniques(['latitud', 'longitud'])]) longitud = FloatField('longitud', [InputRequired()]) es_de_entrenamiento = BooleanField('es_de_entrenamiento') es_outdoor = BooleanField('es_outdoor')
class EditStudentProfile(Form): grade = SelectField( 'Grade', choices=[('9', '9th Grade'), ('10', '10th Grade'), ('11', '11th Grade'), ('12', '12th Grade')]) high_school = StringField( 'High School', validators=[InputRequired(), Length(1, 100)]) phone_number = StringField( 'Phone number', validators=[InputRequired()]) graduation_year = IntegerField( 'Graduation Year', validators=[InputRequired()]) unweighted_gpa = FloatField('Unweighted GPA', validators=[InputRequired()]) weighted_gpa = FloatField('Weighted GPA', validators=[Optional()]) fafsa_status = SelectField( 'FAFSA Status', choices=[('Incomplete', 'Incomplete'), ('Submitted', 'Submitted'), ('In Progress', 'In Progress')]) early_deadline = SelectField( 'Have Early Deadline', choices=[('True', 'Yes'), ('False', 'No')]) district = StringField( 'District', validators=[InputRequired(), Length(1, 100)]) city = StringField('City', validators=[InputRequired(), Length(1, 100)]) state = StringField('State', validators=[InputRequired(), Length(1, 100)]) submit = SubmitField('Update Profile')
class SettingsForm(FlaskForm): targets = SelectField(label="Select target", choices=[]) skip_tree = BooleanField( label=( "Skip the core gene alignment and tree for visualization " "and troubleshooting"), default=False) work_offline = BooleanField( "Work offline with local genome assemblies", default=False) skip_download = BooleanField( "Skip the download of Genomes from NCBI", default=False) assemblylevel = SelectMultipleField( "Assembly level", choices=[ ('all', "All"), ('complete', 'Complete'), ('chromosome', 'Chromosome'), ('scaffold', 'Scaffold'), ('contig', 'Contig')], validators=[DataRequired()]) customdb = StringField( "Specify the path to a custom BLAST database", default=None) nolist = BooleanField( label=( "Species list is not used and only sequences without blast " "hits are used for primer design "), default=False) blastseqs = SelectField( "Maximal number of sequences per BLAST search", coerce=int, choices=[ (100, "100"), (500, "500"), (1000, "1000"), (2000, "2000"), (5000, "5000")], default=1000) qc_gene = SelectMultipleField( "Gene(s) for BLAST search in the initial quality control step", choices=[ ('rRNA', "16S rRNA"), ('tuf', "tuf"), ('recA', "recA"), ('dnaK', "dnaK"), ('pheS', "pheS")], validators=[DataRequired()]) exception = FieldList(StringField(""), min_entries=1) minsize = IntegerField("Minimal Amplicon size", default=70) maxsize = IntegerField("Maximal Amplicon size", default=200) designprobe = BooleanField("Pick internal hybridization oligo") mfold = FloatField( "ΔG threshold for secondary structures in PCR products" " at 60°C calculated by mfold", default=-3.0) mpprimer = FloatField( "ΔG threshold for 3'-end primer dimer binding", default=-3.5) mfeprimer_threshold = SelectField( "MFEprimer threshold for nontarget sequence PPC", coerce=int, choices=[ (80, "80"), (85, "85"), (90, "90"), (95, "95"), (100, "100")], default=90) ignore_qc = BooleanField( "Include genomes that did not pass quality control") blastdbv5 = BooleanField("BLAST DB Version 5") intermediate = BooleanField("Do not delete intermediate files") change_wd = StringField( "Change path of the working directory", default="/primerdesign") submit = SubmitField("Submit settings") reset = SubmitField("Reset page")
class FluctuationInputForm(FlaskForm): class Meta: csrf = False v_total = FloatField('Volume of a culture <i>(μl)</i>, V<sub>tot</sub>', [volume_value], default=200) c_selective = MultiFloatAreaField( 'Observed numbers of clones, C<sub>sel</sub>', [clones_numbers, int_values]) d_selective = FloatField('Dilution factor, D<sub>sel</sub>', [dilution_validator]) v_selective = FloatField('Volume plated <i>(μl)</i>, V<sub>sel</sub>', [volume_value]) c_complete = MultiFloatAreaField( 'Observed numbers of clones, C<sub>com</sub>', [clones_numbers]) d_complete = FloatField('Dilution factor, D<sub>com</sub>', [dilution_validator]) v_complete = FloatField('Volume plated <i>(μl)</i>, V<sub>com</sub>', [volume_value]) submit = SubmitField('Calculate') def __repr__(self): c_sel = ';'.join(self.c_selective.raw_data[0].split()) c_com = ';'.join(self.c_complete.raw_data[0].split()) return 'V_tot={}|C_sel={}|D_sel={}|V_sel={}|C_com={}|D_com={}|V_com={}'.format( self.v_total.raw_data[0], c_sel, self.d_selective.raw_data[0], self.v_selective.raw_data[0], c_com, self.d_complete.raw_data[0], self.v_complete.raw_data[0])
class MProductForm(FlaskForm): name = StringField('Product name', validators=[InputRequired(), Length(1, 64)]) images = MultipleFileField( 'Product Images', validators=[InputRequired(), FileAllowed(images, 'Images only!')]) description = TextAreaField('Description', [InputRequired()]) categories = QuerySelectMultipleField( 'Categories', validators=[InputRequired()], get_label='name', query_factory=lambda: db.session.query(MCategory).order_by('order')) availability = BooleanField(u'Is it currently available?') min_order_quantity = IntegerField('Min number of units per order e.g 1', default=1) length = FloatField('Length in numbers only e.g 0.99') weight = FloatField('Weight in numbers only e.g 0.21') height = FloatField('Height in numbers only e.g 10') price = FloatField('Price, Figures only e.g 16.99') seller = QuerySelectField('Seller', validators=[InputRequired()], get_label='full_name', query_factory=lambda: db.session.query(User). filter_by(is_seller=True).order_by('first_name')) price_currency = QuerySelectField( 'Price currency', validators=[InputRequired()], get_label='name', query_factory=lambda: db.session.query(MCurrency).order_by('name')) is_featured = BooleanField("Is Featured ?") lead_time = StringField('Delivery time') submit = SubmitField('Submit')
class PlotbrowserForm(SubmitForm, StationsForm, DateForm, FileFormatForm, HeaderdateForm, RIRVForm): """ A web form for :func:`~polyfemos.front.main.plotbrowser`. """ _choices = [(s, s) for s in userdef.sohpars(visibilities={1, 2, 3})] sohpar_names = SelectMultipleField(u'Sohpars', choices=_choices) decimate = BooleanField(u'Decimate', default="checked") ridv = BooleanField(u'Remove identical values', default="checked") track_len = BooleanField(u'Track data length', default="checked") aor = RadioField(u'Advanced outlier removal', choices=[ ('null', 'None'), ('dtr', 'DTR'), ('sta', 'STALTA'), ('lip', 'Lipschitz'), ]) dtr_maxdepth = IntegerField(u'maxdepth', default=0) dtr_scale = FloatField(u'scale', default=24000) dtr_medlim = FloatField(u'medlim', default=10) sta_nsta = IntegerField(u'nsta', default=3) sta_nlta = IntegerField(u'nlta', default=10) sta_threson = FloatField(u'threson', default=1.08) sta_thresoff = FloatField(u'thresoff', default=1.05) sta_offset = IntegerField(u'offset', default=40) lip_itern = IntegerField(u'itern', default=1) lip_klim = FloatField(u'klim', default=7e-5)
class ConcreteColumnForm(Form): betonkwaliteiten = list() dat = list() for k, v in CYLINDER_TO_CUBE_STRENGTHS.items(): betonkwaliteiten.append(f'C{k}/{v}') dat.append(k) # TODO fix dat type = SelectField(label='type', choices=list(zip(KOLOMTYPES, KOLOMTYPES)), default='rechthoek') nodeboven = SelectField(label='Node boven', choices=list(zip(NODES_BOVEN, NODES_BOVEN)), default=NODES_BOVEN[0]) veerconstantek1 = FloatField(label='Veerconstante k1', default=0.1) nodeonder = SelectField(label='Node onder', choices=list(zip(NODES_BENEDEN, NODES_BENEDEN)), default=NODES_BENEDEN[0]) veerconstantek2 = FloatField(label='Veerconstante k2', default=0.1) betonkwaliteit = SelectField(label='betonkwaliteit', choices=list( zip(betonkwaliteiten, betonkwaliteiten)), default='C25/30') staalkwaliteit = IntegerField(label='staalkwaliteit', default=400) materiaalcoeff = FloatField(label='materiaalcoefficient', default=1.5) lengte = IntegerField(label='lengte', default=3000) breedte = IntegerField(label='breedte', default=140) breedte_2 = IntegerField(label='breedte', default=0) hoogte = IntegerField(label='hoogte', default=300) hoogte_2 = IntegerField(label='hoogte', default=0) radius = IntegerField(label='radius', default=0) langskracht = IntegerField(label='Nd', default=0) As0 = IntegerField(label='gekozen As0', default=226) As = IntegerField(label='gekozen As', default=226)
class ThyroidtypedetectionForm(FlaskForm): age = DecimalField('age', validators=[DataRequired()]) sex = BooleanField('sex', validators=[DataRequired()]) on_thyroxine = BooleanField('on_thyroxine', validators=[DataRequired()]) query_on_thyroxine = BooleanField('query_on_thyroxine', validators=[DataRequired()]) antithyroid_medication = BooleanField('age', validators=[DataRequired()]) sick = BooleanField('sick', validators=[DataRequired()]) pregnant = BooleanField('pregnant', validators=[DataRequired()]) thyroid_surgery = BooleanField('thyroid_surgery', validators=[DataRequired()]) I131_treatment = BooleanField('I131_treatment', validators=[DataRequired()]) query_hypothyroid = BooleanField('query_hypothyroid', validators=[DataRequired()]) query_hyperthyroid = BooleanField('query_hyperthyroid', validators=[DataRequired()]) lithium = BooleanField('lithium', validators=[DataRequired()]) goitre = BooleanField('goitre', validators=[DataRequired()]) tumor = BooleanField('tumor', validators=[DataRequired()]) hypopituitary = BooleanField('hypopituitary', validators=[DataRequired()]) psych = BooleanField('psych', validators=[DataRequired()]) TSH = FloatField('TSH', validators=[DataRequired()]) T3 = FloatField('T3', validators=[DataRequired()]) TT4 = FloatField('TT4', validators=[DataRequired()]) T4U = FloatField('T4U', validators=[DataRequired()]) FTI = FloatField('FTI', validators=[DataRequired()]) submit = SubmitField('Submit')
class ocform(Form): a = FloatField("Strana a:", validators=[InputRequired(message="vyzadovano")]) b = FloatField("Strana b:", validators=[InputRequired(message="vyzadovano")]) obrazec = SelectField("Obrazec", choices=[("1", "Ctverec a"),\ ("2", "Obdelnik ab"),\ ("3", "Trojuhelnik abc")], default=1)
class ocform(Form): a = FloatField("Strana a:", validators=[NumberRange(min=0, message="Hodnota vetsi"),\ InputRequired(message="vyzadovano")]) b = FloatField("Strana a:", validators=[NumberRange(min=0, message="Hodnota vetsi"),\ InputRequired(message="vyzadovano")]) obrazec = SelectField("Obrazec", choices=[(1, "Ctverec A"),\ (2, "Obdelnik B"),\ (3, "Trojuhelnuik ABC")], default=1)
class ProductSkuForm(Form): serial_no = StringField(lazy_gettext('Serial No.'), validators=[DataRequired()]) sku_cover_id = IntegerField(lazy_gettext('Cover'), default=0) sale_price = FloatField(lazy_gettext('Sale Price'), default=0.00) s_model = StringField(lazy_gettext('Model')) s_weight = FloatField(lazy_gettext('Weight'), default=0.00) remark = TextAreaField(lazy_gettext('Remark'))
class SingleResourceForm(Form): name = StringField('Name', validators=[InputRequired(), Length(1, 500)]) address = StringField('Address', validators=[InputRequired(), Length(1, 500)]) latitude = FloatField('Latitude', validators=[InputRequired()]) longitude = FloatField('Longitude', validators=[InputRequired()]) submit = SubmitField('Save Resource')
class StandaloneObservationMixin: observing_session_id = HiddenField(default='false') target = StringField(lazy_gettext('Target'), validators=[ InputRequired(), ]) date_from = DateTimeField(lazy_gettext('Date From'), id='odate_from', format='%d/%m/%Y %H:%M', default=datetime.today, validators=[ InputRequired(), ]) date_to = DateTimeField(lazy_gettext('Date To'), id='odate_from', format='%d/%m/%Y %H:%M', default=datetime.today, validators=[ InputRequired(), ]) location = StringField(lazy_gettext('Location'), validators=[ Length(max=256), ]) sqm = FloatField(lazy_gettext('Sqm'), validators=[Optional()]) faintest_star = FloatField(lazy_gettext('Faintest Star'), validators=[Optional()]) seeing = SelectField(lazy_gettext('Seeing'), choices=Seeing.choices(), coerce=Seeing.coerce, default=Seeing.AVERAGE) telescope = SelectField(lazy_gettext('Telescope'), coerce=int) eyepiece = SelectField(lazy_gettext('Eyepiece'), coerce=int) filter = SelectField(lazy_gettext('Filter'), coerce=int) notes = TextAreaField(lazy_gettext('Notes')) def validate_target(self, field): dsos, double_star, not_found = parse_observation_targets( self.target.data) if not_found: msg = lazy_gettext('Unknown targets:') + ','.join(not_found) self.target.errors.append(msg) return False return True def validate_location(self, field): if self.observing_session_id.data: return True return location_lonlat_check(self, field) def validate_date_from_to(self): if self.date_from.data and self.date_to.data and self.date_from.data > self.date_to.data: msg = lazy_gettext('Date from must be before date to.') self.date_from.errors.append(msg) msg = lazy_gettext('Date to must be after date from.') self.date_to.errors.append(msg) return False return True
class formfiliph(Form): a = FloatField( "Strana a:", validators=[[NumberRange(min=0, message="Hodnota vetsi ZERO")], [InputRequired(message="Hodnota povinna")]]) b = FloatField( "Strana b:", validators=[[NumberRange(min=0, message="Hodnota vetsi ZERO")], [InputRequired(message="Hodnota povinna")]])
class SearchDoubleStarForm(FlaskForm): q = StringField('Search') mag_max = FloatField(lazy_gettext('Mag max'), default=12.0) delta_mag_min = FloatField(lazy_gettext('Delta mag min'), default=0.0) separation_min = FloatField(lazy_gettext('Separation min'), default=1.0) separation_max = FloatField(lazy_gettext('Separation max'), default=60.0) dec_min = FloatField(lazy_gettext('Dec min'), default=-35.0) constellation_id = IntegerField('Constellation', default=None) items_per_page = IntegerField(lazy_gettext('Items per page'))
class formmikes(Form): a = FloatField("Strana a:", validators=[ NumberRange(min=0, message="Hodnota vetsi nez 0"), InputRequired(message="vyzadovano") ]) b = FloatField("Strana b:", validators=[ NumberRange(min=0, message="Hodnota vetsi nez 0"), InputRequired(message="vyzadovano") ])
class PosForm(FlaskForm): lat = FloatField('lat', validators=[InputRequired()]) lon = FloatField('lon', validators=[InputRequired()]) acc = FloatField('acc', validators=[ InputRequired(), NumberRange(max=40, message="You don't know where you are."), ]) def pos(self) -> tuple: return (self.lat.data, self.lon.data)
class LocationForm(FlaskForm): lat = FloatField('Latitude', validators=[ DataRequired(), ]) lan = FloatField('Longitude', validators=[DataRequired()]) timestamp = DateTimeLocalField( 'Timestamp', validators=[DataRequired()], format=settings.DATETIME_FORMAT, render_kw={"placeholder": "30/12/2016 23:59:01"}) user_id = SelectField('User', choices=get_users(), coerce=int) submit = SubmitField('Submit')
class AddSensor(FlaskForm): name = StringField(label='传感器名称', validators=[DataRequired()]) type = SelectField(label='传感器类型', coerce=int) about = TextAreaField(label='传感器描述', validators=[DataRequired()]) unit = StringField(label='传感器单位', validators=[DataRequired()]) max = FloatField(label='最大值') min = FloatField(label='最小值') submit = SubmitField(label='添加传感器') def __init__(self): super(AddSensor, self).__init__() self.type.choices = [(stype.id, stype.name) for stype in Stype.query.all()]
class UserProfileForm(FlaskForm): name = StringField('name', validators=[DataRequired()]) surname = StringField('surname', validators=[DataRequired()]) gender = SelectField('gender', choices=[('Male', 'Male'), ('Female', 'Female')]) email = StringField('email', validators=[DataRequired()]) weight = FloatField('weight') height = FloatField('height') location = StringField('location') about_me = TextAreaField('about_me', validators=[Length(min=0, max=140)]) photo = FileField( 'photo', validators=[FileAllowed(['jpg', 'png', 'jpeg'], 'Images only')]) password = PasswordField('password')
class AvatarSetForm(Form): ''' :Variables: - `x`: 头像剪裁的起始x坐标 - `y`: 头像剪裁的起始y坐标 - `w`: 头像剪裁的宽度 - `h`: 头像剪裁的高度 - `target_width`: 浏览器前端对比宽度 ''' x = FloatField(validators=[InputRequired()]) y = FloatField(validators=[InputRequired()]) w = FloatField(validators=[InputRequired()]) h = FloatField(validators=[InputRequired()]) target_width = IntegerField(validators=[InputRequired()])
class ObservingSessionMixin: title = StringField(lazy_gettext('Title'), validators=[ InputRequired(), Length(max=256), ]) rating = HiddenField(lazy_gettext('Rating'), default=0) date_from = DateTimeField(lazy_gettext('Date From'), id='odate_from', format='%d/%m/%Y %H:%M', default=datetime.today, validators=[ InputRequired(), ]) date_to = DateTimeField(lazy_gettext('Date To'), id='odate_from', format='%d/%m/%Y %H:%M', default=datetime.today, validators=[ InputRequired(), ]) location = StringField( lazy_gettext('Location'), validators=[InputRequired(), Length(max=256), location_lonlat_check]) sqm = FloatField(lazy_gettext('Sqm'), validators=[Optional()]) faintest_star = FloatField(lazy_gettext('Faintest Star'), validators=[Optional()]) seeing = SelectField(lazy_gettext('Seeing'), choices=Seeing.choices(), coerce=Seeing.coerce, default=Seeing.AVERAGE) transparency = SelectField(lazy_gettext('Transparency'), choices=Transparency.choices(), coerce=Transparency.coerce, default=Transparency.AVERAGE) weather = StringField(lazy_gettext('Weather')) equipment = StringField(lazy_gettext('Equipment')) notes = TextAreaField(lazy_gettext('Notes')) is_public = BooleanField(lazy_gettext('Plan is public'), default=False) def validate_date_from_to(self): if self.date_from.data and self.date_to.data and self.date_from.data > self.date_to.data: msg = lazy_gettext('Date from must be before date to.') self.date_from.errors.append(msg) msg = lazy_gettext('Date to must be after date from.') self.date_to.errors.append(msg) return False return True
class VodBaseStreamForm(FlaskForm): AVAILABLE_VOD_TYPES = [(constants.VodType.VODS, 'VODS'), (constants.VodType.SERIES, 'SERIES')] vod_type = SelectField('Vod type:', validators=[InputRequired()], choices=AVAILABLE_VOD_TYPES, coerce=constants.VodType.coerce) description = StringField('Description:', validators=[]) trailer_url = StringField('Trailer URL:', validators=[ InputRequired(), Length(min=constants.MIN_URL_LENGTH, max=constants.MAX_URL_LENGTH) ]) user_score = FloatField( 'User score:', validators=[InputRequired(), NumberRange(min=0, max=100)]) prime_date = DateTimeField('Prime time:', validators=[InputRequired()]) country = StringField('Country:', validators=[ InputRequired(), Length(min=constants.MIN_COUNTRY_LENGTH, max=constants.MAX_COUNTRY_LENGTH) ]) duration = IntegerField('Duration in (msec):', validators=[ InputRequired(), NumberRange( min=0, max=constants.MAX_VIDEO_DURATION_MSEC) ])
class EditForm(FlaskForm): name = StringField("Item Title", validators=[InputRequired('Enter a Name')]) model = StringField("Item model", validators=[InputRequired('Enter a model name')]) price = FloatField('Price', validators=[InputRequired('Please enter valid Price')]) category = SelectField("Category", choices=[('CPU', 'CPU'), ('GPU', 'GPU'), ('Case', 'Case'), ('Memory', 'Memory'), ('Motherboard', 'Motherboard'), ('CPU Cooler', 'CPU Cooler'), ('Storage', 'Storage'), ('Peripherals', 'Peripherals'), ('Power Supply', 'Power Supply')]) description = TextAreaField("Description", validators=[InputRequired('Enter a Name')]) quality = SelectField("Quality", choices=[('New', 'New'), ('Used/Excelent', 'Used/Excelent'), ('Used/Good', 'Used/Good'), ('Used/Moderate', 'Used/Moderate'), ('Used/Needs Repairs5', 'Used/Needs Repairs')]) image = FileField("Product Image:", validators=[ FileAllowed( ALLOWED_FILE, message='Only support png, jpg, JPG, PNG, bmp') ]) submit = SubmitField("Edit")
class AddExpenseDetailsForm(Form): ''' wtform for adding expense ''' category = StringField(validators=[Length(3, 80)]) amount = FloatField() description = StringField(validators=[Length(0, 100)])
class ReturnForm(FlaskForm): book = StringField('book',validators=[DataRequired()]) return_approved = SubmitField('Marcar como devuelto') rating = FloatField('rating') user = StringField('user') denegated = SubmitField('Cancelar') giveback = SubmitField('Devolver')