from flask_wtf import FlaskForm from wtforms import (BooleanField, FileField, StringField, SubmitField, ValidationError, IntegerField, SelectField) from wtforms.validators import DataRequired, Length class AddCorpusFileForm(FlaskForm): address = StringField('Adress', validators=[Length(0, 255)]) author = StringField('Author', validators=[DataRequired(), Length(1, 255)]) booktitle = StringField('Booktitle', validators=[Length(0, 255)]) chapter = StringField('Chapter', validators=[Length(0, 255)]) editor = StringField('Editor', validators=[Length(0, 255)]) file = FileField('File', validators=[DataRequired()]) institution = StringField('Institution', validators=[Length(0, 255)]) journal = StringField('Journal', validators=[Length(0, 255)]) pages = StringField('Pages', validators=[Length(0, 255)]) publisher = StringField('Publisher', validators=[Length(0, 255)]) publishing_year = IntegerField('Publishing year', validators=[DataRequired()]) school = StringField('School', validators=[Length(0, 255)]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 255)]) def validate_file(form, field): if not field.data.filename.lower().endswith('.vrt'): raise ValidationError('File does not have an approved extension: ' '.vrt') class EditCorpusFileForm(FlaskForm): address = StringField('Adress', validators=[Length(0, 255)]) author = StringField('Author', validators=[DataRequired(), Length(1, 255)]) booktitle = StringField('Booktitle', validators=[Length(0, 255)]) chapter = StringField('Chapter', validators=[Length(0, 255)]) editor = StringField('Editor', validators=[Length(0, 255)]) institution = StringField('Institution', validators=[Length(0, 255)]) journal = StringField('Journal', validators=[Length(0, 255)]) pages = StringField('Pages', validators=[Length(0, 255)]) publisher = StringField('Publisher', validators=[Length(0, 255)]) publishing_year = IntegerField('Publishing year', validators=[DataRequired()]) school = StringField('School', validators=[Length(0, 255)]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 255)]) class AddCorpusForm(FlaskForm): description = StringField('Description', validators=[DataRequired(), Length(1, 255)]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 32)]) class QueryForm(FlaskForm): query = StringField('Query', validators=[DataRequired(), Length(1, 1024)]) submit = SubmitField('Send query') class DisplayOptionsForm(FlaskForm): expert_mode = BooleanField('Expert mode') result_context = SelectField('Result context', choices=[('', 'Choose your option'), ('10', '10'), ('20', '20'), ('30', '30'), ('40', '40'), ('50', '50'), ('60', '60'), ('70', '70'), ('80', '80'), ('90', '90'), ('100', '100')]) results_per_page = SelectField('Results per page', choices=[('', 'Choose your option'), ('10', '10'), ('20', '20'), ('30', '30'), ('40', '40'), ('50', '50'), ('60', '60'), ('70', '70'), ('80', '80'), ('90', '90'), ('100', '100')]) class InspectDisplayOptionsForm(FlaskForm): expert_mode_inspect = BooleanField('Expert mode') highlight_sentences = BooleanField('Highlight sentences') context_sentences = SelectField('Context sentences', choices=[('', 'Choose your option'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')], default=3) class QueryDownloadForm(FlaskForm): file_type = SelectField('File type', choices=[('', 'Choose file type'), ('csv', 'csv'), ('json', 'json'), ('excel', 'excel'), ('html', 'html-table')], validators=[DataRequired()])