distribusi-verse: medium-tech web app content management system for the web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

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