from flask_wtf import FlaskForm from wtforms import ( DateField, TimeField, StringField, SubmitField, BooleanField, DecimalField, SelectField, ) from wtforms.validators import DataRequired, Optional import choices class SeasonForm(FlaskForm): season_id = StringField("Season ID", render_kw={"readonly": True}) code = StringField("Season Code", validators=[DataRequired()]) game_name = StringField("Game Name", validators=[DataRequired()]) description = StringField("Season Description") start = DateField("Season Start", format="%Y-%m-%d", validators=[DataRequired()]) end = DateField("Season End", format="%Y-%m-%d", validators=[Optional()]) submit_button = SubmitField("Submit") class EpisodeForm(FlaskForm): season_id = StringField("Season ID", render_kw={"readonly": True}) episode_id = StringField("Episode ID", render_kw={"readonly": True}) code = StringField("Episode Code", validators=[DataRequired()]) title = StringField("Title", validators=[DataRequired()]) description = StringField("Description", validators=[]) date = DateField("Episode Date", format="%Y-%m-%d", validators=[DataRequired()]) start = TimeField("Start Time", format="%H:%M", validators=[DataRequired()]) end = TimeField("End Time", format="%H:%M", validators=[DataRequired()]) submit_button = SubmitField("Submit") class PlayerForm(FlaskForm): player_id = StringField("Player ID", render_kw={"readonly": True}) real_name = StringField("Real Name") alias = StringField("Player Alias", validators=[DataRequired()]) hex_id = StringField("Hex ID") anonymize = BooleanField("Anonymize (Show only player alias)") submit_button = SubmitField("Submit") class DrinkForm(FlaskForm): drink_id = StringField("Drink ID", render_kw={"readonly": True}) name = StringField("Name", validators=[DataRequired()]) vol = DecimalField("Alcohol %", validators=[DataRequired()]) submit_button = SubmitField("Submit") class EnemyForm(FlaskForm): enemy_id = StringField("Enemy ID", render_kw={"readonly": True}) season_id = SelectField( "Season", choices=choices.SeasonChoicesIterable(), coerce=int ) name = StringField("Name", validators=[DataRequired()]) is_boss = BooleanField("Is Boss") submit_button = SubmitField("Submit") submit_continue_button = SubmitField("Submit and Continue")