import pytz from db import Task from flask_wtf import FlaskForm from wtforms import (StringField, DateField, TimeField, TextAreaField, IntegerField, SelectField, BooleanField, RadioField, EmailField, PasswordField) from wtforms.validators import InputRequired, Length from wtforms_sqlalchemy.orm import QuerySelectField def get_tasks(): return Task.query class TaskForm(FlaskForm): title = StringField('Title', validators=[InputRequired(), Length(min=5, max=100)]) description = TextAreaField('Description', validators=[InputRequired(), Length(max=200)]) class EventForm(FlaskForm): # eventDate = DateField('Date', validators=[InputRequired()], format='m-%d-%Y') # period_num = IntegerField(validators=[InputRequired()]) selectedTask = QuerySelectField(label='New Task', query_factory=get_tasks, get_label='title', allow_blank=True, blank_text='(no task)') class PeriodForm(FlaskForm): weekendSchedule = BooleanField(label='Include on Weekends?', false_values=None) periodTime = TimeField('Time', format="%H:%M") class SettingsForm(FlaskForm): password = PasswordField('Password') realName = StringField('Real Name') timezone = SelectField('Time Zone', choices=pytz.all_timezones) class SignupForm(FlaskForm): userName = StringField('Username', validators=[InputRequired()]) password = PasswordField('Password', validators=[InputRequired()]) realName = StringField('Real Name') email = EmailField('Email Address') class LoginForm(FlaskForm): userName = StringField('Username', validators=[InputRequired()]) password = PasswordField('Password', validators=[InputRequired()]) rememberMe = BooleanField(label='Remember me?')