-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforms.py
More file actions
80 lines (65 loc) · 2.65 KB
/
forms.py
File metadata and controls
80 lines (65 loc) · 2.65 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from datetime import datetime
from flask_wtf import FlaskForm
from wtforms import StringField, BooleanField, IntegerField, SelectField, SubmitField
from wtforms.fields.html5 import DateTimeField
from wtforms.validators import DataRequired, ValidationError
import auth
ve = auth.EmailRegex()
class AddHW(FlaskForm):
name = StringField("Name", validators=[DataRequired()])
category = StringField("Category", render_kw={"list": "categories"})
quantity = IntegerField("Quantity", validators=[DataRequired()])
submit = SubmitField("Submit")
def validate_quantity(form, field):
if field.data < 1:
raise ValidationError("Must have at least one!")
class RemoveHW(FlaskForm):
submit = SubmitField("Submit")
delete = BooleanField("I want to delete ")
def sethw(self, hw):
self.hw = hw
self.delete.label.text += hw.name
class UpdateHW(AddHW):
def sethw(self, hw):
self.hw = hw
self.name.default = hw.name
self.category.default = hw.category
self.quantity.default = hw.quantity
self.process()
class Checkout(FlaskForm):
outdate = DateTimeField("Date", validators=[DataRequired()],
default=datetime.now)
who = StringField("Who", validators=[DataRequired()])
reason = StringField("Reason")
quantity = IntegerField("Quantity", validators=[DataRequired()])
submit = SubmitField("Checkout")
def sethw(self, hw):
self.hw = hw
def validate_quantity(form, field):
if field.data < 1:
raise ValidationError("Must check out at least one!")
elif field.data > form.hw.available:
raise ValidationError("Only "+str(form.hw.available)+" available!")
class Checkin(FlaskForm):
returndate = DateTimeField("Date", validators=[DataRequired()],
default=datetime.now)
confirm = BooleanField("I Confirm that ", validators=[DataRequired()])
submit = SubmitField("Submit")
def setchk(self, chk):
self.chk = chk
self.confirm.label.text += (self.chk.hardware.name+" x"
""+str(self.chk.quantity)+" have been returned to the"
" Hardware Lab.")
def validate_returndate(form, field):
if form.chk.outdate > field.data:
raise ValidationError("Cannot Return Hardware before it was checked out!")
class NewUser(FlaskForm):
email = StringField("Email")
submit = SubmitField()
def validate_email(form, field):
field.data += "@"+auth.domain
if ve.validemail(field.data) is None:
raise ValidationError("Must be a valid email!")
class DelUser(FlaskForm):
email = SelectField("User")
submit = SubmitField()