from flask_wtf import FlaskForm from wtforms import (MultipleFileField, StringField, SubmitField, ValidationError, IntegerField) from wtforms.validators import DataRequired, Length, NumberRange class CreateCorpusForm(FlaskForm): description = StringField('Description', validators=[DataRequired(), Length(1, 64)]) submit = SubmitField('Create corpus') title = StringField('Title', validators=[DataRequired(), Length(1, 32)]) class AddCorpusFileForm(FlaskForm): author = StringField('Author', validators=[DataRequired(), Length(1, 64)]) files = MultipleFileField('Files', validators=[DataRequired()]) publishing_year = IntegerField('Publishing year', validators=[DataRequired()]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 64)]) def validate_files(form, field): for file in field.data: if not file.filename.lower().endswith('.vrt'): raise ValidationError('File does not have an approved ' 'extension: .vrt') class QueryForm(FlaskForm): query = StringField('CQP Query', validators=[DataRequired()]) # hits_per_page = IntegerField('Hits per page', # validators=[DataRequired(), # NumberRange(min=10, max=50)]) submit = SubmitField('Start Query')