-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathforms.py
59 lines (40 loc) · 1.61 KB
/
forms.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from flask_wtf import FlaskForm
from wtforms_alchemy import model_form_factory
from models import db, User, Stock, User_Stock
from wtforms import StringField, PasswordField, SelectField, IntegerField
from wtforms.validators import DataRequired, Optional, NumberRange
BaseModelForm = model_form_factory(FlaskForm)
class ModelForm(BaseModelForm):
@classmethod
def get_session(self):
return db.session
class NewUserForm(ModelForm):
"""new user form"""
class Meta:
model = User
class UserSettings(ModelForm):
"""edit user settings form"""
class Meta:
model = User
exclude = ['password']
class UpdatePassword(FlaskForm):
"""update password form"""
current_password = PasswordField(
'Current Password', validators=[DataRequired()])
new_password = PasswordField('New Password', validators=[DataRequired()])
confirm_new_password = PasswordField(
'Confirm New Password', validators=[DataRequired()])
class LoginForm(FlaskForm):
"""Login form."""
login_username = StringField('Username', validators=[DataRequired()])
login_password = PasswordField('Password', validators=[DataRequired()])
class NewStockForm(FlaskForm):
"""add a new stock form"""
stock_symbol = StringField('Stock Symbol', validators=[DataRequired()])
stock_num = IntegerField(
'Number of Stocks (optional)', validators=[Optional(), NumberRange(min=1, message='Number of Stocks to be 1 or greater')])
class EditStock(ModelForm):
"""edit user settings form"""
class Meta:
model = User_Stock
only = ['stock_num', 'stock_symbol']