from flask_wtf import FlaskForm from wtforms import (BooleanField, MultipleFileField, SelectField, StringField, SubmitField, ValidationError) from wtforms.validators import DataRequired, Length class AddNLPJobForm(FlaskForm): description = StringField('Description', validators=[DataRequired(), Length(1, 255)]) files = MultipleFileField('Files', validators=[DataRequired()]) language = SelectField('Language', choices=[('', 'Choose your option'), ('nl', 'Dutch'), ('en', 'English'), ('fr', 'French'), ('de', 'German'), ('el', 'Greek'), ('it', 'Italian'), ('pt', 'Portuguese'), ('es', 'Spanish')], validators=[DataRequired()]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 32)]) version = SelectField('Version', choices=[('latest', 'Latest')], validators=[DataRequired()]) check_encoding = BooleanField('Check encoding') def validate_files(form, field): for file in field.data: if not file.filename.lower().endswith('.txt'): raise ValidationError('File does not have an approved ' 'extension: .txt') class AddOCRJobForm(FlaskForm): binarization = BooleanField('Binarazation') description = StringField('Description', validators=[DataRequired(), Length(1, 255)]) files = MultipleFileField('Files', validators=[DataRequired()]) language = SelectField('Language', choices=[('', 'Choose your option'), ('eng', 'English'), ('enm', 'English, Middle (1100-1500)'), ('fra', 'French'), ('frm', 'French, Middle (ca. 1400-1600)'), ('deu', 'German'), ('frk', 'German Fraktur'), ('ita', 'Italian'), ('por', 'Portuguese'), ('spa', 'Spanish; Castilian')], validators=[DataRequired()]) split = BooleanField('Split') submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 32)]) version = SelectField('Version', choices=[('latest', 'Latest')], validators=[DataRequired()]) def validate_files(form, field): for file in field.data: if not file.filename.lower().endswith('.pdf'): raise ValidationError('File does not have an approved ' 'extension: .pdf') class AddFileSetupJobForm(FlaskForm): description = StringField('Description', validators=[DataRequired(), Length(1, 255)]) submit = SubmitField() title = StringField('Title', validators=[DataRequired(), Length(1, 32)]) files = MultipleFileField('Files', validators=[DataRequired()]) version = SelectField('Version', choices=[('latest', 'Latest')], validators=[DataRequired()]) def validate_files(form, field): for file in field.data: if not file.filename.lower().endswith(('.jpeg', '.jpg', '.png', '.tiff', '.tif')): raise ValidationError('File does not have an approved ' 'extension: .jpeg | .jpg | .png | .tiff ' '| .tif')