raphael
752c7c5577
- the icalHandler in the backend is used in two instances. First, when the user adds a new ical calendar into the database, routes.py passes the information (name and url) to the ical Handler. The calendars are saved in the database as type 'ical'. Then, when a connected device pulls current events, all the calendars which are of type 'ical' are pulled and parsed for current events. See the backend commit for details on what happens there. - All google Calendar related functions now have an additional check, to make sure that the calendar they are working on is of type 'Google'.
59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
from flask_wtf import FlaskForm
|
|
from wtforms import StringField, PasswordField, BooleanField, SubmitField
|
|
from wtforms.validators import DataRequired, ValidationError, Email, EqualTo
|
|
from database.models import User, Device
|
|
import email_validator
|
|
|
|
'''
|
|
LoginForm defines the flask form used for the
|
|
email-based login procedure
|
|
This Form is based on 'The Flask Mega-Tutorial'
|
|
'''
|
|
class LoginForm(FlaskForm):
|
|
username = StringField('Username', validators=[DataRequired()])
|
|
password = PasswordField('Password', validators=[DataRequired()])
|
|
remember_me = BooleanField('Remember Me')
|
|
submit = SubmitField('Sign In')
|
|
|
|
'''
|
|
RegiatrationForm validates username, email and pw
|
|
This Form is based on 'The Flask mega-Tutorial'
|
|
'''
|
|
|
|
class RegistrationForm(FlaskForm):
|
|
username = StringField('Username', validators=[DataRequired()])
|
|
email = StringField('Email', validators=[DataRequired(), Email()])
|
|
password = PasswordField('Password', validators=[DataRequired()])
|
|
password2 = PasswordField(
|
|
'Repeat Password', validators=[DataRequired(), EqualTo('password')])
|
|
submit = SubmitField('Register')
|
|
|
|
def validate_username(self, username):
|
|
user = User.query.filter_by(username=username.data).first()
|
|
if user is not None:
|
|
raise ValidationError('Please use a different username.')
|
|
|
|
def validate_email(self, email):
|
|
user = User.query.filter_by(email=email.data).first()
|
|
if user is not None:
|
|
raise ValidationError('Please use a different email address.')
|
|
|
|
class DeviceForm(FlaskForm):
|
|
deviceName=StringField('New Device ID', validators=[DataRequired()])
|
|
submit = SubmitField('Add New Device')
|
|
#
|
|
def validate_deviceName (self, deviceName):
|
|
device = Device.query.filter_by(deviceName=deviceName.data).first()
|
|
if device is None:
|
|
raise ValidationError('Device not Found')
|
|
|
|
|
|
class CalendarForm(FlaskForm):
|
|
iCalURL = StringField('New ical URL', validators=[DataRequired()])
|
|
calName = StringField('Calendar Name', validators=[DataRequired()])
|
|
submit = SubmitField('Add URL')
|
|
|
|
def validate_iCalURL (self, iCalURL):
|
|
return None
|
|
|