39 lines
1.8 KiB
Python
39 lines
1.8 KiB
Python
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, Optional
|
|
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=[Length(max=200)])
|
|
expiryDate = DateField('Expiry Date', format='%Y-%m-%d', validators=[Optional()])
|
|
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?') |