|
|
|
from flask_wtf import FlaskForm
|
|
|
|
from flask_wtf.file import FileField, FileAllowed, FileRequired, FileSize
|
|
|
|
from wtforms import validators
|
|
|
|
from wtforms.validators import Length, NumberRange
|
|
|
|
from wtforms import (
|
|
|
|
SubmitField,
|
|
|
|
StringField,
|
|
|
|
IntegerField,
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class UploadForm(FlaskForm):
|
|
|
|
"""File upload class for a new site in distribusi-verse"""
|
|
|
|
|
|
|
|
sitename = StringField(
|
|
|
|
"Name of your website:",
|
|
|
|
validators=[validators.InputRequired(), Length(2, 100)],
|
|
|
|
)
|
|
|
|
academicyear = StringField(
|
|
|
|
"Academic year:",
|
|
|
|
validators=[validators.InputRequired(), Length(9, 10)],
|
|
|
|
)
|
|
|
|
term = IntegerField(
|
|
|
|
"Term:", [validators.InputRequired(), NumberRange(min=1, max=4)]
|
|
|
|
)
|
|
|
|
tags = StringField(
|
|
|
|
"Add search tags, comma-separated:",
|
|
|
|
validators=[validators.InputRequired(), Length(2, 500)],
|
|
|
|
)
|
|
|
|
zipfile = FileField(
|
|
|
|
"Upload your zip file with content here:",
|
|
|
|
validators=[
|
|
|
|
FileAllowed(["zip"], "Zip archives only!"),
|
|
|
|
FileRequired(),
|
|
|
|
FileSize(
|
|
|
|
max_size=104857600,
|
|
|
|
message="Zipfile size must be smaller than 100MB",
|
|
|
|
),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
submit = SubmitField("Upload")
|