from flask_wtf import FlaskForm
from wtforms import (MultipleFileField, StringField, SubmitField,
                     ValidationError)
from wtforms.validators import DataRequired, Length


class CreateCorpusForm(FlaskForm):
    description = StringField('Description',
                              validators=[DataRequired(), Length(1, 64)])
    files = MultipleFileField('Files', validators=[DataRequired()])
    submit = SubmitField('Create corpus')
    title = StringField('Title', validators=[DataRequired(), Length(1, 32)])

    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')