45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
from flask_wtf import FlaskForm
|
|
from wtforms import StringField, IntegerField, TextAreaField, BooleanField, SubmitField, SelectField
|
|
from wtforms.validators import DataRequired, Length, NumberRange, Optional
|
|
from flask_babel import lazy_gettext as _l
|
|
|
|
class ClassroomForm(FlaskForm):
|
|
# campus_id = SelectField(_l('Campus'), coerce=int, validators=[DataRequired()])
|
|
building = StringField(_l('Building'), validators=[
|
|
DataRequired(),
|
|
Length(min=2, max=100)
|
|
])
|
|
room_number = StringField(_l('Room Number'), validators=[
|
|
DataRequired(),
|
|
Length(min=1, max=50)
|
|
])
|
|
floor = IntegerField(_l('Floor'), validators=[
|
|
DataRequired(),
|
|
NumberRange(min=1, max=50)
|
|
])
|
|
capacity = IntegerField(_l('Capacity'), validators=[
|
|
DataRequired(),
|
|
NumberRange(min=1, max=500)
|
|
])
|
|
description = TextAreaField(_l('Description'), validators=[
|
|
Optional(),
|
|
Length(max=500)
|
|
])
|
|
is_active = BooleanField(_l('Active'), default=True)
|
|
submit = SubmitField(_l('Save Classroom'))
|
|
|
|
class ClassroomResourceForm(FlaskForm):
|
|
resource_type = SelectField(_l('Resource Type'), choices=[
|
|
('PROJECTOR', _l('Projector')),
|
|
('WHITEBOARD', _l('Whiteboard')),
|
|
('COMPUTER', _l('Computer')),
|
|
('SOUND_SYSTEM', _l('Sound System')),
|
|
('MICROPHONE', _l('Microphone')),
|
|
('AIR_CONDITIONER', _l('Air Conditioner')),
|
|
('OTHER', _l('Other'))
|
|
], validators=[DataRequired()])
|
|
brand = StringField(_l('Brand'), validators=[Optional(), Length(max=100)])
|
|
model = StringField(_l('Model'), validators=[Optional(), Length(max=100)])
|
|
specifications = TextAreaField(_l('Specifications'), validators=[Optional()])
|
|
functional = BooleanField(_l('Functional'), default=True)
|
|
submit = SubmitField(_l('Save Resource')) |