|
|
|
from flask_wtf import FlaskForm
|
|
|
|
from wtforms import StringField, FileField
|
|
|
|
from wtforms.validators import InputRequired, DataRequired
|
|
|
|
from wtforms import FieldList
|
|
|
|
from wtforms import Form as NoCsrfForm
|
|
|
|
from wtforms.fields import StringField, FormField, SubmitField
|
|
|
|
from app.models import Book, BookSchema, Author
|
|
|
|
|
|
|
|
# - - - Forms - - -
|
|
|
|
class AuthorForm(NoCsrfForm):
|
|
|
|
# this forms is never exposed so we can user the non CSRF version
|
|
|
|
author_name = StringField('Author Name', validators=[DataRequired()])
|
|
|
|
|
|
|
|
class UserForm(FlaskForm):
|
|
|
|
title = StringField('title', validators=[InputRequired()])
|
|
|
|
author = FieldList(FormField(AuthorForm, default=lambda: Author()), min_entries=1)
|
|
|
|
category = StringField('category', validators=[InputRequired()])
|
|
|
|
file = FileField()
|
|
|
|
|
|
|
|
class UserForm_Edit(FlaskForm):
|
|
|
|
title = StringField('title', validators=[InputRequired()])
|
|
|
|
author = FieldList(FormField(AuthorForm, default=lambda: Author()), min_entries=1)
|
|
|
|
category = StringField('category', validators=[InputRequired()])
|